From: Luis Henriques Date: Fri, 25 Sep 2020 08:57:13 +0000 (+0100) Subject: tests: add new assertion for chmod() X-Git-Tag: v3.5.0~14^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=12e7a1443dd6f54f8fd88d038851b2727bdbc5db;p=thirdparty%2Flibarchive.git tests: add new assertion for chmod() --- diff --git a/test_utils/test_common.h b/test_utils/test_common.h index 80d54f0a4..42119c06d 100644 --- a/test_utils/test_common.h +++ b/test_utils/test_common.h @@ -169,6 +169,9 @@ /* chdir() and error if it fails */ #define assertChdir(path) \ assertion_chdir(__FILE__, __LINE__, path) +/* change file/directory permissions and errors if it fails */ +#define assertChmod(pathname, mode) \ + assertion_chmod(__FILE__, __LINE__, pathname, mode) /* Assert two files have the same file flags */ #define assertEqualFflags(patha, pathb) \ assertion_compare_fflags(__FILE__, __LINE__, patha, pathb, 0) @@ -282,6 +285,7 @@ void failure(const char *fmt, ...) __LA_PRINTFLIKE(1, 2); int assertion_assert(const char *, int, int, const char *, void *); int assertion_chdir(const char *, int, const char *); +int assertion_chmod(const char *, int, const char *, int); int assertion_compare_fflags(const char *, int, const char *, const char *, int); int assertion_empty_file(const char *, int, const char *); diff --git a/test_utils/test_main.c b/test_utils/test_main.c index 40dfa52f0..ef066eb67 100644 --- a/test_utils/test_main.c +++ b/test_utils/test_main.c @@ -597,6 +597,19 @@ assertion_chdir(const char *file, int line, const char *pathname) } +/* change file/directory permissions and errors if it fails */ +int +assertion_chmod(const char *file, int line, const char *pathname, int mode) +{ + assertion_count(file, line); + if (chmod(pathname, mode) == 0) + return (1); + failure_start(file, line, "chmod(\"%s\", %4.o)", pathname, mode); + failure_finish(NULL); + return (0); + +} + /* Verify two integers are equal. */ int assertion_equal_int(const char *file, int line,