]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
tests: add new assertion for chmod()
authorLuis Henriques <lhenriques@suse.de>
Fri, 25 Sep 2020 08:57:13 +0000 (09:57 +0100)
committerLuis Henriques <lhenriques@suse.de>
Fri, 25 Sep 2020 09:12:11 +0000 (10:12 +0100)
test_utils/test_common.h
test_utils/test_main.c

index 80d54f0a450c82a5b578798fdf038f8a350bd715..42119c06db8bc2e7859343be983aa89544446908 100644 (file)
 /* 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)
 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 *);
index 40dfa52f08f1ec0cc1af82e7204a30184a1ebe2b..ef066eb67d99f59f581ad8f483daffed6ef4e94b 100644 (file)
@@ -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,