summaryrefslogtreecommitdiffstats
path: root/pts/test-resources/memory-bandwidth/install.sh
blob: d03ad58e38746b2f65a0e82a806d09d99b9ce95c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#!/bin/sh

rm -rf bandwidth-0.13/

tar -xvf bandwidth-0.13.tar.gz

rm -f memory-bandwidth

echo "#!/bin/sh

case \"\$1\" in
\"TEST_L2READ\")
	./bandwidth -l2read | grep \"L2 cache sequential read\" > \$LOG_FILE
	;;
\"TEST_L2WRITE\")
	./bandwidth -l2write | grep \"L2 cache sequential write\" > \$LOG_FILE
	;;
\"TEST_READ\")
	./bandwidth -read | grep \"Main memory sequential read\" > \$LOG_FILE
	;;
\"TEST_WRITE\")
	./bandwidth -write | grep \"Main memory sequential write\" > \$LOG_FILE
	;;
esac
" > memory-bandwidth
chmod +x memory-bandwidth

cd bandwidth-0.13/
patch -p1 <<'EOT'
--- bandwidth-0.13/main.c	2007-08-13 02:36:55.000000000 +0200
+++ bandwidth-0.13-patched/main.c	2008-04-07 03:23:59.000000000 +0200
@@ -403,9 +403,52 @@
 	free(a2);
 }
 
+void usage(char *argv0)
+{
+	printf ("usage: %s -l2read -l2write -read -write -fb -library\n"
+		"or: %s -all\n"
+		"will run the specified test(s), or all of them\n",
+		argv0, argv0);
+}
 
-main()
+int main(int argc, char **argv)
 {
+	char *argv0 = argv[0] ? argv[0] : "bandwidth";
+	int do_l2_seq_read = 0,
+	    do_l2_seq_write = 0,
+	    do_main_seq_read = 0,
+	    do_main_seq_write = 0,
+	    do_fb_readwrite = 0,
+	    do_library_test = 0,
+	    do_all_tests = 0;
+
+	if (argc <= 1) {
+		usage(argv0);
+		exit(1);
+	}
+	while (argc > 1) {
+		if (!strcmp(argv[1], "-all"))
+			do_all_tests = 1;
+		else if (!strcmp(argv[1], "-l2read"))
+			do_l2_seq_read = 1;
+		else if (!strcmp(argv[1], "-l2write"))
+			do_l2_seq_write = 1;
+		else if (!strcmp(argv[1], "-read"))
+			do_main_seq_read = 1;
+		else if (!strcmp(argv[1], "-write"))
+			do_main_seq_write = 1;
+		else if (!strcmp(argv[1], "-fb"))
+			do_fb_readwrite = 1;
+		else if (!strcmp(argv[1], "-library"))
+			do_library_test = 1;
+		else {
+			usage(argv0);
+			exit(1);
+		}
+		--argc;
+		++argv;
+	}
+
 	printf ("This is bandwidth version %s\n", VERSION);
 	printf ("Copyright (C) 2005,2007 by Zack T Smith\n\n");
 
@@ -414,15 +457,21 @@
 	system ("grep MHz /proc/cpuinfo | uniq | sed \"s/[\\t\\n: a-zA-Z]//g\"");
 	fflush (stdout);
 
-	l2_seq_read ();
-	l2_seq_write ();
-
-	main_seq_read ();
-	main_seq_write ();
+	if(do_l2_seq_read || do_all_tests)
+		l2_seq_read ();
+	if(do_l2_seq_write || do_all_tests)
+		l2_seq_write ();
+
+	if(do_main_seq_read || do_all_tests)
+		main_seq_read ();
+	if(do_main_seq_write || do_all_tests)
+		main_seq_write ();
 
-	fb_readwrite();
+	if(do_fb_readwrite || do_all_tests)
+		fb_readwrite();
 
-	library_test();
+	if(do_library_test || do_all_tests)
+		library_test();
 
 	return 0;
 }

EOT
make
ln bandwidth ../