diff options
author | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2011-05-26 14:58:26 +0300 |
---|---|---|
committer | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2011-05-27 15:55:08 +0300 |
commit | c0f504fec29666a1b7e4e26fb22bdd72ca561185 (patch) | |
tree | 478ad00bd1795a367a8c2fb9d08708d7347258f2 /tests | |
parent | a6c05d9a6033f04ded278e29b71c46a98efd6bf3 (diff) |
fs-tests: integck: print error message on error
Currently pcv macro print the error message only if we are not doing power cut
testing or if we have -v flag. But if we run without -v and an error happen
and the error code is not EROFS/EIO, pcv() does not print anything. This patch
makes it print the error message in that case as well.
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/fs-tests/integrity/integck.c | 27 |
1 files changed, 11 insertions, 16 deletions
diff --git a/tests/fs-tests/integrity/integck.c b/tests/fs-tests/integrity/integck.c index 8b1fb40..e2a878f 100644 --- a/tests/fs-tests/integrity/integck.c +++ b/tests/fs-tests/integrity/integck.c @@ -70,27 +70,22 @@ check_failed(stringify(cond), __func__, __FILE__, __LINE__); \ } while(0) -#define CHECK_ERRNO() do { \ - if (args.power_cut_mode) \ - /* \ - * In case of emulated power cut failures the FS has to \ - * return EROFS. But unfortunately, the Linux kernel \ - * sometimes returns EIO to user-space anyway (when write- \ - * back fails the return code is awayse EIO). \ - */ \ - CHECK(errno == EROFS || errno == EIO); \ - else \ - CHECK(0); \ -} while(0) - +/* + * In case of emulated power cut failures the FS has to return EROFS. But + * unfortunately, the Linux kernel sometimes returns EIO to user-space anyway + * (when write-back fails the return code is awayse EIO). + */ #define pcv(fmt, ...) do { \ - if (!args.power_cut_mode || args.verbose) \ + int __err = 1; \ + if (args.power_cut_mode && (errno == EROFS || errno == EIO)) \ + __err = 0; \ + if (!args.power_cut_mode || args.verbose || __err) \ normsg(fmt " (line %d, error %d (%s))", \ ##__VA_ARGS__, __LINE__, errno, strerror(errno)); \ - CHECK_ERRNO(); \ + CHECK(!__err); \ } while(0) -#define v(fmt, ...) do { \ +#define v(fmt, ...) do { \ if (args.verbose) \ normsg(fmt " (line %d)", ##__VA_ARGS__, __LINE__); \ } while(0) |