[PATCH] lib: fwts_framework: set log name suffix when using --log-type option
Colin King
colin.king at canonical.com
Thu May 31 08:24:25 UTC 2012
From: Colin Ian King <colin.king at canonical.com>
Signed-off-by: Colin Ian King <colin.king at canonical.com>
---
src/lib/src/fwts_framework.c | 42 +++++++++++++++++++++++++++++++++++++-----
1 file changed, 37 insertions(+), 5 deletions(-)
diff --git a/src/lib/src/fwts_framework.c b/src/lib/src/fwts_framework.c
index 721f4de..a43d31b 100644
--- a/src/lib/src/fwts_framework.c
+++ b/src/lib/src/fwts_framework.c
@@ -96,6 +96,34 @@ static const char *fwts_copyright[] = {
};
/*
+ * fwts_framework_log_suffix()
+ * set the log name suffix
+ */
+static void fwts_framework_log_suffix(fwts_framework *fw, const char *suffix)
+{
+ char *ptr;
+ char *new;
+ size_t len;
+
+ /* Locate old suffix and kill it */
+ ptr = rindex(fw->results_logname, '.');
+ if (ptr != NULL)
+ *ptr = '\0';
+
+ /* Space for old log name sans old suffix + new suffix + '.' + '\0' */
+ len = strlen(fw->results_logname) + strlen(suffix) + 2;
+
+ if ((new = calloc(len, 1)) == NULL) {
+ fprintf(stderr, "Cannot allocate log name.\n");
+ exit(EXIT_FAILURE);
+ }
+
+ snprintf(new, len, "%s.%s", fw->results_logname, suffix);
+ free(fw->results_logname);
+ fw->results_logname = new;
+}
+
+/*
* fwts_framework_compare_priority()
* used to register tests sorted on run priority
*/
@@ -943,15 +971,19 @@ int fwts_framework_options_handler(fwts_framework *fw, int argc, char * const ar
fwts_iasl_disassemble_all_to_file(fw);
return FWTS_COMPLETE;
case 32: /* --log-type */
- if (!strcmp(optarg, "plaintext"))
+ if (!strcmp(optarg, "plaintext")) {
fw->log_type = LOG_TYPE_PLAINTEXT;
- else if (!strcmp(optarg, "json"))
+ fwts_framework_log_suffix(fw, "log");
+ } else if (!strcmp(optarg, "json")) {
fw->log_type = LOG_TYPE_JSON;
- else if (!strcmp(optarg, "xml"))
+ fwts_framework_log_suffix(fw, "json");
+ } else if (!strcmp(optarg, "xml")) {
fw->log_type = LOG_TYPE_XML;
- else if (!strcmp(optarg, "html"))
+ fwts_framework_log_suffix(fw, "xml");
+ } else if (!strcmp(optarg, "html")) {
fw->log_type = LOG_TYPE_HTML;
- else {
+ fwts_framework_log_suffix(fw, "html");
+ } else {
fprintf(stderr, "--log-type can be either plaintext, xml, html or json.\n");
return FWTS_ERROR;
}
--
1.7.10
More information about the fwts-devel
mailing list