|
From: <sv...@va...> - 2009-07-28 05:10:43
|
Author: njn
Date: 2009-07-28 06:10:33 +0100 (Tue, 28 Jul 2009)
New Revision: 10645
Log:
Make lsframe1, lsframe2 and stack_changes Linux-only since they all fault
natively on Mac.
Added:
trunk/memcheck/tests/linux/lsframe1.c
trunk/memcheck/tests/linux/lsframe1.stderr.exp
trunk/memcheck/tests/linux/lsframe1.stdout.exp
trunk/memcheck/tests/linux/lsframe1.vgtest
trunk/memcheck/tests/linux/lsframe2.c
trunk/memcheck/tests/linux/lsframe2.stderr.exp
trunk/memcheck/tests/linux/lsframe2.stdout.exp
trunk/memcheck/tests/linux/lsframe2.vgtest
trunk/memcheck/tests/linux/stack_changes.c
trunk/memcheck/tests/linux/stack_changes.stderr.exp
trunk/memcheck/tests/linux/stack_changes.stdout.exp
trunk/memcheck/tests/linux/stack_changes.stdout.exp2
trunk/memcheck/tests/linux/stack_changes.vgtest
Removed:
trunk/memcheck/tests/lsframe1.c
trunk/memcheck/tests/lsframe1.stderr.exp
trunk/memcheck/tests/lsframe1.stdout.exp
trunk/memcheck/tests/lsframe1.vgtest
trunk/memcheck/tests/lsframe2.c
trunk/memcheck/tests/lsframe2.stderr.exp
trunk/memcheck/tests/lsframe2.stdout.exp
trunk/memcheck/tests/lsframe2.vgtest
trunk/memcheck/tests/stack_changes.c
trunk/memcheck/tests/stack_changes.stderr.exp
trunk/memcheck/tests/stack_changes.stdout.exp
trunk/memcheck/tests/stack_changes.stdout.exp2
trunk/memcheck/tests/stack_changes.vgtest
Modified:
trunk/memcheck/tests/Makefile.am
trunk/memcheck/tests/linux/Makefile.am
Modified: trunk/memcheck/tests/Makefile.am
===================================================================
--- trunk/memcheck/tests/Makefile.am 2009-07-28 01:30:06 UTC (rev 10644)
+++ trunk/memcheck/tests/Makefile.am 2009-07-28 05:10:33 UTC (rev 10645)
@@ -84,8 +84,6 @@
long_namespace_xml.vgtest long_namespace_xml.stdout.exp \
long_namespace_xml.stderr.exp \
long-supps.vgtest long-supps.stderr.exp long-supps.supp \
- lsframe1.vgtest lsframe1.stdout.exp lsframe1.stderr.exp \
- lsframe2.vgtest lsframe2.stdout.exp lsframe2.stderr.exp \
mallinfo.stderr.exp mallinfo.vgtest \
malloc_free_fill.vgtest \
malloc_free_fill.stderr.exp \
@@ -147,8 +145,6 @@
sigkill.stderr.exp sigkill.stderr.exp-darwin sigkill.vgtest \
signal2.stderr.exp signal2.stdout.exp signal2.vgtest \
sigprocmask.stderr.exp sigprocmask.stderr.exp2 sigprocmask.vgtest \
- stack_changes.stderr.exp stack_changes.stdout.exp \
- stack_changes.stdout.exp2 stack_changes.vgtest \
strchr.stderr.exp strchr.stderr.exp2 strchr.stderr.exp-darwin \
strchr.vgtest \
str_tester.stderr.exp str_tester.vgtest \
@@ -209,8 +205,6 @@
linux-syscalls-2007 \
long_namespace_xml \
long-supps \
- lsframe1 \
- lsframe2 \
mallinfo \
malloc_free_fill \
malloc_usable malloc1 malloc2 malloc3 manuel1 manuel2 manuel3 \
@@ -230,7 +224,8 @@
realloc1 realloc2 realloc3 \
sh-mem sh-mem-random \
sigaltstack signal2 sigprocmask sigkill \
- stack_changes strchr str_tester \
+ strchr \
+ str_tester \
supp_unknown supp1 supp2 suppfree \
trivialleak \
unit_libcbase unit_oset \
Modified: trunk/memcheck/tests/linux/Makefile.am
===================================================================
--- trunk/memcheck/tests/linux/Makefile.am 2009-07-28 01:30:06 UTC (rev 10644)
+++ trunk/memcheck/tests/linux/Makefile.am 2009-07-28 05:10:33 UTC (rev 10645)
@@ -6,6 +6,10 @@
EXTRA_DIST = \
brk.stderr.exp brk.vgtest \
capget capget.stderr.exp \
+ lsframe1.vgtest lsframe1.stdout.exp lsframe1.stderr.exp \
+ lsframe2.vgtest lsframe2.stdout.exp lsframe2.stderr.exp \
+ stack_changes.stderr.exp stack_changes.stdout.exp \
+ stack_changes.stdout.exp2 stack_changes.vgtest \
stack_switch.stderr.exp stack_switch.vgtest \
timerfd-syscall timerfd-syscall.stderr.exp \
with-space.stderr.exp with-space.stdout.exp with-space.vgtest
@@ -13,6 +17,9 @@
check_PROGRAMS = \
brk \
capget \
+ lsframe1 \
+ lsframe2 \
+ stack_changes \
stack_switch \
timerfd-syscall
Copied: trunk/memcheck/tests/linux/lsframe1.c (from rev 10644, trunk/memcheck/tests/lsframe1.c)
===================================================================
--- trunk/memcheck/tests/linux/lsframe1.c (rev 0)
+++ trunk/memcheck/tests/linux/lsframe1.c 2009-07-28 05:10:33 UTC (rev 10645)
@@ -0,0 +1,26 @@
+
+/* Demonstrate Memcheck correctly handling a 64M array on the stack.
+ Requires --max-stackframe=67108884 or above. And since it
+ generates a very large stack, --main-stacksize=67200000
+ (approximately) is also required. */
+
+#include <stdio.h>
+
+#define N_MBYTES 64
+
+#define N_INTS ((N_MBYTES * 1048576) / sizeof(int))
+
+
+int main ( void )
+{
+ int i, sum;
+ int arr[N_INTS];
+ fprintf(stderr, "lsframe1: start\n");
+ for (i = 0; i < N_INTS; i++)
+ arr[i] = i;
+ sum = 0;
+ for (i = 0; i < N_INTS; i++)
+ sum += arr[i];
+ fprintf(stderr, "lsframe1: done, result is %d\n", sum);
+ return 0;
+}
Copied: trunk/memcheck/tests/linux/lsframe1.stderr.exp (from rev 10644, trunk/memcheck/tests/lsframe1.stderr.exp)
===================================================================
--- trunk/memcheck/tests/linux/lsframe1.stderr.exp (rev 0)
+++ trunk/memcheck/tests/linux/lsframe1.stderr.exp 2009-07-28 05:10:33 UTC (rev 10645)
@@ -0,0 +1,9 @@
+
+lsframe1: start
+lsframe1: done, result is -8388608
+
+ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+malloc/free: in use at exit: ... bytes in ... blocks.
+malloc/free: ... allocs, ... frees, ... bytes allocated.
+For a detailed leak analysis, rerun with: --leak-check=yes
+For counts of detected errors, rerun with: -v
Copied: trunk/memcheck/tests/linux/lsframe1.stdout.exp (from rev 10644, trunk/memcheck/tests/lsframe1.stdout.exp)
===================================================================
Copied: trunk/memcheck/tests/linux/lsframe1.vgtest (from rev 10644, trunk/memcheck/tests/lsframe1.vgtest)
===================================================================
--- trunk/memcheck/tests/linux/lsframe1.vgtest (rev 0)
+++ trunk/memcheck/tests/linux/lsframe1.vgtest 2009-07-28 05:10:33 UTC (rev 10645)
@@ -0,0 +1,3 @@
+prog: lsframe1
+vgopts: --main-stacksize=67200000 --max-stackframe=67200000
+stderr_filter: filter_allocs
Copied: trunk/memcheck/tests/linux/lsframe2.c (from rev 10644, trunk/memcheck/tests/lsframe2.c)
===================================================================
--- trunk/memcheck/tests/linux/lsframe2.c (rev 0)
+++ trunk/memcheck/tests/linux/lsframe2.c 2009-07-28 05:10:33 UTC (rev 10645)
@@ -0,0 +1,34 @@
+
+/* Demonstrate Memcheck correctly handling chain of 64 recursive
+ calls, each of which allocates a 1 M array on the stack. Requires
+ --main-stacksize=67117057 (on amd64-linux) or above, but works fine
+ if you specify that. */
+
+#include <stdio.h>
+
+#define N_MBYTES 64
+
+#define N_INTS_PER_MBYTE (1048576 / sizeof(int))
+
+int rec ( int depth )
+{
+ int i, zzz;
+ int arr[N_INTS_PER_MBYTE];
+ if (depth == 0) return 0;
+ for (i = 0; i < N_INTS_PER_MBYTE; i++)
+ arr[i] = i * depth;
+ zzz = rec(depth-1);
+ for (i = 0; i < N_INTS_PER_MBYTE; i++)
+ zzz += arr[i];
+ return zzz;
+}
+
+
+int main ( void )
+{
+ int sum;
+ fprintf(stderr, "lsframe2: start\n");
+ sum = rec(N_MBYTES);
+ fprintf(stderr, "lsframe2: done, result is %d\n", sum);
+ return 0;
+}
Copied: trunk/memcheck/tests/linux/lsframe2.stderr.exp (from rev 10644, trunk/memcheck/tests/lsframe2.stderr.exp)
===================================================================
--- trunk/memcheck/tests/linux/lsframe2.stderr.exp (rev 0)
+++ trunk/memcheck/tests/linux/lsframe2.stderr.exp 2009-07-28 05:10:33 UTC (rev 10645)
@@ -0,0 +1,9 @@
+
+lsframe2: start
+lsframe2: done, result is -272629760
+
+ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+malloc/free: in use at exit: ... bytes in ... blocks.
+malloc/free: ... allocs, ... frees, ... bytes allocated.
+For a detailed leak analysis, rerun with: --leak-check=yes
+For counts of detected errors, rerun with: -v
Copied: trunk/memcheck/tests/linux/lsframe2.stdout.exp (from rev 10644, trunk/memcheck/tests/lsframe2.stdout.exp)
===================================================================
Copied: trunk/memcheck/tests/linux/lsframe2.vgtest (from rev 10644, trunk/memcheck/tests/lsframe2.vgtest)
===================================================================
--- trunk/memcheck/tests/linux/lsframe2.vgtest (rev 0)
+++ trunk/memcheck/tests/linux/lsframe2.vgtest 2009-07-28 05:10:33 UTC (rev 10645)
@@ -0,0 +1,3 @@
+prog: lsframe2
+vgopts: --main-stacksize=68500000
+stderr_filter: filter_allocs
Copied: trunk/memcheck/tests/linux/stack_changes.c (from rev 10644, trunk/memcheck/tests/stack_changes.c)
===================================================================
--- trunk/memcheck/tests/linux/stack_changes.c (rev 0)
+++ trunk/memcheck/tests/linux/stack_changes.c 2009-07-28 05:10:33 UTC (rev 10645)
@@ -0,0 +1,75 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <ucontext.h>
+#include "tests/sys_mman.h"
+
+#include "valgrind.h"
+
+#define STACK_SIZE (10 * 4096)
+
+// This test is checking the libc context calls (setcontext, etc.) and
+// checks that Valgrind notices their stack changes properly.
+
+#if defined(_AIX) || defined(__APPLE__)
+typedef ucontext_t mycontext;
+#else /* linux */
+typedef struct ucontext mycontext;
+#endif
+
+mycontext ctx1, ctx2, oldc;
+int count;
+
+void hello(mycontext *newc)
+{
+ printf("hello, world: %d\n", count);
+ if (count++ == 2)
+ newc = &oldc;
+ setcontext(newc);
+}
+
+int init_context(mycontext *uc)
+{
+ void *stack;
+ int ret;
+
+ if (getcontext(uc) == -1) {
+ //perror("getcontext");
+ printf("getcontext() doesn't seem to work\n");
+ exit(1);
+ }
+
+ stack = (void *)mmap(0, STACK_SIZE, PROT_READ|PROT_WRITE|PROT_EXEC,
+ MAP_ANONYMOUS|MAP_PRIVATE, -1, 0);
+
+ if (stack == (void*)-1) {
+ perror("mmap");
+ exit(1);
+ }
+
+ ret = VALGRIND_STACK_REGISTER(stack, stack + STACK_SIZE);
+
+ uc->uc_link = NULL;
+ uc->uc_stack.ss_sp = stack;
+ uc->uc_stack.ss_size = STACK_SIZE;
+ uc->uc_stack.ss_flags = 0;
+
+ return ret;
+}
+
+int main(int argc, char **argv)
+{
+ int c1 = init_context(&ctx1);
+ int c2 = init_context(&ctx2);
+
+ makecontext(&ctx1, (void (*)()) hello, 1, &ctx2);
+ makecontext(&ctx2, (void (*)()) hello, 1, &ctx1);
+
+ swapcontext(&oldc, &ctx1);
+
+ VALGRIND_STACK_DEREGISTER(c1);
+ //free(ctx1.uc_stack.ss_sp);
+ VALGRIND_STACK_DEREGISTER(c2);
+ //free(ctx2.uc_stack.ss_sp);
+
+ return 0;
+}
Copied: trunk/memcheck/tests/linux/stack_changes.stderr.exp (from rev 10644, trunk/memcheck/tests/stack_changes.stderr.exp)
===================================================================
Copied: trunk/memcheck/tests/linux/stack_changes.stdout.exp (from rev 10644, trunk/memcheck/tests/stack_changes.stdout.exp)
===================================================================
--- trunk/memcheck/tests/linux/stack_changes.stdout.exp (rev 0)
+++ trunk/memcheck/tests/linux/stack_changes.stdout.exp 2009-07-28 05:10:33 UTC (rev 10645)
@@ -0,0 +1,3 @@
+hello, world: 0
+hello, world: 1
+hello, world: 2
Copied: trunk/memcheck/tests/linux/stack_changes.stdout.exp2 (from rev 10644, trunk/memcheck/tests/stack_changes.stdout.exp2)
===================================================================
--- trunk/memcheck/tests/linux/stack_changes.stdout.exp2 (rev 0)
+++ trunk/memcheck/tests/linux/stack_changes.stdout.exp2 2009-07-28 05:10:33 UTC (rev 10645)
@@ -0,0 +1 @@
+getcontext() doesn't seem to work
Copied: trunk/memcheck/tests/linux/stack_changes.vgtest (from rev 10644, trunk/memcheck/tests/stack_changes.vgtest)
===================================================================
--- trunk/memcheck/tests/linux/stack_changes.vgtest (rev 0)
+++ trunk/memcheck/tests/linux/stack_changes.vgtest 2009-07-28 05:10:33 UTC (rev 10645)
@@ -0,0 +1,2 @@
+prog: stack_changes
+vgopts: -q
Deleted: trunk/memcheck/tests/lsframe1.c
===================================================================
--- trunk/memcheck/tests/lsframe1.c 2009-07-28 01:30:06 UTC (rev 10644)
+++ trunk/memcheck/tests/lsframe1.c 2009-07-28 05:10:33 UTC (rev 10645)
@@ -1,26 +0,0 @@
-
-/* Demonstrate Memcheck correctly handling a 64M array on the stack.
- Requires --max-stackframe=67108884 or above. And since it
- generates a very large stack, --main-stacksize=67200000
- (approximately) is also required. */
-
-#include <stdio.h>
-
-#define N_MBYTES 64
-
-#define N_INTS ((N_MBYTES * 1048576) / sizeof(int))
-
-
-int main ( void )
-{
- int i, sum;
- int arr[N_INTS];
- fprintf(stderr, "lsframe1: start\n");
- for (i = 0; i < N_INTS; i++)
- arr[i] = i;
- sum = 0;
- for (i = 0; i < N_INTS; i++)
- sum += arr[i];
- fprintf(stderr, "lsframe1: done, result is %d\n", sum);
- return 0;
-}
Deleted: trunk/memcheck/tests/lsframe1.stderr.exp
===================================================================
--- trunk/memcheck/tests/lsframe1.stderr.exp 2009-07-28 01:30:06 UTC (rev 10644)
+++ trunk/memcheck/tests/lsframe1.stderr.exp 2009-07-28 05:10:33 UTC (rev 10645)
@@ -1,9 +0,0 @@
-
-lsframe1: start
-lsframe1: done, result is -8388608
-
-ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
-malloc/free: in use at exit: ... bytes in ... blocks.
-malloc/free: ... allocs, ... frees, ... bytes allocated.
-For a detailed leak analysis, rerun with: --leak-check=yes
-For counts of detected errors, rerun with: -v
Deleted: trunk/memcheck/tests/lsframe1.stdout.exp
===================================================================
Deleted: trunk/memcheck/tests/lsframe1.vgtest
===================================================================
--- trunk/memcheck/tests/lsframe1.vgtest 2009-07-28 01:30:06 UTC (rev 10644)
+++ trunk/memcheck/tests/lsframe1.vgtest 2009-07-28 05:10:33 UTC (rev 10645)
@@ -1,3 +0,0 @@
-prog: lsframe1
-vgopts: --main-stacksize=67200000 --max-stackframe=67200000
-stderr_filter: filter_allocs
Deleted: trunk/memcheck/tests/lsframe2.c
===================================================================
--- trunk/memcheck/tests/lsframe2.c 2009-07-28 01:30:06 UTC (rev 10644)
+++ trunk/memcheck/tests/lsframe2.c 2009-07-28 05:10:33 UTC (rev 10645)
@@ -1,34 +0,0 @@
-
-/* Demonstrate Memcheck correctly handling chain of 64 recursive
- calls, each of which allocates a 1 M array on the stack. Requires
- --main-stacksize=67117057 (on amd64-linux) or above, but works fine
- if you specify that. */
-
-#include <stdio.h>
-
-#define N_MBYTES 64
-
-#define N_INTS_PER_MBYTE (1048576 / sizeof(int))
-
-int rec ( int depth )
-{
- int i, zzz;
- int arr[N_INTS_PER_MBYTE];
- if (depth == 0) return 0;
- for (i = 0; i < N_INTS_PER_MBYTE; i++)
- arr[i] = i * depth;
- zzz = rec(depth-1);
- for (i = 0; i < N_INTS_PER_MBYTE; i++)
- zzz += arr[i];
- return zzz;
-}
-
-
-int main ( void )
-{
- int sum;
- fprintf(stderr, "lsframe2: start\n");
- sum = rec(N_MBYTES);
- fprintf(stderr, "lsframe2: done, result is %d\n", sum);
- return 0;
-}
Deleted: trunk/memcheck/tests/lsframe2.stderr.exp
===================================================================
--- trunk/memcheck/tests/lsframe2.stderr.exp 2009-07-28 01:30:06 UTC (rev 10644)
+++ trunk/memcheck/tests/lsframe2.stderr.exp 2009-07-28 05:10:33 UTC (rev 10645)
@@ -1,9 +0,0 @@
-
-lsframe2: start
-lsframe2: done, result is -272629760
-
-ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
-malloc/free: in use at exit: ... bytes in ... blocks.
-malloc/free: ... allocs, ... frees, ... bytes allocated.
-For a detailed leak analysis, rerun with: --leak-check=yes
-For counts of detected errors, rerun with: -v
Deleted: trunk/memcheck/tests/lsframe2.stdout.exp
===================================================================
Deleted: trunk/memcheck/tests/lsframe2.vgtest
===================================================================
--- trunk/memcheck/tests/lsframe2.vgtest 2009-07-28 01:30:06 UTC (rev 10644)
+++ trunk/memcheck/tests/lsframe2.vgtest 2009-07-28 05:10:33 UTC (rev 10645)
@@ -1,3 +0,0 @@
-prog: lsframe2
-vgopts: --main-stacksize=68500000
-stderr_filter: filter_allocs
Deleted: trunk/memcheck/tests/stack_changes.c
===================================================================
--- trunk/memcheck/tests/stack_changes.c 2009-07-28 01:30:06 UTC (rev 10644)
+++ trunk/memcheck/tests/stack_changes.c 2009-07-28 05:10:33 UTC (rev 10645)
@@ -1,75 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <ucontext.h>
-#include "tests/sys_mman.h"
-
-#include "valgrind.h"
-
-#define STACK_SIZE (10 * 4096)
-
-// This test is checking the libc context calls (setcontext, etc.) and
-// checks that Valgrind notices their stack changes properly.
-
-#if defined(_AIX) || defined(__APPLE__)
-typedef ucontext_t mycontext;
-#else /* linux */
-typedef struct ucontext mycontext;
-#endif
-
-mycontext ctx1, ctx2, oldc;
-int count;
-
-void hello(mycontext *newc)
-{
- printf("hello, world: %d\n", count);
- if (count++ == 2)
- newc = &oldc;
- setcontext(newc);
-}
-
-int init_context(mycontext *uc)
-{
- void *stack;
- int ret;
-
- if (getcontext(uc) == -1) {
- //perror("getcontext");
- printf("getcontext() doesn't seem to work\n");
- exit(1);
- }
-
- stack = (void *)mmap(0, STACK_SIZE, PROT_READ|PROT_WRITE|PROT_EXEC,
- MAP_ANONYMOUS|MAP_PRIVATE, -1, 0);
-
- if (stack == (void*)-1) {
- perror("mmap");
- exit(1);
- }
-
- ret = VALGRIND_STACK_REGISTER(stack, stack + STACK_SIZE);
-
- uc->uc_link = NULL;
- uc->uc_stack.ss_sp = stack;
- uc->uc_stack.ss_size = STACK_SIZE;
- uc->uc_stack.ss_flags = 0;
-
- return ret;
-}
-
-int main(int argc, char **argv)
-{
- int c1 = init_context(&ctx1);
- int c2 = init_context(&ctx2);
-
- makecontext(&ctx1, (void (*)()) hello, 1, &ctx2);
- makecontext(&ctx2, (void (*)()) hello, 1, &ctx1);
-
- swapcontext(&oldc, &ctx1);
-
- VALGRIND_STACK_DEREGISTER(c1);
- //free(ctx1.uc_stack.ss_sp);
- VALGRIND_STACK_DEREGISTER(c2);
- //free(ctx2.uc_stack.ss_sp);
-
- return 0;
-}
Deleted: trunk/memcheck/tests/stack_changes.stderr.exp
===================================================================
Deleted: trunk/memcheck/tests/stack_changes.stdout.exp
===================================================================
--- trunk/memcheck/tests/stack_changes.stdout.exp 2009-07-28 01:30:06 UTC (rev 10644)
+++ trunk/memcheck/tests/stack_changes.stdout.exp 2009-07-28 05:10:33 UTC (rev 10645)
@@ -1,3 +0,0 @@
-hello, world: 0
-hello, world: 1
-hello, world: 2
Deleted: trunk/memcheck/tests/stack_changes.stdout.exp2
===================================================================
--- trunk/memcheck/tests/stack_changes.stdout.exp2 2009-07-28 01:30:06 UTC (rev 10644)
+++ trunk/memcheck/tests/stack_changes.stdout.exp2 2009-07-28 05:10:33 UTC (rev 10645)
@@ -1 +0,0 @@
-getcontext() doesn't seem to work
Deleted: trunk/memcheck/tests/stack_changes.vgtest
===================================================================
--- trunk/memcheck/tests/stack_changes.vgtest 2009-07-28 01:30:06 UTC (rev 10644)
+++ trunk/memcheck/tests/stack_changes.vgtest 2009-07-28 05:10:33 UTC (rev 10645)
@@ -1,2 +0,0 @@
-prog: stack_changes
-vgopts: -q
|