ACK: [PATCH] acpi: syntaxcheck: ensure error message strings are in sync with error (LP: #1200568)

Alex Hung alex.hung at canonical.com
Mon Jul 15 06:10:56 UTC 2013


On 07/12/2013 07:03 PM, Colin King wrote:
> From: Colin Ian King <colin.king at canonical.com>
>
> We should use the AslErrorLevel[] strings that 1-to-1 match the ASL_MESSAGE_TYPES
> rather than defining our own.  These strings come with trailing spaces, so we need
> to trim these off.
>
> Also report ASL_REMARKS since these may be helful and we've not yet been tracking these.
>
> Signed-off-by: Colin Ian King <colin.king at canonical.com>
> ---
>   src/acpi/syntaxcheck/syntaxcheck.c | 26 +++++++++++++++-----------
>   1 file changed, 15 insertions(+), 11 deletions(-)
>
> diff --git a/src/acpi/syntaxcheck/syntaxcheck.c b/src/acpi/syntaxcheck/syntaxcheck.c
> index 61d46f8..44399cb 100644
> --- a/src/acpi/syntaxcheck/syntaxcheck.c
> +++ b/src/acpi/syntaxcheck/syntaxcheck.c
> @@ -29,6 +29,8 @@
>
>   #include <json/json.h>
>
> +#define ASL_EXCEPTIONS	/* so we can include AslErrorLevel in aslmessages.h */
> +
>   #include "aslmessages.h"
>
>   typedef struct {
> @@ -259,20 +261,20 @@ static const char *syntaxcheck_error_code_to_id(const uint32_t error_code)
>   static const char *syntaxcheck_error_level(uint32_t error_code)
>   {
>   	uint16_t error_level = syntaxcheck_error_code_to_error_level(error_code);
> +	static char buf[64];
> +	char *ptr;
>
> -	static char *error_levels[] = {
> -		"warning (level 0)",
> -		"warning (level 1)",
> -		"warning (level 2)",
> -		"error",
> -		"remark",
> -		"optimization",
> -		"unknown",
> -	};
> +	/* Out of range for some reason? */
> +	if (error_level >= ASL_NUM_REPORT_LEVELS)
> +		return "Unknown";
>
> -	const int max_levels = (sizeof(error_levels) / sizeof(char*)) - 1;
> +	/* AslErrorLevel strings are end-space padded, so strip off end spaces if any */
> +	strcpy(buf, AslErrorLevel[error_level]);
> +	ptr = strchr(buf, ' ');
> +	if (ptr)
> +		*ptr = '\0';
>
> -	return error_levels[error_level > max_levels ? max_levels : error_level];
> +	return buf;
>   }
>
>   /*
> @@ -508,6 +510,8 @@ static int syntaxcheck_table(fwts_framework *fw, char *tablename, int which)
>   							fwts_failed(fw, LOG_LEVEL_HIGH, label, "Assembler error in line %d", num);
>   							break;
>   						case ASL_REMARK:
> +							fwts_log_info(fw, "Assembler remark in line %d", num);
> +							break;
>   						case ASL_OPTIMIZATION:
>   							skip = true;
>   							break;
>

Acked-by: Alex Hung <alex.hung at canonical.com>



More information about the fwts-devel mailing list