|
From: <sv...@va...> - 2009-04-15 06:00:20
|
Author: njn
Date: 2009-04-15 07:00:16 +0100 (Wed, 15 Apr 2009)
New Revision: 9546
Log:
Moved blockfault to linux/, as it hangs natively on both AIX and Darwin.
Also used get_unmapped_page() within it to be safer.
Added:
branches/DARWIN/none/tests/linux/blockfault.c
branches/DARWIN/none/tests/linux/blockfault.stderr.exp
branches/DARWIN/none/tests/linux/blockfault.vgtest
Removed:
branches/DARWIN/none/tests/blockfault.c
branches/DARWIN/none/tests/blockfault.stderr.exp
branches/DARWIN/none/tests/blockfault.stdout.exp
branches/DARWIN/none/tests/blockfault.vgtest
Modified:
branches/DARWIN/none/tests/Makefile.am
branches/DARWIN/none/tests/linux/Makefile.am
Modified: branches/DARWIN/none/tests/Makefile.am
===================================================================
--- branches/DARWIN/none/tests/Makefile.am 2009-04-15 05:38:42 UTC (rev 9545)
+++ branches/DARWIN/none/tests/Makefile.am 2009-04-15 06:00:16 UTC (rev 9546)
@@ -35,7 +35,6 @@
args.stderr.exp args.stdout.exp args.vgtest \
async-sigs.stderr.exp async-sigs.stdout.exp async-sigs.vgtest \
bitfield1.stderr.exp bitfield1.vgtest \
- blockfault.vgtest blockfault.stderr.exp blockfault.stdout.exp \
bug129866.vgtest bug129866.stderr.exp bug129866.stdout.exp \
closeall.stderr.exp closeall.vgtest \
cmdline0.stderr.exp cmdline0.stdout.exp cmdline0.vgtest \
@@ -159,7 +158,6 @@
fdleak_ipv4
endif
# DDD:
-# - blockfault hangs
# - manythreads and thread-exits have lots of this:
# --61831:0:aspacem sync_check_mapping_callback: segment mismatch:
# kernel's seg:
@@ -171,7 +169,6 @@
# hasW=0, hasX=0, hasT=0, mark=0, name="(none)"}
if ! VGCONF_PLATFORMS_INCLUDE_AMD64_DARWIN
check_PROGRAMS += \
- blockfault \
manythreads \
thread-exits
endif
Deleted: branches/DARWIN/none/tests/blockfault.c
===================================================================
--- branches/DARWIN/none/tests/blockfault.c 2009-04-15 05:38:42 UTC (rev 9545)
+++ branches/DARWIN/none/tests/blockfault.c 2009-04-15 06:00:16 UTC (rev 9546)
@@ -1,35 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <signal.h>
-
-static void handler(int sig, siginfo_t *info, void *v)
-{
- printf("info: sig=%d code=%d addr=%p\n",
- info->si_signo, info->si_code, info->si_addr);
- exit(0);
-}
-
-/* Blocking a fault, ie SIGSEGV, won't work, and is the same as having
- the default handler */
-int main()
-{
-#if defined(_AIX)
- printf("this test hangs when run (even natively) on AIX\n");
- return 0;
-#endif
- struct sigaction sa;
- sigset_t mask;
-
- sa.sa_sigaction = handler;
- sigemptyset(&sa.sa_mask);
- sa.sa_flags = SA_SIGINFO;
-
- sigaction(SIGSEGV, &sa, NULL);
-
- sigfillset(&mask);
- sigprocmask(SIG_BLOCK, &mask, NULL);
-
- *(volatile int *)12345 = 213;
-
- return 0;
-}
Deleted: branches/DARWIN/none/tests/blockfault.stderr.exp
===================================================================
--- branches/DARWIN/none/tests/blockfault.stderr.exp 2009-04-15 05:38:42 UTC (rev 9545)
+++ branches/DARWIN/none/tests/blockfault.stderr.exp 2009-04-15 06:00:16 UTC (rev 9546)
@@ -1,10 +0,0 @@
-
-
-Process terminating with default action of signal 11 (SIGSEGV)
- Access not within mapped region at address 0x........
- at 0x........: main (blockfault.c:32)
- If you believe this happened as a result of a stack overflow in your
- program's main thread (unlikely but possible), you can try to increase
- the size of the main thread stack using the --main-stacksize= flag.
- The main thread stack size used in this run was 16777216.
-
Deleted: branches/DARWIN/none/tests/blockfault.stdout.exp
===================================================================
Deleted: branches/DARWIN/none/tests/blockfault.vgtest
===================================================================
--- branches/DARWIN/none/tests/blockfault.vgtest 2009-04-15 05:38:42 UTC (rev 9545)
+++ branches/DARWIN/none/tests/blockfault.vgtest 2009-04-15 06:00:16 UTC (rev 9546)
@@ -1 +0,0 @@
-prog: blockfault
Modified: branches/DARWIN/none/tests/linux/Makefile.am
===================================================================
--- branches/DARWIN/none/tests/linux/Makefile.am 2009-04-15 05:38:42 UTC (rev 9545)
+++ branches/DARWIN/none/tests/linux/Makefile.am 2009-04-15 06:00:16 UTC (rev 9546)
@@ -4,11 +4,13 @@
noinst_SCRIPTS = filter_stderr
EXTRA_DIST = $(noinst_SCRIPTS) \
+ blockfault.stderr.exp blockfault.vgtest \
mremap.stderr.exp mremap.stdout.exp mremap.vgtest \
mremap2.stderr.exp mremap2.stdout.exp mremap2.stdout.exp2 \
mremap2.stdout.exp-glibc28-amd64 mremap2.vgtest
check_PROGRAMS = \
+ blockfault \
mremap \
mremap2
Copied: branches/DARWIN/none/tests/linux/blockfault.c (from rev 9544, branches/DARWIN/none/tests/blockfault.c)
===================================================================
--- branches/DARWIN/none/tests/linux/blockfault.c (rev 0)
+++ branches/DARWIN/none/tests/linux/blockfault.c 2009-04-15 06:00:16 UTC (rev 9546)
@@ -0,0 +1,38 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <signal.h>
+#include "tests/sys_mman.h"
+
+static void handler(int sig, siginfo_t *info, void *v)
+{
+ printf("info: sig=%d code=%d addr=%p\n",
+ info->si_signo, info->si_code, info->si_addr);
+ exit(0);
+}
+
+/* Blocking a fault, ie SIGSEGV, won't work, and is the same as having
+ the default handler */
+int main()
+{
+ int* unmapped_page = get_unmapped_page();
+
+#if defined(VGO_aix5) || defined(VGO_darwin)
+ printf("this test hangs when run (even natively) on AIX or Darwin\n");
+ return 0;
+#endif
+ struct sigaction sa;
+ sigset_t mask;
+
+ sa.sa_sigaction = handler;
+ sigemptyset(&sa.sa_mask);
+ sa.sa_flags = SA_SIGINFO;
+
+ sigaction(SIGSEGV, &sa, NULL);
+
+ sigfillset(&mask);
+ sigprocmask(SIG_BLOCK, &mask, NULL);
+
+ *(volatile int *)unmapped_page = 213;
+
+ return 0;
+}
Copied: branches/DARWIN/none/tests/linux/blockfault.stderr.exp (from rev 9544, branches/DARWIN/none/tests/blockfault.stderr.exp)
===================================================================
--- branches/DARWIN/none/tests/linux/blockfault.stderr.exp (rev 0)
+++ branches/DARWIN/none/tests/linux/blockfault.stderr.exp 2009-04-15 06:00:16 UTC (rev 9546)
@@ -0,0 +1,10 @@
+
+
+Process terminating with default action of signal 11 (SIGSEGV)
+ Access not within mapped region at address 0x........
+ at 0x........: main (blockfault.c:30)
+ If you believe this happened as a result of a stack overflow in your
+ program's main thread (unlikely but possible), you can try to increase
+ the size of the main thread stack using the --main-stacksize= flag.
+ The main thread stack size used in this run was 16777216.
+
Copied: branches/DARWIN/none/tests/linux/blockfault.vgtest (from rev 9544, branches/DARWIN/none/tests/blockfault.vgtest)
===================================================================
--- branches/DARWIN/none/tests/linux/blockfault.vgtest (rev 0)
+++ branches/DARWIN/none/tests/linux/blockfault.vgtest 2009-04-15 06:00:16 UTC (rev 9546)
@@ -0,0 +1 @@
+prog: blockfault
|