]> granicus.if.org Git - strace/commitdiff
tests: workaround limited semctl implementation in musl
authorDmitry V. Levin <ldv@altlinux.org>
Tue, 13 Sep 2016 20:33:04 +0000 (20:33 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Tue, 13 Sep 2016 21:18:17 +0000 (21:18 +0000)
musl libc forwards semctl command argument for 8 known commands only,
for all the rest it passes 0 instead.

* tests/ipc_sem.c (main): Update semctl expected output.

tests/ipc_sem.c

index 4decb3f9435b5d5f5f78966cf13cdf20025f136f..926fa898d7c02f0261248d535dd2cda46b3672b1 100644 (file)
@@ -88,10 +88,15 @@ main(void)
        atexit(cleanup);
 
        rc = semctl(bogus_semid, bogus_semnum, bogus_cmd, bogus_arg);
+#ifdef __GLIBC__
+# define SEMCTL_BOGUS_ARG_FMT "(%#lx|\\[(%#lx|0)\\])"
+#else
+# define SEMCTL_BOGUS_ARG_FMT "(%#lx|\\[(%#lx|0)\\]|0)"
+#endif
        printf("semctl\\(%d, %d, (IPC_64\\|)?%#x /\\* SEM_\\?\\?\\? \\*/"
-              ", (%#lx|\\[(%#lx|0)\\])\\) += %s\n",
-              bogus_semid, bogus_semnum, bogus_cmd, bogus_arg, bogus_arg,
-              sprintrc_grep(rc));
+              ", " SEMCTL_BOGUS_ARG_FMT "\\) += %s\n",
+              bogus_semid, bogus_semnum, bogus_cmd,
+              bogus_arg, bogus_arg, sprintrc_grep(rc));
 
        un.buf = &ds;
        if (semctl(id, 0, IPC_STAT, un))