]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
In r10465 --time-stamp=yes got slightly broken -- the space between the time
authorNicholas Nethercote <njn@valgrind.org>
Fri, 24 Jul 2009 05:16:31 +0000 (05:16 +0000)
committerNicholas Nethercote <njn@valgrind.org>
Fri, 24 Jul 2009 05:16:31 +0000 (05:16 +0000)
and the PID was removed.  This commit adds it back in.  It also adds a basic
test that would have detected this regression, and also the breakage in bug
200990.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10573

none/tests/Makefile.am
none/tests/filter_timestamp [new file with mode: 0755]
none/tests/timestamp.c [new file with mode: 0644]
none/tests/timestamp.stderr.exp [new file with mode: 0644]
none/tests/timestamp.vgtest [new file with mode: 0644]

index e87a3d70a9730ea77e4d9e31e1c27b3b9ec00486..8257d4dd820a02340873347fbd5c47a973bb6171 100644 (file)
@@ -33,8 +33,12 @@ endif
 DIST_SUBDIRS = x86 amd64 ppc32 ppc64 linux darwin x86-linux .
 
 dist_noinst_SCRIPTS = \
-       filter_cmdline0 filter_linenos \
-       filter_fdleak filter_none_discards filter_stderr
+       filter_cmdline0 \
+       filter_linenos \
+       filter_fdleak \
+       filter_none_discards \
+       filter_stderr \
+       filter_timestamp
 
 noinst_HEADERS = fdleak.h
 
@@ -131,6 +135,7 @@ EXTRA_DIST = \
        threaded-fork.stderr.exp threaded-fork.stdout.exp threaded-fork.vgtest \
        threadederrno.stderr.exp threadederrno.stdout.exp \
        threadederrno.vgtest \
+       timestamp.stderr.exp timestamp.vgtest \
        tls.vgtest tls.stderr.exp tls.stdout.exp  \
        vgprintf.stderr.exp vgprintf.stdout.exp vgprintf.vgtest
 
@@ -157,9 +162,15 @@ check_PROGRAMS = \
        syscall-restart1 syscall-restart2 \
        syslog \
        system \
-       threaded-fork threadederrno \
-       tls tls.so tls2.so vgprintf \
-       coolo_sigaction gxx304
+       threaded-fork \
+       threadederrno \
+       timestamp \
+       tls \
+       tls.so \
+       tls2.so \
+       vgprintf \
+       coolo_sigaction \
+       gxx304
 
 # DDD:
 # - manythreads and thread-exits have lots of this:
diff --git a/none/tests/filter_timestamp b/none/tests/filter_timestamp
new file mode 100755 (executable)
index 0000000..f8fe944
--- /dev/null
@@ -0,0 +1,26 @@
+#! /bin/sh
+
+dir=`dirname $0`
+
+sed "s/^==//" |
+
+perl -p -e "s/ [0-9]{1,7}==//" |
+
+# Have to strip the header ourselves, because the timestamp means the
+# default stripping doesn't work.
+sed "/ Nulgrind.*$/ d" |
+sed "/ Copyright.*$/ d" |
+sed "/ Using Valgrind.*$/ d" |
+
+$dir/filter_stderr |
+
+# At this point there are two lines left which look something like this:
+#   00:00:00:00.000
+#   00:00:00:01.107  
+# We replace the last 5 numbers to allow for a wide range of possible times.
+# It's not a great test, but it will catch some breakage (eg. if the times
+# don't start near 0, as happened in bug 200990, or if the space following
+# the time is omitted, as happend in r10465).
+#
+perl -p -e "s/^00:00:00:\d\d\.\d\d\d $/00:00:00:XX:YYY/"
+
diff --git a/none/tests/timestamp.c b/none/tests/timestamp.c
new file mode 100644 (file)
index 0000000..ca0faba
--- /dev/null
@@ -0,0 +1,15 @@
+#include <stdlib.h>
+#include <unistd.h>
+
+int main(void)
+{
+   int y = 0;
+   int* x = calloc(1,sizeof(int));
+   free(x);
+
+   y += x[0];
+   sleep(1);
+   y += x[0];
+
+   return y;
+}
diff --git a/none/tests/timestamp.stderr.exp b/none/tests/timestamp.stderr.exp
new file mode 100644 (file)
index 0000000..00a5083
--- /dev/null
@@ -0,0 +1,2 @@
+00:00:00:XX:YYY
+00:00:00:XX:YYY
diff --git a/none/tests/timestamp.vgtest b/none/tests/timestamp.vgtest
new file mode 100644 (file)
index 0000000..a12cde7
--- /dev/null
@@ -0,0 +1,3 @@
+prog: timestamp
+vgopts: --time-stamp=yes
+stderr_filter: filter_timestamp