]> granicus.if.org Git - strace/commitdiff
tests: robustify -k test
authorDmitry V. Levin <ldv@altlinux.org>
Mon, 16 Jun 2014 21:45:52 +0000 (21:45 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Wed, 18 Jun 2014 15:18:47 +0000 (15:18 +0000)
Split stack-fcall.c into several compilation units so that intermediate
function calls would not be optimized out by compiler.

* tests/stack-fcall.c: Move intermediate functions to ...
* tests/stack-fcall-*.c: ... new files.
* tests/Makefile.am (stack_fcall_SOURCES): Add stack-fcall-*.c.

tests/Makefile.am
tests/stack-fcall-0.c [new file with mode: 0644]
tests/stack-fcall-1.c [new file with mode: 0644]
tests/stack-fcall-2.c [new file with mode: 0644]
tests/stack-fcall-3.c [new file with mode: 0644]
tests/stack-fcall.c

index efe646db8847afdc11ea1346360296bae20770b9..922452abfd39db53b609593eb381bc857afe788c 100644 (file)
@@ -11,6 +11,8 @@ check_PROGRAMS = \
        uio
 
 uio_CFLAGS = $(AM_CFLAGS) -D_FILE_OFFSET_BITS=64
+stack_fcall_SOURCES = stack-fcall.c \
+       stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c
 
 TESTS = \
        ptrace_setoptions.test \
diff --git a/tests/stack-fcall-0.c b/tests/stack-fcall-0.c
new file mode 100644 (file)
index 0000000..12a260d
--- /dev/null
@@ -0,0 +1,6 @@
+int f1(int i);
+
+int f0(int i)
+{
+       return f1(i) - i;
+}
diff --git a/tests/stack-fcall-1.c b/tests/stack-fcall-1.c
new file mode 100644 (file)
index 0000000..8716702
--- /dev/null
@@ -0,0 +1,6 @@
+int f2(int i);
+
+int f1(int i)
+{
+       return f2(i) + i;
+}
diff --git a/tests/stack-fcall-2.c b/tests/stack-fcall-2.c
new file mode 100644 (file)
index 0000000..19f8cf8
--- /dev/null
@@ -0,0 +1,6 @@
+int f3(int i);
+
+int f2(int i)
+{
+       return f3(i) - i;
+}
diff --git a/tests/stack-fcall-3.c b/tests/stack-fcall-3.c
new file mode 100644 (file)
index 0000000..3af1667
--- /dev/null
@@ -0,0 +1,6 @@
+#include <unistd.h>
+
+int f3(int i)
+{
+       return getpid() + i;
+}
index 7329bdc6799ad237a73012301aed5fb0fafd6312..134d54f610e0e493e9f6c329a138e62b8305fa31 100644 (file)
@@ -1,35 +1,7 @@
-#include <unistd.h>
-#include <sys/types.h>
-
-/* Use "volatile" to avoid compiler optimization. */
-
-int f3(int i)
-{
-       static pid_t (* volatile g)(void) = getpid;
-       return g() + i;
-}
-
-int f2(volatile int i)
-{
-       static int (* volatile g)(int) = f3;
-       return g(i) - i;
-}
-
-int f1(volatile int i)
-{
-       static int (* volatile g)(int) = f2;
-       return g(i) + i;
-}
-
-int f0(volatile int i)
-{
-       static int (* volatile g)(int) = f1;
-       return g(i) - i;
-}
+int f0(int i);
 
 int main(int argc, char** argv)
 {
-       static int (* volatile g)(int) = f0;
-       g(argc);
+       f0(argc);
        return 0;
 }