From: Michihiro NAKAJIMA Date: Fri, 6 Mar 2009 16:05:49 +0000 (-0500) Subject: On Windows, pass test_gcpio_compat in bsdcpio_test. X-Git-Tag: v2.7.0~190 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9c4c87f193ee5d28dc0d9dbc073a6bfeded28afe;p=thirdparty%2Flibarchive.git On Windows, pass test_gcpio_compat in bsdcpio_test. SVN-Revision: 738 --- diff --git a/cpio/test/main.c b/cpio/test/main.c index 2bfcd72f2..1c26e1c93 100644 --- a/cpio/test/main.c +++ b/cpio/test/main.c @@ -874,6 +874,10 @@ int main(int argc, char **argv) (void)argc; /* UNUSED */ +#ifdef _WIN32 + /* Make sure open() function will be used with a binary mode. */ + _set_fmode(_O_BINARY); +#endif /* * Name of this program, used to build root of our temp directory * tree. diff --git a/cpio/test/test_gcpio_compat.c b/cpio/test/test_gcpio_compat.c index e36198fcf..d4acf0d7e 100644 --- a/cpio/test/test_gcpio_compat.c +++ b/cpio/test/test_gcpio_compat.c @@ -62,7 +62,11 @@ unpack_test(const char *from, const char *options, const char *se) assertEqualInt(r, 0); if (r == 0) { assert(S_ISREG(st.st_mode)); +#ifdef _WIN32 + assertEqualInt(0600, st.st_mode & 0700); +#else assertEqualInt(0644, st.st_mode & 0777); +#endif failure("file %s/file", from); assertEqualInt(10, st.st_size); failure("file %s/file", from); @@ -75,7 +79,11 @@ unpack_test(const char *from, const char *options, const char *se) assertEqualInt(r, 0); if (r == 0) { assert(S_ISREG(st2.st_mode)); +#ifdef _WIN32 + assertEqualInt(0600, st2.st_mode & 0700); +#else assertEqualInt(0644, st2.st_mode & 0777); +#endif failure("file %s/file", from); assertEqualInt(10, st2.st_size); failure("file %s/file", from); @@ -109,7 +117,11 @@ unpack_test(const char *from, const char *options, const char *se) if (r == 0) { assertEqualInt(r, 0); assert(S_ISDIR(st.st_mode)); +#ifdef _WIN32 + assertEqualInt(0700, st.st_mode & 0700); +#else assertEqualInt(0775, st.st_mode & 0777); +#endif } chdir(".."); @@ -122,11 +134,11 @@ DEFINE_TEST(test_gcpio_compat) oldumask = umask(0); /* Dearchive sample files with a variety of options. */ - unpack_test("test_gcpio_compat_ref.bin", "", "1 block\n"); - unpack_test("test_gcpio_compat_ref.crc", "", "2 blocks\n"); - unpack_test("test_gcpio_compat_ref.newc", "", "2 blocks\n"); + unpack_test("test_gcpio_compat_ref.bin", "", "1 block" NL); + unpack_test("test_gcpio_compat_ref.crc", "", "2 blocks" NL); + unpack_test("test_gcpio_compat_ref.newc", "", "2 blocks" NL); /* gcpio-2.9 only reads 6 blocks here */ - unpack_test("test_gcpio_compat_ref.ustar", "", "7 blocks\n"); + unpack_test("test_gcpio_compat_ref.ustar", "", "7 blocks" NL); umask(oldumask); }