From: Pavel Raiskup Date: Thu, 27 Jun 2013 14:01:30 +0000 (+0200) Subject: Use ustar format in the test_option_b test X-Git-Tag: v3.1.900a~351^2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b539b2e597b566fe3c4b49cb61c9eef83e5e052d;p=thirdparty%2Flibarchive.git Use ustar format in the test_option_b test .. because the ustar archive does not store SELinux context. As the default format for bsdtar is "restricted pax" (trying to store xattrs and other things by default), the test failed on Fedora because our files have by default SELinux context set. This results in additional data in tested archive ~> and the test failed because the archive was unexpectedly big: tar/test/test_option_b.c:41: File archive1.tar has size 3072, expected 2048 Reviewed by Konrad Kleine --- diff --git a/tar/test/test_option_b.c b/tar/test/test_option_b.c index be2ae65c7..6fea474fe 100644 --- a/tar/test/test_option_b.c +++ b/tar/test/test_option_b.c @@ -25,8 +25,14 @@ #include "test.h" __FBSDID("$FreeBSD$"); +#define USTAR_OPT " --format=ustar" + DEFINE_TEST(test_option_b) { + char *testprog_ustar = malloc(strlen(testprog) + sizeof(USTAR_OPT) + 1); + strcpy(testprog_ustar, testprog); + strcat(testprog_ustar, USTAR_OPT); + assertMakeFile("file1", 0644, "file1"); if (systemf("cat file1 > test_cat.out 2> test_cat.err") != 0) { skipping("Platform doesn't have cat"); @@ -36,7 +42,7 @@ DEFINE_TEST(test_option_b) /* * Bsdtar does not pad if the output is going directly to a disk file. */ - assertEqualInt(0, systemf("%s -cf archive1.tar file1 >test1.out 2>test1.err", testprog)); + assertEqualInt(0, systemf("%s -cf archive1.tar file1 >test1.out 2>test1.err", testprog_ustar)); failure("bsdtar does not pad archives written directly to regular files"); assertFileSize("archive1.tar", 2048); assertEmptyFile("test1.out"); @@ -46,24 +52,24 @@ DEFINE_TEST(test_option_b) * Bsdtar does pad to the block size if the output is going to a socket. */ /* Default is -b 20 */ - assertEqualInt(0, systemf("%s -cf - file1 2>test2.err | cat >archive2.tar ", testprog)); + assertEqualInt(0, systemf("%s -cf - file1 2>test2.err | cat >archive2.tar ", testprog_ustar)); failure("bsdtar does pad archives written to pipes"); assertFileSize("archive2.tar", 10240); assertEmptyFile("test2.err"); - assertEqualInt(0, systemf("%s -cf - -b 20 file1 2>test3.err | cat >archive3.tar ", testprog)); + assertEqualInt(0, systemf("%s -cf - -b 20 file1 2>test3.err | cat >archive3.tar ", testprog_ustar)); assertFileSize("archive3.tar", 10240); assertEmptyFile("test3.err"); - assertEqualInt(0, systemf("%s -cf - -b 10 file1 2>test4.err | cat >archive4.tar ", testprog)); + assertEqualInt(0, systemf("%s -cf - -b 10 file1 2>test4.err | cat >archive4.tar ", testprog_ustar)); assertFileSize("archive4.tar", 5120); assertEmptyFile("test4.err"); - assertEqualInt(0, systemf("%s -cf - -b 1 file1 2>test5.err | cat >archive5.tar ", testprog)); + assertEqualInt(0, systemf("%s -cf - -b 1 file1 2>test5.err | cat >archive5.tar ", testprog_ustar)); assertFileSize("archive5.tar", 2048); assertEmptyFile("test5.err"); - assertEqualInt(0, systemf("%s -cf - -b 8192 file1 2>test6.err | cat >archive6.tar ", testprog)); + assertEqualInt(0, systemf("%s -cf - -b 8192 file1 2>test6.err | cat >archive6.tar ", testprog_ustar)); assertFileSize("archive6.tar", 4194304); assertEmptyFile("test6.err");