[PATCH 1/6] lib: fwts_summary: remove references to log line number
Alex Hung
alex.hung at canonical.com
Thu Jun 21 01:03:50 UTC 2012
On 06/20/2012 07:30 PM, Colin King wrote:
> From: Colin Ian King<colin.king at canonical.com>
>
> With the changes to the logging back end, line numbers vary depending
> on the output back-end being used. So, referencing the log line number
> is no longer trivial. Removing the log line references in the summary
> is probably the best way forward for the moment, otherwise we end up
> writing a really overly complex log line tracking mechanism for something
> that isn't too useful anyhow.
>
> Signed-off-by: Colin Ian King<colin.king at canonical.com>
> ---
> src/lib/src/fwts_summary.c | 57 ++++++--------------------------------------
> 1 file changed, 7 insertions(+), 50 deletions(-)
>
> diff --git a/src/lib/src/fwts_summary.c b/src/lib/src/fwts_summary.c
> index b8fe644..5c401b1 100644
> --- a/src/lib/src/fwts_summary.c
> +++ b/src/lib/src/fwts_summary.c
> @@ -26,7 +26,6 @@
> typedef struct {
> char *test; /* test that found the error */
> char *text; /* text of failure message */
> - fwts_list log_lines; /* line where failure was reported */
> } fwts_summary_item;
>
> enum {
> @@ -78,7 +77,6 @@ static void fwts_summary_item_free(void *data)
> {
> fwts_summary_item *item = (fwts_summary_item *)data;
>
> - fwts_list_free_items(&(item->log_lines), free);
> free(item->test);
> free(item->text);
> free(item);
> @@ -124,10 +122,6 @@ int fwts_summary_add(fwts_framework *fw, const char *test, fwts_log_level level,
> fwts_summary_item *summary_item = NULL;
> bool summary_item_found = false;
> int index = fwts_summary_level_to_index(level);
> - int *line_num;
> -
> - if ((line_num = calloc(1, sizeof(int))) == NULL)
> - return FWTS_ERROR;
>
> /* Does the text already exist? - search for it */
> fwts_list_foreach(item, fwts_summaries[index]) {
> @@ -140,30 +134,22 @@ int fwts_summary_add(fwts_framework *fw, const char *test, fwts_log_level level,
>
> /* Not found, create a new one */
> if (!summary_item_found) {
> - if ((summary_item = calloc(1, sizeof(fwts_summary_item))) == NULL) {
> - free(line_num);
> + if ((summary_item = calloc(1, sizeof(fwts_summary_item))) == NULL)
> return FWTS_ERROR;
> - }
> +
> if ((summary_item->test = strdup(test)) == NULL) {
> - free(line_num);
> free(summary_item);
> return FWTS_ERROR;
> }
> +
> if ((summary_item->text = strdup(text)) == NULL) {
> - free(line_num);
> - free(summary_item->test);
> - free(summary_item);
> + free(summary_item->test);
> + free(summary_item);
> return FWTS_ERROR;
> }
> - fwts_list_init(&(summary_item->log_lines));
> fwts_chop_newline(summary_item->text);
> }
>
> - /* Now append a new line number to list of line numbers */
> -
> - *line_num = fwts_log_line_number(fw->results);
> - fwts_list_append(&summary_item->log_lines, line_num);
> -
> /* And append new item if not done so already */
> if (!summary_item_found)
> fwts_list_append(fwts_summaries[index], summary_item);
> @@ -179,26 +165,6 @@ static void fwts_summary_format_field(char *buffer, int buflen, uint32_t value)
> *buffer = '\0';
> }
>
> -static char *fwts_summary_lines(fwts_list *list)
> -{
> - fwts_list_link *item;
> - char *text = NULL;
> - char tmp[16];
> - int i = 0;
> -
> - fwts_list_foreach(item, list) {
> - int *num = fwts_list_data(int *, item);
> - snprintf(tmp, sizeof(tmp), "%s%d",
> - text == NULL ? "" : ", ", *num);
> - text = fwts_realloc_strcat(text, tmp);
> - if (i++> 20) {
> - text = fwts_realloc_strcat(text, "...");
> - break;
> - }
> - }
> - return text;
> -}
> -
> /*
> * fwts_summary_report()
> * report test failure summary, sorted by error levels
> @@ -223,28 +189,19 @@ int fwts_summary_report(fwts_framework *fw, fwts_list *test_list)
> fwts_log_section_begin(fw->results, "failures");
> fwts_list_foreach(item, fwts_summaries[i]) {
> fwts_summary_item *summary_item = fwts_list_data(fwts_summary_item *,item);
> - char *lines = fwts_summary_lines(&summary_item->log_lines);
>
> /*
> * This is not pleasant, we really don't want very wide lines
> * logged in the HTML format, where we don't mind for other formats.
> */
> if (fw->log_type == LOG_TYPE_HTML)
> - fwts_log_summary(fw, " %s test, at %d log line%s: %s: %s",
> + fwts_log_summary(fw, " %s test: %s",
> summary_item->test,
> - fwts_list_len(&summary_item->log_lines),
> - fwts_list_len(&summary_item->log_lines)> 1 ? "s" : "",
> - lines,
> summary_item->text);
> else
> - fwts_log_summary_verbatum(fw, " %s test, at %d log line%s: %s: %s",
> + fwts_log_summary_verbatum(fw, " %s: %s",
> summary_item->test,
> - fwts_list_len(&summary_item->log_lines),
> - fwts_list_len(&summary_item->log_lines)> 1 ? "s" : "",
> - lines,
> summary_item->text);
> -
> - free(lines);
> }
> fwts_log_section_end(fw->results);
> }
Acked-by: Alex Hung <alex.hung at canonical.com>
More information about the fwts-devel
mailing list