[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    kdesupport/strigi/tests/daemon/dbus
From:       Jos van den Oever <jos () vandenoever ! info>
Date:       2008-04-06 20:22:22
Message-ID: 1207513342.915823.13931.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 794179 by vandenoever:

Improve method of writing testdata during a strigi unit test session.

 M  +24 -3     strigidaemonunittestsession.cpp  
 M  +3 -0      strigidaemonunittestsession.h  


--- trunk/kdesupport/strigi/tests/daemon/dbus/strigidaemonunittestsession.cpp #794178:794179
@@ -127,12 +127,14 @@
     string xdgdir;
     set<string> plugindirs;
     set<string> backends;
+    map<string, vector<unsigned char> > testfilecontents;
     string testdatadir;
     string strigitestdir;
     int dbuspid;
 
     void setupTestDir();
     QProcess* startStrigiDaemon(const char* daemon);
+    void writeTestFiles() const;
 };
 void
 StrigiDaemonUnitTestSession::Private::setupTestDir() {
@@ -148,6 +150,7 @@
         cerr << "cannot create directory " << testdatadir.c_str() << endl;
         exit(1);
     }
+    writeTestFiles();
     // write a config file into the dir
     string file(strigitestdir + "/daemon.conf");
     ofstream out(file.c_str());
@@ -168,7 +171,9 @@
 
     QProcess* strigiDaemonProcess = new QProcess();
     QStringList args;
+    //args << strigiDaemon;
     args << "-d" << strigitestdir.c_str();
+    //strigiDaemonProcess->start("valgrind", args, QIODevice::ReadOnly);
     strigiDaemonProcess->start(strigiDaemon, args, QIODevice::ReadOnly);
     bool ok = strigiDaemonProcess->waitForStarted();
     if (!ok) {
@@ -246,14 +251,30 @@
     p->plugindirs.insert(plugindir);
 }
 void
+StrigiDaemonUnitTestSession::addFile(const char* name, const string& s) {
+    addFile(name, s.c_str(), s.length());
+}
+void
 StrigiDaemonUnitTestSession::addFile(const char* name, const char* content, 
         int contentlength) {
+    vector<unsigned char> data;
+    data.resize(contentlength);
+    for (int i=0; i<contentlength;++i) {
+        data[i] = content[i];
+    }
     string path = p->testdatadir + '/' + name;
-    FILE* f = fopen(path.c_str(), "w");
-    fwrite(content, 1, contentlength, f);
-    fclose(f);
+    p->testfilecontents[path] = data;
 }
 void
+StrigiDaemonUnitTestSession::Private::writeTestFiles() const {
+    for (map<string, vector<unsigned char> >::const_iterator i
+            = testfilecontents.begin(); i != testfilecontents.end(); ++i) {
+        FILE* f = fopen(i->first.c_str(), "w");
+        fwrite(&i->second[0], 1, i->second.size(), f);
+        fclose(f);
+    }
+}
+void
 StrigiDaemonUnitTestSession::setStrigiDir(const char* dir) {
     p->strigitestdir = dir;
 }
--- trunk/kdesupport/strigi/tests/daemon/dbus/strigidaemonunittestsession.h #794178:794179
@@ -1,6 +1,8 @@
 #ifndef STRIGIDAEMONUNITTESTSESSION_H
 #define STRIGIDAEMONUNITTESTSESSION_H
 
+#include <string>
+
 class StrigiDaemonUnitTestSession {
 private:
     class Private;
@@ -13,6 +15,7 @@
     void setDataDir(const char* dir);
     void setXDGDir(const char* xdgdir);
     void addBackend(const char* name, const char* plugindir);
+    void addFile(const char* name, const std::string& content);
     void addFile(const char* name, const char* content, int contentlength);
     void start();
     void stop();
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic