From: Tim Kientzle Date: Sun, 11 May 2008 14:47:11 +0000 (-0400) Subject: Fix a small race in the format check for cpio; the four entries X-Git-Tag: v2.6.0~252 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ef87488636b11152f837ed21ba561e1279030faf;p=thirdparty%2Flibarchive.git Fix a small race in the format check for cpio; the four entries might get slightly different timestamps. SVN-Revision: 40 --- diff --git a/cpio/test/test_format_newc.c b/cpio/test/test_format_newc.c index 1c84dc4c6..0714bd427 100644 --- a/cpio/test/test_format_newc.c +++ b/cpio/test/test_format_newc.c @@ -66,7 +66,7 @@ DEFINE_TEST(test_format_newc) int fd, list; int r; int devmajor, devminor, ino, gid; - time_t t, now; + time_t t, t2, now; char *p, *e; size_t s; mode_t oldmask; @@ -159,7 +159,9 @@ DEFINE_TEST(test_format_newc) assertEqualInt(from_hex(e + 22, 8), getuid()); /* uid */ assertEqualInt(gid, from_hex(e + 30, 8)); /* gid */ assertEqualMem(e + 38, "00000001", 8); /* nlink */ - assertEqualInt(t, from_hex(e + 46, 8)); /* mtime */ + t2 = from_hex(e + 46, 8); /* mtime */ + failure("First entry created at t=0x%08x this entry created at t2=0x%08x", t, t2); + assert(t2 == t || t2 == t + 1); /* Almost same as first entry. */ assertEqualMem(e + 54, "00000005", 8); /* File size */ assertEqualInt(devmajor, from_hex(e + 62, 8)); /* devmajor */ assertEqualInt(devminor, from_hex(e + 70, 8)); /* devminor */ @@ -179,7 +181,9 @@ DEFINE_TEST(test_format_newc) assertEqualInt(from_hex(e + 22, 8), getuid()); /* uid */ assertEqualInt(gid, from_hex(e + 30, 8)); /* gid */ assertEqualMem(e + 38, "00000002", 8); /* nlink */ - assertEqualInt(t, from_hex(e + 46, 8)); /* mtime */ + t2 = from_hex(e + 46, 8); /* mtime */ + failure("First entry created at t=0x%08x this entry created at t2=0x%08x", t, t2); + assert(t2 == t || t2 == t + 1); /* Almost same as first entry. */ assertEqualMem(e + 54, "00000000", 8); /* File size */ assertEqualInt(devmajor, from_hex(e + 62, 8)); /* devmajor */ assertEqualInt(devminor, from_hex(e + 70, 8)); /* devminor */ @@ -203,7 +207,9 @@ DEFINE_TEST(test_format_newc) assertEqualInt(from_hex(e + 22, 8), getuid()); /* uid */ assertEqualInt(gid, from_hex(e + 30, 8)); /* gid */ assertEqualMem(e + 38, "00000003", 8); /* nlink */ - assertEqualInt(t, from_hex(e + 46, 8)); /* mtime */ + t2 = from_hex(e + 46, 8); /* mtime */ + failure("First entry created at t=0x%08x this entry created at t2=0x%08x", t, t2); + assert(t2 == t || t2 == t + 1); /* Almost same as first entry. */ assertEqualInt(10, from_hex(e + 54, 8)); /* File size */ assertEqualInt(devmajor, from_hex(e + 62, 8)); /* devmajor */ assertEqualInt(devminor, from_hex(e + 70, 8)); /* devminor */