Rename newtestsuite to testsuite
[dyninst.git] / testsuite / src / DatabaseOutputDriver.h
1
2 #include <sstream>
3 #include <string>
4 #include <vector>
5
6 #include "TestOutputDriver.h"
7
8 #include "test_results.h"
9 #include "test_lib.h"
10
11 // FIXME Magic numbers..  These should be changed to test_driver parameters
12 #define DB_HOSTNAME "bryce.cs.umd.edu"
13 #define DB_USERNAME "editdata"
14 #define DB_PASSWD "editdata"
15 #define DB_DBNAME "testDB"
16 #define DB_PORT 0
17 #define DB_UXSOCKET NULL
18 #define DB_CLIENTFLAG 0
19
20
21 class DatabaseOutputDriver : public TestOutputDriver {
22 private:
23   std::string dblogFilename;
24   std::string sqlLogFilename;
25   std::map<std::string, std::string> *attributes;
26   bool wroteLogHeader;
27   bool submittedResults;
28   test_results_t result;
29
30   // Stores any output before startNewTest is first called
31   std::stringstream pretestLog;
32
33   void writeSQLLog();
34
35 public:
36   DatabaseOutputDriver(void * data);
37   ~DatabaseOutputDriver();
38
39   virtual void startNewTest(std::map<std::string, std::string> &attrs, TestInfo *test, RunGroup *group);
40   virtual void redirectStream(TestOutputStream stream, const char * filename);
41   virtual void logResult(test_results_t result, int stage=-1);
42   virtual void logCrash(std::string testname);
43   virtual void log(TestOutputStream stream, const char *fmt, ...);
44   virtual void vlog(TestOutputStream stream, const char *fmt, va_list args);
45   virtual void finalizeOutput();
46   virtual void getMutateeArgs(std::vector<std::string> &args);
47 };
48
49 extern "C" {
50         DLLEXPORT TestOutputDriver *outputDriver_factory(void * data);
51 }