diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/Makefile | 94 | ||||
-rw-r--r-- | test/stattest.cc | 81 |
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; } |