summaryrefslogtreecommitdiff
path: root/cpio/test
diff options
context:
space:
mode:
authorTim Kientzle <kientzle@acm.org>2016-01-31 13:22:47 -0800
committerTim Kientzle <kientzle@acm.org>2016-01-31 13:22:47 -0800
commitd838ef201ae321d3de89c83de39bc3b96b3bae8f (patch)
tree11a148b74f7107fdfe94d60540f12d26ea3132f1 /cpio/test
parent266f8b6383e21745b0a4c6428a1a84a29f40c885 (diff)
downloadlibarchive-d838ef201ae321d3de89c83de39bc3b96b3bae8f.tar.gz
Rework LZ4 option tests to work with various implementations of posix_spawnp
Diffstat (limited to 'cpio/test')
-rw-r--r--cpio/test/test_option_lz4.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/cpio/test/test_option_lz4.c b/cpio/test/test_option_lz4.c
index 75704467..d430ac75 100644
--- a/cpio/test/test_option_lz4.c
+++ b/cpio/test/test_option_lz4.c
@@ -45,9 +45,21 @@ DEFINE_TEST(test_option_lz4)
"without lz4 support");
return;
}
- if (strstr(p, "Can't launch") != NULL
- && !canLz4()) {
- skipping("This version of bsdtar uses an external lz4 program "
+ /* POSIX permits different handling of the spawnp
+ * system call used to launch the subsidiary
+ * program: */
+ /* Some systems fail immediately to spawn the new process. */
+ if (strstr(p, "Can't launch") != NULL && !canLz4()) {
+ skipping("This version of bsdcpio uses an external lz4 program "
+ "but no such program is available on this system.");
+ return;
+ }
+ /* Some systems successfully spawn the new process,
+ * but fail to exec a program within that process.
+ * This results in failure at the first attempt to
+ * write. */
+ if (strstr(p, "Can't write") != NULL && !canLz4()) {
+ skipping("This version of bsdcpio uses an external lz4 program "
"but no such program is available on this system.");
return;
}