
Thanks Mike for this...
I was making changes and wasn't sure why I added a call to remember the post results for event the manual tests; so, I could do a report for production purposes ... anyway my code was always marking the tests as passed even if they failed which is how I caught this.
James Kosin
On 7/14/2011 2:15 PM, Mike Frysinger wrote:
From: James Kosin jkosin@intcomgrp.com
The post.c code is missing braces around the pass case, and as a result, the diagnostic function will post both fail and pass for a failed test. The reason for this bug is probably the incorrect indentation used, so when reading the code it seems like there are proper braces.
Indent the code to the correct depth and put proper braces around the "else" branch of the "if" statement.
Signed-off-by: James Kosin jkosin@intcomgrp.com Signed-off-by: Mike Frysinger vapier@gentoo.org
post/post.c | 24 ++++++++++++------------ 1 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/post/post.c b/post/post.c index 7660224..852d6a5 100644 --- a/post/post.c +++ b/post/post.c @@ -293,18 +293,18 @@ static int post_run_single (struct post_test *test, gd->flags |= GD_FLG_POSTSTOP; } } else {
if ((*test->test) (flags) != 0) {
post_log ("FAILED\n");
show_boot_progress (-32);
show_post_progress(i, POST_AFTER, POST_FAILED);
if (test_flags & POST_CRITICAL)
gd->flags |= GD_FLG_POSTFAIL;
if (test_flags & POST_STOP)
gd->flags |= GD_FLG_POSTSTOP;
}
else
post_log ("PASSED\n");
show_post_progress(i, POST_AFTER, POST_PASSED);
if ((*test->test)(flags) != 0) {
post_log("FAILED\n");
show_boot_progress(-32);
show_post_progress(i, POST_AFTER, POST_FAILED);
if (test_flags & POST_CRITICAL)
gd->flags |= GD_FLG_POSTFAIL;
if (test_flags & POST_STOP)
gd->flags |= GD_FLG_POSTSTOP;
} else {
post_log("PASSED\n");
show_post_progress(i, POST_AFTER, POST_PASSED);
}
}
if ((test_flags & POST_REBOOT) && !(flags & POST_MANUAL)) {