Blob Blame History Raw
Skip 'test/parallel/test-fs-utimes-y2K38.js' on some platforms.

This test fails if coreutils' touch was built with 64-bit time_t,
while nodejs was built with 32-bit time_t.  This is currently the case
on i586, ppc and arm.  Skip the failing last command on those
platforms.

The failure was seen since coreutils-9.0.

Remove this patch once nodejs(1) also builds with 64-bit time_t.
---
 test/parallel/test-fs-utimes-y2K38.js |   17 +++++++++++++++++
 1 file changed, 17 insertions(+)

Index: node-v16.6.2/test/parallel/test-fs-utimes-y2K38.js
===================================================================
--- node-v16.6.2.orig/test/parallel/test-fs-utimes-y2K38.js
+++ node-v16.6.2/test/parallel/test-fs-utimes-y2K38.js
@@ -20,6 +20,26 @@ if (!common.isWindows) {
     common.skip('File system appears to lack Y2K38 support (touch failed)');
   }
 
+  // SUSE: touch-9.0 may succeed on platforms with 32-bit time_t,
+  // but the test would fail.  Skip on those platforms for now.
+  const unameResult = spawnSync('uname',
+                                ['-m'],
+                                { encoding: 'utf8' });
+  if (unameResult.status === 0) {
+    if (unameResult.stdout.trim() === 'i686') {
+      common.skip('SUSE: test skipped on platforms with 32-bit time_t');
+    }
+    if (unameResult.stdout.trim() === 'ppc') {
+      common.skip('SUSE: test skipped on platforms with 32-bit time_t');
+    }
+    if (unameResult.stdout.trim() === 'armv6l') {
+      common.skip('SUSE: test skipped on platforms with 32-bit time_t');
+    }
+    if (unameResult.stdout.trim() === 'armv7l') {
+      common.skip('SUSE: test skipped on platforms with 32-bit time_t');
+    }
+  }
+
   // On some file systems that lack Y2K38 support, `touch` will succeed but
   // the time will be incorrect.
   const dateResult = spawnSync('date',