diff --git a/src/zscanner/tests/tap/basic.c b/src/zscanner/tests/tap/basic.c
index 35350c88d001da346458a9fd04190ac614e9ffd7..46f7fe1af7474f0cb47550688edee63919cdd742 100644
--- a/src/zscanner/tests/tap/basic.c
+++ b/src/zscanner/tests/tap/basic.c
@@ -297,13 +297,13 @@ skip_block(unsigned long count, const char *reason, ...)
  * if those two numbers match.
  */
 void
-is_int(long wanted, long seen, const char *format, ...)
+is_int(long long wanted, long long seen, const char *format, ...)
 {
     fflush(stderr);
     if (wanted == seen)
         printf("ok %lu", testnum++);
     else {
-        printf("# wanted: %ld\n#   seen: %ld\n", wanted, seen);
+        printf("# wanted: %lld\n#   seen: %lld\n", wanted, seen);
         printf("not ok %lu", testnum++);
         _failed++;
     }
@@ -353,14 +353,16 @@ is_string(const char *wanted, const char *seen, const char *format, ...)
  * test passes if the two numbers match.  Otherwise, reports them in hex.
  */
 void
-is_hex(unsigned long wanted, unsigned long seen, const char *format, ...)
+is_hex(unsigned long long wanted, unsigned long long seen,
+       const char *format, ...)
 {
     fflush(stderr);
     if (wanted == seen)
         printf("ok %lu", testnum++);
     else {
-        printf("# wanted: %lx\n#   seen: %lx\n", (unsigned long) wanted,
-               (unsigned long) seen);
+        printf("# wanted: %llx\n#   seen: %llx\n",
+               (unsigned long long) wanted,
+               (unsigned long long) seen);
         printf("not ok %lu", testnum++);
         _failed++;
     }
diff --git a/src/zscanner/tests/tap/basic.h b/src/zscanner/tests/tap/basic.h
index fa4adafe292e43b4fd5d27ee13d4a0544ae33f06..544de5194ef79d69e3c317abf7111c87a09dac21 100644
--- a/src/zscanner/tests/tap/basic.h
+++ b/src/zscanner/tests/tap/basic.h
@@ -82,11 +82,12 @@ void skip_block(unsigned long count, const char *reason, ...)
     __attribute__((__format__(printf, 2, 3)));
 
 /* Check an expected value against a seen value. */
-void is_int(long wanted, long seen, const char *format, ...)
+void is_int(long long wanted, long long seen, const char *format, ...)
     __attribute__((__format__(printf, 3, 4)));
 void is_string(const char *wanted, const char *seen, const char *format, ...)
     __attribute__((__format__(printf, 3, 4)));
-void is_hex(unsigned long wanted, unsigned long seen, const char *format, ...)
+void is_hex(unsigned long long wanted, unsigned long long seen,
+            const char *format, ...)
     __attribute__((__format__(printf, 3, 4)));
 
 /* Bail out with an error.  sysbail appends strerror(errno). */
diff --git a/tests/tap/basic.c b/tests/tap/basic.c
index 35350c88d001da346458a9fd04190ac614e9ffd7..46f7fe1af7474f0cb47550688edee63919cdd742 100644
--- a/tests/tap/basic.c
+++ b/tests/tap/basic.c
@@ -297,13 +297,13 @@ skip_block(unsigned long count, const char *reason, ...)
  * if those two numbers match.
  */
 void
-is_int(long wanted, long seen, const char *format, ...)
+is_int(long long wanted, long long seen, const char *format, ...)
 {
     fflush(stderr);
     if (wanted == seen)
         printf("ok %lu", testnum++);
     else {
-        printf("# wanted: %ld\n#   seen: %ld\n", wanted, seen);
+        printf("# wanted: %lld\n#   seen: %lld\n", wanted, seen);
         printf("not ok %lu", testnum++);
         _failed++;
     }
@@ -353,14 +353,16 @@ is_string(const char *wanted, const char *seen, const char *format, ...)
  * test passes if the two numbers match.  Otherwise, reports them in hex.
  */
 void
-is_hex(unsigned long wanted, unsigned long seen, const char *format, ...)
+is_hex(unsigned long long wanted, unsigned long long seen,
+       const char *format, ...)
 {
     fflush(stderr);
     if (wanted == seen)
         printf("ok %lu", testnum++);
     else {
-        printf("# wanted: %lx\n#   seen: %lx\n", (unsigned long) wanted,
-               (unsigned long) seen);
+        printf("# wanted: %llx\n#   seen: %llx\n",
+               (unsigned long long) wanted,
+               (unsigned long long) seen);
         printf("not ok %lu", testnum++);
         _failed++;
     }
diff --git a/tests/tap/basic.h b/tests/tap/basic.h
index fa4adafe292e43b4fd5d27ee13d4a0544ae33f06..544de5194ef79d69e3c317abf7111c87a09dac21 100644
--- a/tests/tap/basic.h
+++ b/tests/tap/basic.h
@@ -82,11 +82,12 @@ void skip_block(unsigned long count, const char *reason, ...)
     __attribute__((__format__(printf, 2, 3)));
 
 /* Check an expected value against a seen value. */
-void is_int(long wanted, long seen, const char *format, ...)
+void is_int(long long wanted, long long seen, const char *format, ...)
     __attribute__((__format__(printf, 3, 4)));
 void is_string(const char *wanted, const char *seen, const char *format, ...)
     __attribute__((__format__(printf, 3, 4)));
-void is_hex(unsigned long wanted, unsigned long seen, const char *format, ...)
+void is_hex(unsigned long long wanted, unsigned long long seen,
+            const char *format, ...)
     __attribute__((__format__(printf, 3, 4)));
 
 /* Bail out with an error.  sysbail appends strerror(errno). */