|
From: <sv...@va...> - 2006-04-02 22:23:35
|
Author: weidendo
Date: 2006-04-02 23:23:27 +0100 (Sun, 02 Apr 2006)
New Revision: 5816
Log:
Callgrind: add 4 regression tests
The simwork tests check different cache simulator
options/modes. These tests should be extended to
check for the produced call graph.
The threads check tests the callgrind mode where
counts are aggregated separate per thread.
Added:
trunk/callgrind/tests/simwork.c
trunk/callgrind/tests/simwork1.stderr.exp
trunk/callgrind/tests/simwork1.stdout.exp
trunk/callgrind/tests/simwork1.vgtest
trunk/callgrind/tests/simwork2.stderr.exp
trunk/callgrind/tests/simwork2.stdout.exp
trunk/callgrind/tests/simwork2.vgtest
trunk/callgrind/tests/simwork3.stderr.exp
trunk/callgrind/tests/simwork3.stdout.exp
trunk/callgrind/tests/simwork3.vgtest
trunk/callgrind/tests/threads.c
trunk/callgrind/tests/threads.stderr.exp
trunk/callgrind/tests/threads.vgtest
Modified:
trunk/callgrind/main.c
trunk/callgrind/tests/
trunk/callgrind/tests/Makefile.am
trunk/callgrind/tests/clreq.stderr.exp
trunk/callgrind/tests/clreq.vgtest
trunk/callgrind/tests/filter_stderr
Modified: trunk/callgrind/main.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/main.c 2006-04-02 16:21:44 UTC (rev 5815)
+++ trunk/callgrind/main.c 2006-04-02 22:23:27 UTC (rev 5816)
@@ -1046,7 +1046,6 @@
CLG_(instrument_state) =3D CLG_(clo).instrument_atstart;
=20
if (VG_(clo_verbosity > 0)) {
- VG_(message)(Vg_UserMsg, "");
VG_(message)(Vg_UserMsg,
"For interactive control, run 'callgrind_control -h'.=
");
}
Property changes on: trunk/callgrind/tests
___________________________________________________________________
Name: svn:ignore
- callgrind.out.*
clreq
.deps
Makefile
Makefile.in
*.stderr.diff
*.stderr.out
*.stdout.diff
*.stdout.out
+ callgrind.out.*
clreq
simwork
threads
.deps
Makefile
Makefile.in
*.stderr.diff
*.stderr.out
*.stdout.diff
*.stdout.out
Modified: trunk/callgrind/tests/Makefile.am
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/tests/Makefile.am 2006-04-02 16:21:44 UTC (rev 5815)
+++ trunk/callgrind/tests/Makefile.am 2006-04-02 22:23:27 UTC (rev 5816)
@@ -6,11 +6,15 @@
=20
noinst_SCRIPTS =3D filter_stderr
=20
-EXTRA_DIST =3D clreq.vgtest clreq.stderr.exp=20
+EXTRA_DIST =3D clreq.vgtest clreq.stderr.exp \
+ simwork1.vgtest simwork1.stdout.exp simwork1.stderr.exp \
+ simwork2.vgtest simwork2.stdout.exp simwork2.stderr.exp \
+ simwork3.vgtest simwork3.stdout.exp simwork3.stderr.exp \
+ threads.vgtest threads.stderr.exp
=20
-check_PROGRAMS =3D clreq
+check_PROGRAMS =3D clreq simwork threads
=20
AM_CPPFLAGS =3D -I$(top_srcdir)/include
AM_CFLAGS =3D $(WERROR) -Winline -Wall -Wshadow -g $(AM_FLAG_M3264_PRI=
)
=20
-
+threads_LDADD =3D -lpthread
Modified: trunk/callgrind/tests/clreq.stderr.exp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/tests/clreq.stderr.exp 2006-04-02 16:21:44 UTC (rev 5=
815)
+++ trunk/callgrind/tests/clreq.stderr.exp 2006-04-02 22:23:27 UTC (rev 5=
816)
@@ -0,0 +1,6 @@
+
+
+Events : Ir
+Collected :
+
+I refs:
Modified: trunk/callgrind/tests/clreq.vgtest
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/tests/clreq.vgtest 2006-04-02 16:21:44 UTC (rev 5815)
+++ trunk/callgrind/tests/clreq.vgtest 2006-04-02 22:23:27 UTC (rev 5816)
@@ -1,3 +1,3 @@
prog: clreq
-vgopts: -q
+vgopts:
cleanup: rm callgrind.out.*
Modified: trunk/callgrind/tests/filter_stderr
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/tests/filter_stderr 2006-04-02 16:21:44 UTC (rev 5815=
)
+++ trunk/callgrind/tests/filter_stderr 2006-04-02 22:23:27 UTC (rev 5816=
)
@@ -7,6 +7,12 @@
# Remove "Callgrind, ..." line and the following copyright line.
sed "/^Callgrind, a call-graph generating cache profiler./ , /./ d" |
=20
+# Remove pointer to callgrind_control
+sed "/^For interactive control,.*$/d" |
+
+# Remove numbers from "Collected" line
+sed "s/^\(Collected *:\)[ 0-9]*$/\1/" |
+
# Remove numbers from I/D/L2 "refs:" lines
sed "s/\(\(I\|D\|L2\) *refs:\)[ 0-9,()+rdw]*$/\1/" |
=20
Added: trunk/callgrind/tests/simwork.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/tests/simwork.c (rev 0)
+++ trunk/callgrind/tests/simwork.c 2006-04-02 22:23:27 UTC (rev 5816)
@@ -0,0 +1,66 @@
+// Some work exercising the cache simulator
+// with a simple call graph
+
+#include "../callgrind.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#define SIZE 100000
+
+double *a, *b, *c;
+
+void init()
+{
+ int i;
+ for(i =3D 0; i< SIZE; i++) a[i] =3D b[i] =3D 1.0;
+}
+
+void do_add()
+{
+ int i;
+ for(i =3D 0; i< SIZE; i++) {
+ a[i] +=3D 1.0;
+ c[i] =3D a[i] + b[i];
+ }
+}
+
+double do_sum()
+{
+ int i;
+ double sum=3D0.0;
+
+ do_add();
+ for(i =3D 0; i< SIZE; i++) sum +=3D c[i];
+
+ return sum;
+}
+
+double do_some_work(int iter)
+{
+ double sum=3D0.0;
+
+ if (iter > 0) sum +=3D do_some_work(iter-1);
+ do_add();
+ sum +=3D do_sum();
+
+ return sum;
+}
+
+int main(void)
+{
+ double res;
+
+ a =3D (double*) malloc(SIZE * sizeof(double));
+ b =3D (double*) malloc(SIZE * sizeof(double));
+ c =3D (double*) malloc(SIZE * sizeof(double));
+
+ CALLGRIND_ZERO_STATS;
+ init();
+ res =3D do_some_work(1);
+ CALLGRIND_DUMP_STATS;
+
+ printf("Sum: %.0f\n", res);
+ return RUNNING_ON_VALGRIND;
+}
+
Added: trunk/callgrind/tests/simwork1.stderr.exp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/tests/simwork1.stderr.exp (re=
v 0)
+++ trunk/callgrind/tests/simwork1.stderr.exp 2006-04-02 22:23:27 UTC (re=
v 5816)
@@ -0,0 +1,20 @@
+
+
+Events : Ir Dr Dw I1mr D1mr D1mw I2mr D2mr D2mw
+Collected :
+
+I refs:
+I1 misses:
+L2i misses:
+I1 miss rate:
+L2i miss rate:
+
+D refs:
+D1 misses:
+L2d misses:
+D1 miss rate:
+L2d miss rate:
+
+L2 refs:
+L2 misses:
+L2 miss rate:
Added: trunk/callgrind/tests/simwork1.stdout.exp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/tests/simwork1.stdout.exp (re=
v 0)
+++ trunk/callgrind/tests/simwork1.stdout.exp 2006-04-02 22:23:27 UTC (re=
v 5816)
@@ -0,0 +1 @@
+Sum: 1000000
Added: trunk/callgrind/tests/simwork1.vgtest
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/tests/simwork1.vgtest (rev 0)
+++ trunk/callgrind/tests/simwork1.vgtest 2006-04-02 22:23:27 UTC (rev 58=
16)
@@ -0,0 +1,3 @@
+prog: simwork
+vgopts: --simulate-hwpref=3Dyes
+cleanup: rm callgrind.out.*
Added: trunk/callgrind/tests/simwork2.stderr.exp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/tests/simwork2.stderr.exp (re=
v 0)
+++ trunk/callgrind/tests/simwork2.stderr.exp 2006-04-02 22:23:27 UTC (re=
v 5816)
@@ -0,0 +1,20 @@
+
+
+Events : Ir Dr Dw I1mr D1mr D1mw I2mr D2mr D2mw I2dmr D2dmr D2dmw
+Collected :
+
+I refs:
+I1 misses:
+L2i misses:
+I1 miss rate:
+L2i miss rate:
+
+D refs:
+D1 misses:
+L2d misses:
+D1 miss rate:
+L2d miss rate:
+
+L2 refs:
+L2 misses:
+L2 miss rate:
Added: trunk/callgrind/tests/simwork2.stdout.exp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/tests/simwork2.stdout.exp (re=
v 0)
+++ trunk/callgrind/tests/simwork2.stdout.exp 2006-04-02 22:23:27 UTC (re=
v 5816)
@@ -0,0 +1 @@
+Sum: 1000000
Added: trunk/callgrind/tests/simwork2.vgtest
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/tests/simwork2.vgtest (rev 0)
+++ trunk/callgrind/tests/simwork2.vgtest 2006-04-02 22:23:27 UTC (rev 58=
16)
@@ -0,0 +1,3 @@
+prog: simwork
+vgopts: --simulate-wb=3Dyes --simulate-hwpref=3Dyes
+cleanup: rm callgrind.out.*
Added: trunk/callgrind/tests/simwork3.stderr.exp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/tests/simwork3.stderr.exp (re=
v 0)
+++ trunk/callgrind/tests/simwork3.stderr.exp 2006-04-02 22:23:27 UTC (re=
v 5816)
@@ -0,0 +1,20 @@
+
+
+Events : Ir Dr Dw I1mr D1mr D1mw I2mr D2mr D2mw AcCost1 SpLoss1 AcCos=
t2 SpLoss2
+Collected :
+
+I refs:
+I1 misses:
+L2i misses:
+I1 miss rate:
+L2i miss rate:
+
+D refs:
+D1 misses:
+L2d misses:
+D1 miss rate:
+L2d miss rate:
+
+L2 refs:
+L2 misses:
+L2 miss rate:
Added: trunk/callgrind/tests/simwork3.stdout.exp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/tests/simwork3.stdout.exp (re=
v 0)
+++ trunk/callgrind/tests/simwork3.stdout.exp 2006-04-02 22:23:27 UTC (re=
v 5816)
@@ -0,0 +1 @@
+Sum: 1000000
Added: trunk/callgrind/tests/simwork3.vgtest
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/tests/simwork3.vgtest (rev 0)
+++ trunk/callgrind/tests/simwork3.vgtest 2006-04-02 22:23:27 UTC (rev 58=
16)
@@ -0,0 +1,3 @@
+prog: simwork
+vgopts: --cacheuse=3Dyes
+cleanup: rm callgrind.out.*
Added: trunk/callgrind/tests/threads.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/tests/threads.c (rev 0)
+++ trunk/callgrind/tests/threads.c 2006-04-02 22:23:27 UTC (rev 5816)
@@ -0,0 +1,47 @@
+/* A simple example with 4 threads */
+
+#include <pthread.h>
+#include <unistd.h>
+
+double a[1000];
+
+static void init()
+{
+ int i;
+ for(i=3D0;i<1000;i++) a[i] =3D (double)i;
+}
+
+static void *th(void *v)
+{
+ double sum =3D 0.0;
+ int i,j;
+
+ for(j=3D0;j<1000;j++)
+ for(i=3D0;i<1000;i++)
+ sum +=3D a[i];
+
+ *( (double*)v ) =3D sum;
+
+ /* make sure that no threads is so fast that it finishes
+ * before last thread is created, thus reusing the TID */
+ sleep(1);
+
+ return 0;
+}
+
+int main()
+{
+ pthread_t t[4];
+ double sum[4];
+ int i;
+
+ init();
+
+ for(i=3D0;i<4;i++)
+ pthread_create(&t[i], NULL, th, &sum[i]);=09
+
+ for(i=3D0;i<4;i++)
+ pthread_join(t[i], NULL);
+
+ return 0;
+}
Added: trunk/callgrind/tests/threads.stderr.exp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/tests/threads.stderr.exp (rev=
0)
+++ trunk/callgrind/tests/threads.stderr.exp 2006-04-02 22:23:27 UTC (rev=
5816)
@@ -0,0 +1,6 @@
+
+
+Events : Ir
+Collected :
+
+I refs:
Added: trunk/callgrind/tests/threads.vgtest
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/callgrind/tests/threads.vgtest (rev 0)
+++ trunk/callgrind/tests/threads.vgtest 2006-04-02 22:23:27 UTC (rev 581=
6)
@@ -0,0 +1,3 @@
+prog: threads
+vgopts: --separate-threads=3Dyes
+cleanup: rm callgrind.out.*
|
|
From: Julian S. <js...@ac...> - 2006-04-02 22:41:00
|
> Log: > Callgrind: add 4 regression tests Excellent. J |