summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernhard M. Wiedemann <githubbmw2020@lsmod.de>2023-01-13 06:27:42 +0100
committerGitHub <noreply@github.com>2023-01-12 21:27:42 -0800
commit45c728b00dce4af6b7f0603df0a0af4bafe6f2ad (patch)
tree7c5347d9a82babcbe31c5da37926d02ffc3032ff
parent4f2e2e089db86d16aefe2f9d134a0bbb8867408a (diff)
downloadlibarchive-45c728b00dce4af6b7f0603df0a0af4bafe6f2ad.tar.gz
Fix cpio test in 2038 (#1836)
Without this patch, `bsdcpio_test_option_c` failed after 2038-01-19 with ``` .../libarchive-3.6.2/cpio/test/test_option_c.c:143: Assertion failed: t >= now - 2 .../libarchive-3.6.2/cpio/test/test_option_c.c:169: Assertion failed: t >= now - 2 .../libarchive-3.6.2/cpio/test/test_option_c.c:205: Assertion failed: t >= now - 2 ``` Background: As part of my work on reproducible builds for openSUSE, I check that software still gives identical build results in the future. The usual offset is +16 years, because that is how long I expect some software will be used in some places. This showed up failing tests in our package build. See https://reproducible-builds.org/ for why this matters.
-rw-r--r--cpio/test/test_option_c.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/cpio/test/test_option_c.c b/cpio/test/test_option_c.c
index 013caed5..dfa62c13 100644
--- a/cpio/test/test_option_c.c
+++ b/cpio/test/test_option_c.c
@@ -37,10 +37,10 @@ is_octal(const char *p, size_t l)
return (1);
}
-static int
+static long long int
from_octal(const char *p, size_t l)
{
- int r = 0;
+ long long int r = 0;
while (l > 0) {
r *= 8;
@@ -161,7 +161,7 @@ DEFINE_TEST(test_option_c)
assertEqualInt(from_octal(e + 24, 6), uid); /* uid */
assertEqualInt(gid, from_octal(e + 30, 6)); /* gid */
assertEqualMem(e + 36, "000001", 6); /* nlink */
- failure("file entries should have rdev == 0 (dev was 0%o)",
+ failure("file entries should have rdev == 0 (dev was 0%llo)",
from_octal(e + 6, 6));
assertEqualMem(e + 42, "000000", 6); /* rdev */
t = from_octal(e + 48, 11); /* mtime */