summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/Makefile94
-rw-r--r--test/stattest.cc81
2 files changed, 104 insertions, 71 deletions
diff --git a/test/Makefile b/test/Makefile
index d62dba64a..bf4200ba3 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -5,81 +5,61 @@ CXX?= g++
CURDIR?= $(shell /bin/pwd)
SRCDIR?= ..
-TARGET?= alpha
-
-TEST_SRCDIR?= $(SRCDIR)/test
-ARCH_SRCDIR?= $(SRCDIR)/arch/$(TARGET)
-BASE_SRCDIR?= $(SRCDIR)/base
-SIM_SRCDIR?= $(SRCDIR)/sim
-CACHE_SRCDIR?= $(SRCDIR)/sim/cache
-OLD_SRCDIR= $(SRCDIR)/old
-
-vpath % $(TEST_SRCDIR)
-vpath % $(BASE_SRCDIR)
-vpath % $(SIM_SRCDIR)
-vpath % $(CACHE_SRCDIR)
-vpath % $(OLD_SRCDIR)
CCFLAGS= -g -O0 -MMD -I. -I$(SRCDIR) -I- -DTRACING_ON=0
+MYSQL= -I/usr/include/mysql -L/usr/lib/mysql -lmysqlclient
+
+VPATH=$(SRCDIR)
default:
@echo "You must specify a target"
-targetarch:
- ln -s ../arch/$(TARGET) targetarch
-
-bitvectest: bitvectest.o
- $(CXX) $(LFLAGS) -o $@ $^
+bitvectest: test/bitvectest.cc
+ $(CXX) $(CCFLAGS) -o $@ $^
-circletest: circletest.o circlebuf.o
- $(CXX) $(LFLAGS) -o $@ $^
+circletest: test/circletest.cc base/circlebuf.cc
+ $(CXX) $(CCFLAGS) -o $@ $^
-cprintftest: cprintftest.o cprintf.o
- $(CXX) $(LFLAGS) -o $@ $^
+cprintftest: test/cprintftest.cc base/cprintf.cc
+ $(CXX) $(CCFLAGS) -o $@ $^
-initest: initest.o str.o inifile.o cprintf.o
- $(CXX) $(LFLAGS) -o $@ $^
+initest: test/initest.cc base/str.cc base/inifile.cc base/cprintf.cc
+ $(CXX) $(CCFLAGS) -o $@ $^
-lrutest: lru_test.o
- $(CXX) $(LFLAGS) -o $@ $^
+lrutest: test/lru_test.cc
+ $(CXX) $(CCFLAGS) -o $@ $^
-nmtest: nmtest.o object_file.o symtab.o misc.o str.o
- $(CXX) $(LFLAGS) -o $@ $^
+nmtest: test/nmtest.cc base/object_file.cc base/symtab.cc base/misc.cc base/str.cc
+ $(CXX) $(CCFLAGS) -o $@ $^
-offtest: offtest.o
- $(CXX) $(LFLAGS) -o $@ $^
+offtest: test/offtest.cc
+ $(CXX) $(CCFLAGS) -o $@ $^
-rangetest: rangetest.o range.o str.o
- $(CXX) $(LFLAGS) -o $@ $^
+rangetest: test/rangetest.cc base/range.cc base/str.cc
+ $(CXX) $(CCFLAGS) -o $@ $^
-stattest: cprintf.o hostinfo.o misc.o python.o statistics.o stattest.o \
- str.o time.o
- $(CXX) $(LFLAGS) -o $@ $^
+STATTEST+= base/cprintf.cc base/hostinfo.cc base/misc.cc base/mysql.cc
+STATTEST+= base/python.cc base/str.cc base/time.cc
+STATTEST+= base/statistics.cc base/stats/mysql.cc base/stats/python.cc
+STATTEST+= base/stats/statdb.cc base/stats/text.cc base/stats/visit.cc
+STATTEST+= test/stattest.cc
+stattest: $(STATTEST)
+ $(CXX) $(CCFLAGS) $(MYSQL) -o $@ $^
-strnumtest: strnumtest.o str.o
- $(CXX) $(LFLAGS) -o $@ $^
+strnumtest: test/strnumtest.cc base/str.cc
+ $(CXX) $(CCFLAGS) -o $@ $^
-symtest: misc.o symtest.o symtab.o str.o
- $(CXX) $(LFLAGS) -o $@ $^
+symtest: test/symtest.cc base/misc.cc base/symtab.cc base/str.cc
+ $(CXX) $(CCFLAGS) -o $@ $^
-tokentest: tokentest.o str.o
- $(CXX) $(LFLAGS) -o $@ $^
+tokentest: test/tokentest.cc base/str.cc
+ $(CXX) $(CCFLAGS) -o $@ $^
-tracetest: tracetest.o trace.o trace_flags.o cprintf.o str.o misc.o
- $(CXX) $(LFLAGS) -o $@ $^
+TRACE+=test/tracetest.cc base/trace.cc base/trace_flags.cc base/cprintf.cc
+TRACE+=base/str.cc base/misc.cc
+tracetest: $(TRACE)
+ $(CXX) $(CCFLAGS) -o $@ $^
clean:
- @rm -f *.o *.d *test *~ .#* *.core core
+ @rm -f *test *~ .#* *.core core
.PHONY: clean
-
-# C++ Compilation
-%.o: %.cc
- @echo '$(CXX) $(CCFLAGS) -c $(notdir $<) -o $@'
- @$(CXX) $(CCFLAGS) -c $< -o $@
-
-# C Compilation
-%.o: %.c
- @echo '$(CC) $(CCFLAGS) -c $(notdir $<) -o $@'
- @$(CC) $(CCFLAGS) -c $< -o $@
-
--include *.d
diff --git a/test/stattest.cc b/test/stattest.cc
index 8dd8eeb8e..7bf355c0e 100644
--- a/test/stattest.cc
+++ b/test/stattest.cc
@@ -35,6 +35,9 @@
#include "base/cprintf.hh"
#include "base/misc.hh"
#include "base/statistics.hh"
+#include "base/stats/text.hh"
+#include "base/stats/python.hh"
+#include "base/stats/mysql.hh"
#include "sim/host.hh"
using namespace std;
@@ -46,14 +49,14 @@ Tick ticksPerSecond = ULL(2000000000);
Scalar<> s1;
Scalar<> s2;
Average<> s3;
-Scalar<Counter, MainBin> s4;
-Vector<Counter, MainBin> s5;
-Distribution<Counter, MainBin> s6;
-Vector<Counter, MainBin> s7;
+Scalar<MainBin> s4;
+Vector<MainBin> s5;
+Distribution<MainBin> s6;
+Vector<MainBin> s7;
AverageVector<> s8;
StandardDeviation<> s9;
AverageDeviation<> s10;
-Scalar<Counter> s11;
+Scalar<> s11;
Distribution<> s12;
VectorDistribution<> s13;
VectorStandardDeviation<> s14;
@@ -71,6 +74,8 @@ Formula f7;
MainBin bin1("bin1");
MainBin bin2("bin2");
+ostream *outputStream = &cout;
+
double
testfunc()
{
@@ -89,26 +94,57 @@ usage()
{
panic("incorrect usage.\n"
"usage:\n"
- "\t%s [-v]\n", progname);
+ "\t%s [-p <python file>] [-t [-c] [-d]]\n", progname);
}
int
main(int argc, char *argv[])
{
+ bool descriptions = false;
+ bool compat = false;
+ bool text = false;
+ string pyfile;
+ string mysql_name;
+ string mysql_host;
+ string mysql_user = "binkertn";
+ string mysql_passwd;
+
char c;
progname = argv[0];
- PrintDescriptions = false;
- while ((c = getopt(argc, argv, "v")) != -1) {
- cprintf("c == %c\n", c);
+ while ((c = getopt(argc, argv, "cdh:P:p:s:tu:")) != -1) {
switch (c) {
- case 'v':
- PrintDescriptions = true;
+ case 'c':
+ compat = true;
+ break;
+ case 'd':
+ descriptions = true;
+ break;
+ case 'h':
+ mysql_host = optarg;
+ break;
+ case 'P':
+ mysql_passwd = optarg;
+ break;
+ case 'p':
+ pyfile = optarg;
+ break;
+ case 's':
+ mysql_name = optarg;
+ break;
+ case 't':
+ text = true;
+ break;
+ case 'u':
+ mysql_user = optarg;
break;
default:
usage();
}
}
+ if (!text && (compat || descriptions))
+ usage();
+
s5.init(5);
s6.init(1, 100, 13);
s7.init(7);
@@ -214,6 +250,8 @@ main(int argc, char *argv[])
.flags(total)
.subname(0, "sub0")
.subname(1, "sub1")
+ .ysubname(0, "y0")
+ .ysubname(1, "y1")
;
f1
@@ -509,9 +547,24 @@ main(int argc, char *argv[])
s12.sample(100);
-// dump(cout, mode_simplescalar);
- python_start("/tmp/stats.py");
- python_dump("stattest", "all");
+ if (text) {
+ Text out(cout);
+ out.descriptions = descriptions;
+ out.compat = compat;
+ out();
+ }
+
+ if (!pyfile.empty()) {
+ Python out(pyfile);
+ out();
+ }
+
+ if (!mysql_name.empty()) {
+ MySql out;
+ out.connect(mysql_host, mysql_user, mysql_passwd, "m5stats",
+ mysql_name, "test");
+ out();
+ }
return 0;
}