@@ -506,6 +506,7 @@ static void extract_metadata(void)
char line[4096];
char path[4096];
enum parser_state state = PAR_NONE;
+ unsigned int lineno = 1;
if (tst_get_path(shell_filename, path, sizeof(path)) == -1)
tst_brk(TBROK, "Failed to find %s in $PATH", shell_filename);
@@ -519,24 +520,40 @@ static void extract_metadata(void)
state = PAR_ESC;
break;
case PAR_ESC:
- if (!strcmp(line, "# env\n"))
+ if (!strcmp(line, "# env\n")) {
state = PAR_ENV;
- else if (!strcmp(line, "# doc\n"))
+ } else if (!strcmp(line, "# doc\n")) {
state = PAR_DOC;
- else
- tst_brk(TBROK, "Unknown comment block %s", line);
+ } else {
+ tst_brk(TBROK, "%s: %u: Unknown comment block %s",
+ path, lineno, line);
+ }
break;
case PAR_ENV:
+ if (line[0] != '#') {
+ tst_brk(TBROK,
+ "%s: %u: Unexpected end of comment block!",
+ path, lineno);
+ }
+
if (!strcmp(line, "# ---\n"))
state = PAR_NONE;
else
metadata_append(line + 2);
break;
case PAR_DOC:
+ if (line[0] != '#') {
+ tst_brk(TBROK,
+ "%s: %u: Unexpected end of comment block!",
+ path, lineno);
+ }
+
if (!strcmp(line, "# ---\n"))
state = PAR_NONE;
break;
}
+
+ lineno++;
}
fclose(f);
- Add filename and lineno to error messages - Make sure that we are stil in the comment part and TBROK if any of the block wasn't terminated properly Signed-off-by: Cyril Hrubis <chrubis@suse.cz> --- testcases/lib/tst_run_shell.c | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-)