commit b539b2e597b566fe3c4b49cb61c9eef83e5e052d Author: Pavel Raiskup Date: Thu Jun 27 16:01:30 2013 +0200 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 be2ae65..6fea474 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");