summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordeva <deva>2011-02-17 11:00:14 +0000
committerdeva <deva>2011-02-17 11:00:14 +0000
commitdb144840aba95affb3a6b5b2536059f49f0677ff (patch)
tree1c397a20aa5745c6bbb5dee6a4409f58c4542e87
parentc8651b8c89673300477ab86962640c93216ea306 (diff)
Rewrite of all old tests to new unittest framework. Also some work on testdb; more to come...
-rw-r--r--server/src/Makefile.am6
-rw-r--r--server/src/admin_export.cc13
-rw-r--r--server/src/artefact.cc6
-rw-r--r--server/src/daemon.cc15
-rw-r--r--server/src/entitylist.cc2
-rw-r--r--server/src/environment.cc2
-rw-r--r--server/src/fieldnamescanner.cc (renamed from server/src/macrotool/fieldnamescanner.cc)10
-rw-r--r--server/src/fieldnamescanner.h (renamed from server/src/macrotool/fieldnamescanner.h)0
-rw-r--r--server/src/httpd.cc17
-rw-r--r--server/src/inotify.cc4
-rw-r--r--server/src/journal.cc15
-rw-r--r--server/src/journal_commit.cc15
-rw-r--r--server/src/journal_uploadserver.cc2
-rw-r--r--server/src/luaresume.cc15
-rw-r--r--server/src/macroheaderparser.cc52
-rw-r--r--server/src/macrolist.cc17
-rw-r--r--server/src/macroparser.cc24
-rw-r--r--server/src/macrotool/Makefile.am8
-rw-r--r--server/src/pracrodaopgsql.cc18
-rw-r--r--server/src/pracrodaotest.cc176
-rw-r--r--server/src/pracrodaotest.h5
-rw-r--r--server/src/queryhandlerpentominos.cc19
-rw-r--r--server/src/queryhandlerpracro.cc17
-rw-r--r--server/src/queryparser.cc19
-rw-r--r--server/src/resumeparser.cc15
-rw-r--r--server/src/semaphore.cc15
-rw-r--r--server/src/server.cc17
-rw-r--r--server/src/session.cc33
-rw-r--r--server/src/sessionparser.cc9
-rw-r--r--server/src/sessionserialiser.cc22
-rw-r--r--server/src/tcpsocket.cc22
-rw-r--r--server/src/templateheaderparser.cc25
-rw-r--r--server/src/templatelist.cc17
-rw-r--r--server/src/templateparser.cc26
-rw-r--r--server/src/transactionhandler.cc9
-rw-r--r--server/src/utf8.cc13
-rw-r--r--server/src/util.cc (renamed from server/src/macrotool/util.cc)15
-rw-r--r--server/src/util.h (renamed from server/src/macrotool/util.h)0
-rw-r--r--server/src/versionstr.cc15
-rw-r--r--server/src/widgetgenerator.cc14
-rw-r--r--server/src/xml_encode_decode.cc29
41 files changed, 551 insertions, 222 deletions
diff --git a/server/src/Makefile.am b/server/src/Makefile.am
index 8d7a0de..003148e 100644
--- a/server/src/Makefile.am
+++ b/server/src/Makefile.am
@@ -14,8 +14,6 @@ pracrod_SOURCES = \
pracrod.cc \
admin_connection.cc \
admin_export.cc \
- macrotool/fieldnamescanner.cc \
- macrotool/util.cc \
admin_rc.cc \
artefact.cc \
client_connection.cc \
@@ -29,6 +27,7 @@ pracrod_SOURCES = \
entitylist.cc \
environment.cc \
exception.cc \
+ fieldnamescanner.cc \
httpd.cc \
inotify.cc \
journal_commit.cc \
@@ -62,6 +61,7 @@ pracrod_SOURCES = \
transactionparser.cc \
tcpsocket.cc \
utf8.cc \
+ util.cc \
versionstr.cc \
widgetvalue.cc \
widgetgenerator.cc \
@@ -84,6 +84,7 @@ EXTRA_DIST = \
environment.h \
entitylist.h \
exception.h \
+ fieldnamescanner.h \
httpd.h \
inotify.h \
journal_commit.h \
@@ -118,6 +119,7 @@ EXTRA_DIST = \
transactionparser.h \
tcpsocket.h \
utf8.h \
+ util.h \
versionstr.h \
widgetvalue.h \
widgetgenerator.h \
diff --git a/server/src/admin_export.cc b/server/src/admin_export.cc
index 9475bc3..3ec77d1 100644
--- a/server/src/admin_export.cc
+++ b/server/src/admin_export.cc
@@ -36,7 +36,7 @@
#include <stdlib.h>
#include <pqxx/pqxx>
-#include "macrotool/fieldnamescanner.h"
+#include "fieldnamescanner.h"
#include "configuration.h"
#define SEP "\t"
@@ -255,18 +255,23 @@ static std::string do_export(std::string templ, bool *ok)
std::string admin_export(Environment &env, std::string templ, bool *ok)
{
+#ifndef WITHOUT_DB
return do_export(templ, ok);
+#else
+ return "No database available";
+#endif/* WITHOUT_DB */
}
#ifdef TEST_ADMIN_EXPORT
-//deps:
-//cflags:
-//libs:
+//deps: environment.cc connectionpool.cc mutex.cc semaphore.cc configuration.cc entitylist.cc artefact.cc database.cc pracrodao.cc pracrodaotest.cc pracrodaopgsql.cc templatelist.cc macrolist.cc debug.cc macroheaderparser.cc exception.cc log.cc saxparser.cc templateheaderparser.cc versionstr.cc inotify.cc session.cc sessionserialiser.cc journal.cc journal_uploadserver.cc journal_commit.cc xml_encode_decode.cc sessionparser.cc fieldnamescanner.cc util.cc macroparser.cc templateparser.cc
+//cflags: -I.. -DWITHOUT_ARTEFACT $(PQXX_CFLAGS) $(EXPAT_CFLAGS)
+//libs: $(PQXX_LIBS) $(EXPAT_LIBS)
#include "test.h"
TEST_BEGIN;
// TODO: Put some testcode here (see test.h for usable macros).
+TEST_TRUE(false, "No tests yet!");
TEST_END;
diff --git a/server/src/artefact.cc b/server/src/artefact.cc
index 94e6bb9..8c6b81a 100644
--- a/server/src/artefact.cc
+++ b/server/src/artefact.cc
@@ -159,6 +159,10 @@ QueryResult Artefact::exec(Query &query,
TEST_BEGIN;
+// TODO: Put some testcode here (see test.h for usable macros).
+TEST_TRUE(false, "No tests yet!");
+
+/*
debug_parse("+all");
{
@@ -181,7 +185,7 @@ debug_parse("+all");
res.print();
}
-
+*/
TEST_END;
#endif/*TEST_ARTEFACT*/
diff --git a/server/src/daemon.cc b/server/src/daemon.cc
index 8297111..938170c 100644
--- a/server/src/daemon.cc
+++ b/server/src/daemon.cc
@@ -174,3 +174,18 @@ int Daemon::run(const char *user, const char* group, bool detach,
return ret;
}
+
+#ifdef TEST_DAEMON
+//deps:
+//cflags:
+//libs:
+#include <test.h>
+
+TEST_BEGIN;
+
+// TODO: Put some testcode here (see test.h for usable macros).
+TEST_TRUE(false, "No tests yet!");
+
+TEST_END;
+
+#endif/*TEST_DAEMON*/
diff --git a/server/src/entitylist.cc b/server/src/entitylist.cc
index 23acbf4..2f8d82d 100644
--- a/server/src/entitylist.cc
+++ b/server/src/entitylist.cc
@@ -261,7 +261,7 @@ bool createfile(TestList &lst, std::string filename,
TEST_BEGIN;
-pracro_debug_parse("-all,+entitylist");
+debug_parse("-all,+entitylist");
if(mkdir(_DIR, 0777) == -1) TEST_FATAL("Could not create test dir.");
diff --git a/server/src/environment.cc b/server/src/environment.cc
index b40c3ca..da475ce 100644
--- a/server/src/environment.cc
+++ b/server/src/environment.cc
@@ -67,7 +67,7 @@ Environment::~Environment()
}
#ifdef TEST_ENVIRONMENT
-//deps: configuration.cc database.cc artefact.cc pracrodao.cc session.cc mutex.cc semaphore.cc debug.cc pracrodaotest.cc pracrodaopgsql.cc journal.cc journal_commit.cc entitylist.cc inotify.cc exception.cc versionstr.cc tcpsocket.cc macrolist.cc templatelist.cc saxparser.cc log.cc macroheaderparser.cc templateheaderparser.cc
+//deps: configuration.cc database.cc artefact.cc pracrodao.cc session.cc mutex.cc semaphore.cc debug.cc pracrodaotest.cc pracrodaopgsql.cc journal.cc journal_commit.cc entitylist.cc inotify.cc exception.cc versionstr.cc tcpsocket.cc macrolist.cc templatelist.cc saxparser.cc log.cc macroheaderparser.cc templateheaderparser.cc sessionserialiser.cc journal_uploadserver.cc xml_encode_decode.cc sessionparser.cc
//cflags: -DWITHOUT_ARTEFACT -I.. $(PQXX_CXXFLAGS) $(PTHREAD_CFLAGS) $(EXPAT_CFLAGS)
//libs: $(PQXX_LIBS) -lpthread $(EXPAT_LIBS) $(PTHREAD_LIBS)
#include "test.h"
diff --git a/server/src/macrotool/fieldnamescanner.cc b/server/src/fieldnamescanner.cc
index 9c436fb..585657b 100644
--- a/server/src/macrotool/fieldnamescanner.cc
+++ b/server/src/fieldnamescanner.cc
@@ -130,12 +130,17 @@ templates_t scanfieldnames(std::set<std::string> &filter)
}
#ifdef TEST_FIELDNAMESCANNER
-//deps: util.cc ../configuration.cc ../debug.cc ../log.cc ../templateparser.cc ../exception.cc ../saxparser.cc ../macrolist.cc ../entitylist.cc ../inotify.cc ../mutex.cc ../macroheaderparser.cc ../versionstr.cc ../macroparser.cc
-//cflags: -I.. -I../.. $(EXPAT_CFLAGS) $(PTHREAD_CFLAGS)
+//deps: util.cc configuration.cc debug.cc log.cc templateparser.cc exception.cc saxparser.cc macrolist.cc entitylist.cc inotify.cc mutex.cc macroheaderparser.cc versionstr.cc macroparser.cc
+//cflags: -I.. $(EXPAT_CFLAGS) $(PTHREAD_CFLAGS)
//libs: $(EXPAT_LIBS) $(PTHREAD_LIBS)
#include "test.h"
TEST_BEGIN;
+
+// TODO: Put some testcode here (see test.h for usable macros).
+TEST_TRUE(false, "No tests yet!");
+
+/*
Conf::xml_basedir = "../../xml";
std::set<std::string> filter;
filter.insert("dims");
@@ -152,6 +157,7 @@ while(ti != t.end()) {
}
ti++;
}
+*/
TEST_END;
diff --git a/server/src/macrotool/fieldnamescanner.h b/server/src/fieldnamescanner.h
index c766ba1..c766ba1 100644
--- a/server/src/macrotool/fieldnamescanner.h
+++ b/server/src/fieldnamescanner.h
diff --git a/server/src/httpd.cc b/server/src/httpd.cc
index f0abbb5..1d121b5 100644
--- a/server/src/httpd.cc
+++ b/server/src/httpd.cc
@@ -239,8 +239,8 @@ bool Httpd::is_running_ssl()
}
#ifdef TEST_HTTPD
-//deps:
-//cflags: $(HTTPD_CFLAGS)
+//deps: debug.cc log.cc
+//cflags: -I.. $(HTTPD_CFLAGS)
//libs: $(HTTPD_LIBS) -lcurl
#include "test.h"
@@ -314,6 +314,7 @@ public:
}
};
+#if 0
static size_t write_data(void *buffer, size_t size, size_t nmemb, void *userp)
{
std::string *str = (std::string*)userp;
@@ -324,6 +325,8 @@ static size_t write_data(void *buffer, size_t size, size_t nmemb, void *userp)
static std::string send(const std::string &msg, std::string name,
std::string value, CURLcode *ret)
{
+ std::string response;
+
CURL *c = curl_easy_init();
curl_easy_setopt(c, CURLOPT_URL, "localhost");
curl_easy_setopt(c, CURLOPT_PORT, PORT);
@@ -338,16 +341,15 @@ static std::string send(const std::string &msg, std::string name,
curl_easy_setopt(c, CURLOPT_POSTFIELDS, msg.data());
curl_easy_setopt(c, CURLOPT_POST, 1L);
- std::string response;
curl_easy_setopt(c, CURLOPT_WRITEFUNCTION, write_data);
curl_easy_setopt(c, CURLOPT_WRITEDATA, &response);
-
+
struct curl_slist *slist=NULL;
slist = curl_slist_append(slist, (name + ": " + value).c_str());
slist = curl_slist_append(slist, "Content-Type: application/octet-stream");
curl_easy_setopt(c, CURLOPT_HTTPHEADER, slist);
-
+
*ret = curl_easy_perform(c);
curl_slist_free_all(slist);
@@ -355,13 +357,14 @@ static std::string send(const std::string &msg, std::string name,
return response;
}
+#endif/*0*/
TEST_BEGIN;
TestHttpd httpd;
httpd.listen(PORT);
TEST_TRUE(httpd.is_running(), "Is the server running?");
-
+/*
std::string r;
CURLcode errornum;
@@ -374,7 +377,7 @@ msg.append(LONG_LEN, 0x00);
r = send(msg, "foo", "bar", &errornum);
TEST_EQUAL_INT(errornum, CURLE_OK, "Did perfom go well?");
TEST_EQUAL(r, msg, "Did we receive the correct answer?");
-
+*/
TEST_END;
#endif/*TEST_HTTPD*/
diff --git a/server/src/inotify.cc b/server/src/inotify.cc
index 43f67fd..cba781a 100644
--- a/server/src/inotify.cc
+++ b/server/src/inotify.cc
@@ -386,7 +386,7 @@ void INotify::clear()
}
#ifdef TEST_INOTIFY
-//deps: debug.cc
+//deps: debug.cc log.cc
//cflags: -I..
//libs:
#include "test.h"
@@ -399,7 +399,7 @@ void INotify::clear()
TEST_BEGIN;
-pracro_debug_parse("+all");
+debug_parse("+all");
INotify inotify;
diff --git a/server/src/journal.cc b/server/src/journal.cc
index 70dba2f..b6638fd 100644
--- a/server/src/journal.cc
+++ b/server/src/journal.cc
@@ -158,3 +158,18 @@ std::string Journal::patientID()
{
return _patientid;
}
+
+#ifdef TEST_JOURNAL
+//deps: debug.cc log.cc journal_uploadserver.cc journal_commit.cc
+//cflags: -I..
+//libs:
+#include <test.h>
+
+TEST_BEGIN;
+
+// TODO: Put some testcode here (see test.h for usable macros).
+TEST_TRUE(false, "No tests yet!");
+
+TEST_END;
+
+#endif/*TEST_JOURNAL*/
diff --git a/server/src/journal_commit.cc b/server/src/journal_commit.cc
index c81ff09..ce344c4 100644
--- a/server/src/journal_commit.cc
+++ b/server/src/journal_commit.cc
@@ -143,3 +143,18 @@ int journal_commit(const char *cpr, const char *user,
return 0;
}
+
+#ifdef TEST_JOURNAL_COMMIT
+//deps: debug.cc log.cc
+//cflags: -I..
+//libs:
+#include <test.h>
+
+TEST_BEGIN;
+
+// TODO: Put some testcode here (see test.h for usable macros).
+TEST_TRUE(false, "No tests yet!");
+
+TEST_END;
+
+#endif/*TEST_JOURNAL_COMMIT*/
diff --git a/server/src/journal_uploadserver.cc b/server/src/journal_uploadserver.cc
index 9988c81..5557d55 100644
--- a/server/src/journal_uploadserver.cc
+++ b/server/src/journal_uploadserver.cc
@@ -187,7 +187,7 @@ void JournalUploadServer::commit()
#ifdef TEST_JOURNAL_UPLOADSERVER
-//deps: debug.cc journal_commit.cc
+//deps: debug.cc log.cc journal.cc journal_commit.cc
//cflags: -I..
//libs:
#include "test.h"
diff --git a/server/src/luaresume.cc b/server/src/luaresume.cc
index a74f1f5..9202c27 100644
--- a/server/src/luaresume.cc
+++ b/server/src/luaresume.cc
@@ -140,3 +140,18 @@ void LUAResume::error(std::string message)
{
ERR(luaresume, "LUA ERROR: %s\n", message.c_str());
}
+
+#ifdef TEST_LUARESUME
+//deps: debug.cc log.cc luautil.cc
+//cflags: -I.. $(LUA_CFLAGS)
+//libs: $(LUA_LIBS)
+#include <test.h>
+
+TEST_BEGIN;
+
+// TODO: Put some testcode here (see test.h for usable macros).
+TEST_TRUE(false, "No tests yet!");
+
+TEST_END;
+
+#endif/*TEST_LUARESUME*/
diff --git a/server/src/macroheaderparser.cc b/server/src/macroheaderparser.cc
index 0ad18d4..c8d5fb2 100644
--- a/server/src/macroheaderparser.cc
+++ b/server/src/macroheaderparser.cc
@@ -144,6 +144,10 @@ Macro *MacroHeaderParser::getMacro()
}
#ifdef TEST_MACROHEADERPARSER
+//deps: debug.cc log.cc saxparser.cc exception.cc
+//cflags: -I.. $(EXPAT_CFLAGS)
+//libs: $(EXPAT_LIBS)
+#include <test.h>
#define XMLFILE "/tmp/test_macroheaderparser.xml"
@@ -154,6 +158,7 @@ Macro *MacroHeaderParser::getMacro()
#include <stdio.h>
#include <memory.h>
+/*
static char xml[] =
"<?xml version='1.0' encoding='UTF-8'?>\n"
"<macro name=\"testmacro\" version=\"1.0\">\n"
@@ -177,34 +182,39 @@ static char xml_fail[] =
" <someothertag/>\n"
"</macro>"
;
+*/
+
+TEST_BEGIN;
+
+// TODO: Put some testcode here (see test.h for usable macros).
+TEST_TRUE(false, "No tests yet!");
+
+/*
+FILE *fp = fopen(XMLFILE, "w");
+if(!fp) {
+ printf("Could not write to %s\n", XMLFILE);
+ return 1;
+}
+fprintf(fp, "%s", xml);
+fclose(fp);
-int main()
{
- FILE *fp = fopen(XMLFILE, "w");
- if(!fp) {
- printf("Could not write to %s\n", XMLFILE);
+ // Test parsing of correct macro xml data.
+ MacroHeaderParser parser(XMLFILE);
+ try {
+ parser.parse();
+ } catch(Exception &e) {
+ printf("Failed to parse: %s\n", e.what());
return 1;
}
- fprintf(fp, xml);
- fclose(fp);
-
- {
- // Test parsing of correct macro xml data.
- MacroHeaderParser parser(XMLFILE);
- try {
- parser.parse();
- } catch(Exception &e) {
- printf("Failed to parse: %s\n", e.what());
- return 1;
- }
- }
+}
fp = fopen(XMLFILE, "w");
if(!fp) {
printf("Could not write to %s\n", XMLFILE);
return 1;
}
- fprintf(fp, xml_nonmacro);
+fprintf(fp, "%s", xml_nonmacro);
fclose(fp);
// Test parsing of correct xml data, but not macro (should throw an exception).
@@ -225,7 +235,7 @@ int main()
printf("Could not write to %s\n", XMLFILE);
return 1;
}
- fprintf(fp, xml_fail);
+fprintf(fp, "%s", xml_fail);
fclose(fp);
// Test parsing of invalid xml data (should throw an exception).
@@ -242,8 +252,8 @@ int main()
yetonandon:
unlink(XMLFILE);
+*/
- return 0;
-}
+TEST_END;
#endif/*TEST_MACROHEADERPARSER*/
diff --git a/server/src/macrolist.cc b/server/src/macrolist.cc
index 2ce4d0c..fc54ce9 100644
--- a/server/src/macrolist.cc
+++ b/server/src/macrolist.cc
@@ -61,11 +61,19 @@ void MacroList::addFile(std::string file)
}
#ifdef TEST_MACROLIST
+//deps: entitylist.cc exception.cc saxparser.cc debug.cc log.cc inotify.cc versionstr.cc mutex.cc macroheaderparser.cc
+//cflags: -I.. $(EXPAT_CFLAGS) $(PTHREAD_CFLAGS)
+//libs: $(EXPAT_LIBS) $(PTHREAD_LIBS)
+#include <test.h>
#define MACRODIR "/home" // We assume this directory exists and does not contain any xml files!
-int main()
-{
+TEST_BEGIN;
+
+// TODO: Put some testcode here (see test.h for usable macros).
+TEST_TRUE(false, "No tests yet!");
+
+/*
// Test sorting
MacroList lst(MACRODIR);
@@ -122,8 +130,7 @@ int main()
}
return 1;
onandon:
-
- return 0;
-}
+*/
+TEST_END;
#endif/*TEST_MACROLIST*/
diff --git a/server/src/macroparser.cc b/server/src/macroparser.cc
index 2bd482e..bf6ff13 100644
--- a/server/src/macroparser.cc
+++ b/server/src/macroparser.cc
@@ -358,6 +358,10 @@ Macro *MacroParser::getMacro()
}
#ifdef TEST_MACROPARSER
+//deps: debug.cc log.cc saxparser.cc exception.cc
+//cflags: -I.. $(EXPAT_CFLAGS)
+//libs: $(EXPAT_LIBS)
+#include <test.h>
#define XMLFILE "/tmp/test_macroheaderparser.xml"
@@ -368,6 +372,7 @@ Macro *MacroParser::getMacro()
#include <stdio.h>
#include <memory.h>
+/*
static char xml[] =
"<?xml version='1.0' encoding='UTF-8'?>\n"
"<macro name=\"testmacro\" version=\"1.0\">\n"
@@ -394,15 +399,20 @@ static char xml_fail[] =
" <someothertag/>\n"
"</macro>"
;
+*/
-int main()
-{
+TEST_BEGIN;
+
+// TODO: Put some testcode here (see test.h for usable macros).
+TEST_TRUE(false, "No tests yet!");
+
+/*
FILE *fp = fopen(XMLFILE, "w");
if(!fp) {
printf("Could not write to %s\n", XMLFILE);
return 1;
}
- fprintf(fp, xml);
+fprintf(fp, "%s", xml);
fclose(fp);
{
@@ -421,7 +431,7 @@ int main()
printf("Could not write to %s\n", XMLFILE);
return 1;
}
- fprintf(fp, xml_nonmacro);
+fprintf(fp, "%s", xml_nonmacro);
fclose(fp);
// Test parsing of correct xml data, but not macro (should throw an exception).
@@ -442,7 +452,7 @@ int main()
printf("Could not write to %s\n", XMLFILE);
return 1;
}
- fprintf(fp, xml_fail);
+fprintf(fp, "%s", xml_fail);
fclose(fp);
// Test parsing of invalid xml data (should throw an exception).
@@ -459,8 +469,8 @@ int main()
yetonandon:
unlink(XMLFILE);
+*/
- return 0;
-}
+TEST_END;
#endif/*TEST_MACROPARSER*/
diff --git a/server/src/macrotool/Makefile.am b/server/src/macrotool/Makefile.am
index edd8f4a..f35dae9 100644
--- a/server/src/macrotool/Makefile.am
+++ b/server/src/macrotool/Makefile.am
@@ -12,16 +12,15 @@ macrotool_SOURCES = \
dump.cc \
export.cc \
fieldnames.cc \
- fieldnamescanner.cc \
filehandler.cc \
sunlock.cc \
- util.cc \
../debug.cc \
../configuration.cc \
../configurationparser.cc \
../database.cc \
../entitylist.cc \
../exception.cc \
+ ../fieldnamescanner.cc \
../inotify.cc \
../log.cc \
../macroheaderparser.cc \
@@ -33,16 +32,15 @@ macrotool_SOURCES = \
../pracrodaotest.cc \
../saxparser.cc \
../templateparser.cc \
+ ../util.cc \
../versionstr.cc
EXTRA_DIST = \
dump.h \
export.h \
fieldnames.h \
- fieldnamescanner.h \
filehandler.h \
- sunlock.h \
- util.h
+ sunlock.h
################
# Test Section #
diff --git a/server/src/pracrodaopgsql.cc b/server/src/pracrodaopgsql.cc
index b71f8e7..b8fb505 100644
--- a/server/src/pracrodaopgsql.cc
+++ b/server/src/pracrodaopgsql.cc
@@ -534,13 +534,21 @@ void PracroDAOPgsql::setActive(std::string sessionid, bool a)
#endif/*WITHOUT_DB*/
#ifdef TEST_PRACRODAOPGSQL
+//deps: debug.cc log.cc configuration.cc exception.cc pracrodao.cc
+//cflags: -I.. $(PQXX_CXXFLAGS)
+//libs: $(PQXX_LIBS)
+#include <test.h>
#include "configuration.h"
#include "exception.h"
-int main()
-{
+TEST_BEGIN;
+
+// TODO: Put some testcode here (see test.h for usable macros).
+TEST_TRUE(false, "No tests yet!");
+
#ifndef WITHOUT_DB
+/*
try {
PracroDAOPgsql db(Conf::database_addr, "", Conf::database_user,
Conf::database_passwd, "");
@@ -548,7 +556,9 @@ int main()
printf("ERROR: %s\n", e.what());
return 1;
}
+*/
#endif/*WITHOUT_DB*/
- return 0;
-}
+
+TEST_END;
+
#endif/*TEST_PRACRODAOPGSQL*/
diff --git a/server/src/pracrodaotest.cc b/server/src/pracrodaotest.cc
index ec9c293..51ee24f 100644
--- a/server/src/pracrodaotest.cc
+++ b/server/src/pracrodaotest.cc
@@ -190,86 +190,145 @@ unsigned PracroDAOTest::nrOfCommits(std::string sessionid,
void PracroDAOTest::addFieldname(std::string name, std::string description)
{
- // TODO
-
- /*
- std::stringstream timestamp; timestamp << time(NULL);
- std::string ts;
- try {
- pqxx::work W(*conn);
- ts = "INSERT INTO fieldnames (name, description, \"timestamp\") VALUES ("
- " '" + W.esc(name) + "', "
- " '" + W.esc(description) + "', "
- " '" + W.esc(timestamp.str()) + "' "
- ")"
- ;
- DEBUG(sql, "Query: %s\n", ts.c_str());
- pqxx::result R = W.exec(ts);
- W.commit();
- } catch (std::exception &e) {
- ERR_LOG(db, "Query failed: %s: %s\n", e.what(), ts.c_str());
- }
- */
+ dbrow_t fieldname;
+ fieldname["name"] = name;
+ fieldname["description"] = description;
+ char buf[256];
+ sprintf(buf, "%lu", time(NULL));
+ fieldname["timestamp"] = buf;
+ data.fieldnames.push_back(fieldname);
}
void PracroDAOTest::delFieldname(std::string name)
{
- // TODO
-
- /*
- std::string ts;
- try {
- pqxx::work W(*conn);
- ts = "DELETE FROM fieldnames WHERE name="
- "'" + W.esc(name) + "' ";
- DEBUG(sql, "Query: %s\n", ts.c_str());
- pqxx::result R = W.exec(ts);
- W.commit();
- } catch (std::exception &e) {
- ERR_LOG(db, "Query failed: %s: %s\n", e.what(), ts.c_str());
+ dbtable_t::iterator i = data.fieldnames.begin();
+ while(i != data.fieldnames.end()) {
+ dbrow_t &row = *i;
+ if(row["name"] == name) {
+ data.fieldnames.erase(i);
+ return;
+ }
+ i++;
}
- */
}
std::vector<Fieldname> PracroDAOTest::getFieldnames()
{
- // TODO
-
std::vector<Fieldname> fieldnames;
- /*
- std::string query;
- try {
- pqxx::work W(*conn);
- query = "SELECT * FROM fieldnames";
- DEBUG(sql, "Query: %s\n", query.c_str());
- pqxx::result R = W.exec(query);
- pqxx::result::const_iterator ri = R.begin();
- while(ri != R.end()) {
- Fieldname f;
- f.name = (*ri)[0].c_str();
- f.description = (*ri)[1].c_str();
- f.timestamp = atol((*ri)[2].c_str());
- fieldnames.push_back(f);
- ri++;
- }
- } catch (std::exception &e) {
- ERR_LOG(db, "Query failed: %s: %s\n", e.what(), query.c_str());
+
+ dbtable_t::iterator i = data.fieldnames.begin();
+ while(i != data.fieldnames.end()) {
+ dbrow_t &row = *i;
+ Fieldname fn;
+ fn.name = row["name"];
+ fn.description = row["description"];
+ fn.timestamp = atoll(row["timestamp"].c_str());
+ fieldnames.push_back(fn);
+ i++;
}
- */
+
return fieldnames;
}
+bool PracroDAOTest::active(std::string sessionid)
+{
+ dbtable_t::iterator i = data.commits.begin();
+ while(i != data.commits.end()) {
+ dbrow_t &commit = *i;
+ if(commit["sessionid"] == sessionid) {
+ return commit["status"] != "idle";
+ }
+ i++;
+ }
+ return false;
+}
+void PracroDAOTest::setActive(std::string sessionid, bool active)
+{
+ dbtable_t::iterator i = data.commits.begin();
+ while(i != data.commits.end()) {
+ dbrow_t &commit = *i;
+ if(commit["sessionid"] == sessionid && commit["status"] != "committed") {
+ commit["status"] = active?"active":"idle";
+ }
+ i++;
+ }
+}
#ifdef TEST_PRACRODAOTEST
+//deps: debug.cc log.cc configuration.cc exception.cc pracrodao.cc
+//cflags: -I..
+//libs:
+#include <test.h>
#include <time.h>
#define PATIENTID "1234567890"
+#define MACRO "testmacro"
-int main()
+static bool vectorFind(std::vector<Fieldname> fs,
+ std::string name, std::string desc)
{
+ std::vector<Fieldname>::iterator i = fs.begin();
+ while(i != fs.end()) {
+ Fieldname &fn = *i;
+ if(fn.name == name &&
+ (desc == "" || fn.description == desc)) return true;
+ i++;
+ }
+ return false;
+}
+
+TEST_BEGIN;
+
+Data data;
+PracroDAOTest db(data);
+
+db.addFieldname("field1", "desc1");
+db.addFieldname("field2", "desc2");
+db.addFieldname("field3", "desc3");
+db.delFieldname("field3");
+
+std::vector<Fieldname> fs = db.getFieldnames();
+TEST_EQUAL_INT(fs.size(), 2, "Test fieldname size.");
+TEST_TRUE(vectorFind(fs, "field1", "desc1"), "Test fieldname 'field1'.");
+TEST_TRUE(vectorFind(fs, "field2", "desc2"), "Test fieldname 'field2'.");
+TEST_FALSE(vectorFind(fs, "field3", ""), "Test fieldname 'field3'.");
+
+std::string sid1 = db.newSessionId();
+std::string sid2 = db.newSessionId();
+
+TEST_NOTEQUAL_STR(sid1, sid2, "Do not produce the same uid each time.");
+
+Transaction transaction;
+transaction.cpr = PATIENTID;
+transaction.user = "me";
+
+Commit commit;
+commit.fields["field1"] = "hello";
+commit.fields["field2"] = "world";
+commit.templ = "tester";
+
+Macro macro;
+macro.attributes["version"] = "1.0";
+macro.attributes["name"] = MACRO;
+
+time_t now = time(NULL);
+
+db.commitTransaction(sid1, transaction, commit, macro, now);
+
+TEST_EQUAL_INT(db.nrOfCommits(sid1, PATIENTID, MACRO, now), 1, "How many?");
+
+Fieldnames fieldnames;
+fieldnames.push_back("field1");
+fieldnames.push_back("field_nop");
+Values vals = db.getLatestValues(sid1, PATIENTID, &macro, fieldnames, 0);
+TEST_EQUAL_INT(vals.size(), 1, "One value");
+
+TEST_NOTEQUAL(vals.find("field1"), vals.end(), "find value");
+
+/*
time_t now = time(NULL);
Data data;
@@ -345,8 +404,7 @@ int main()
// This value was not committed, since it wasn't in the fieldnames table.
if(values.find("field4") != values.end()) return 1;
-
- return 0;
-}
+*/
+TEST_END;
#endif/*TEST_PRACRODAOTEST*/
diff --git a/server/src/pracrodaotest.h b/server/src/pracrodaotest.h
index 1e1a8c0..981b6d5 100644
--- a/server/src/pracrodaotest.h
+++ b/server/src/pracrodaotest.h
@@ -71,6 +71,7 @@ public:
dbtable_t transactions;
dbtable_t fieldnames;
dbtable_t fields;
+ dbtable_t commits;
};
class PracroDAOTest : public PracroDAO
@@ -104,8 +105,8 @@ public:
void discard(std::string sessionid) {}
std::string serialise() { return ""; }
void restore(const std::string &data) {}
- bool active(std::string sessionid) {return false;}
- void setActive(std::string sessionid, bool active) {}
+ bool active(std::string sessionid);
+ void setActive(std::string sessionid, bool active);
private:
Data data;
diff --git a/server/src/queryhandlerpentominos.cc b/server/src/queryhandlerpentominos.cc
index 41573e5..8000721 100644
--- a/server/src/queryhandlerpentominos.cc
+++ b/server/src/queryhandlerpentominos.cc
@@ -237,9 +237,20 @@ QueryResult QueryHandlerPentominos::exec(Query &query)
}
#ifdef TEST_QUERYHANDLERPENTOMINOS
+//deps: artefact.cc configuration.cc debug.cc log.cc
+//cflags: -I.. $(ATF_CFLAGS)
+//libs: $(ATF_LIBS)
+#include <test.h>
+
+#include "tcpsocket.h"
+
+TEST_BEGIN;
+
+// TODO: Put some testcode here (see test.h for usable macros).
+TEST_TRUE(false, "No tests yet!");
+
+#if 0
-int main()
-{
#ifdef WITHOUT_PENTOMINOS
printf("The project need to be configured for use of Pentominos in order to run this test.\n");
return 1;
@@ -261,8 +272,8 @@ int main()
q1.attributes["device_type"] = "lensmeter";
QueryResult res = qh.exec(q1);
res.print();
+#endif
- return 0;
-}
+TEST_END;
#endif/*TEST_QUERYHANDLERPENTOMINOS*/
diff --git a/server/src/queryhandlerpracro.cc b/server/src/queryhandlerpracro.cc
index 85dcdf9..d617e69 100644
--- a/server/src/queryhandlerpracro.cc
+++ b/server/src/queryhandlerpracro.cc
@@ -74,13 +74,21 @@ QueryResult QueryHandlerPracro::exec(Query &query)
}
#ifdef TEST_QUERYHANDLERPRACRO
+//deps: database.cc mutex.cc debug.cc log.cc pracrodao.cc pracrodaotest.cc pracrodaopgsql.cc configuration.cc
+//cflags: -I.. $(PQXX_CXXFLAGS)
+//libs: $(PQXX_LIBS)
+#include <test.h>
#include <time.h>
#define PATIENTID "1234567890"
-int main()
-{
+TEST_BEGIN;
+
+// TODO: Put some testcode here (see test.h for usable macros).
+TEST_TRUE(false, "No tests yet!");
+
+/*
time_t now = time(NULL);
Database db("testdb", "", "", "", "", "");
Macro macro;
@@ -122,8 +130,7 @@ int main()
if(res.timestamp != now - 100) return 1;
if(res.source != "pracrodb") return 1;
if(res.values["myfield"] != "myval") return 1;
-
- return 0;
-}
+*/
+TEST_END;
#endif/*TEST_QUERYHANDLERPRACRO*/
diff --git a/server/src/queryparser.cc b/server/src/queryparser.cc
index d8f36ee..3d228f6 100644
--- a/server/src/queryparser.cc
+++ b/server/src/queryparser.cc
@@ -88,9 +88,13 @@ void QueryParser::parseError(const char *buf, size_t len, std::string error, int
}
#ifdef TEST_QUERYPARSER
+//deps: saxparser.cc debug.cc log.cc utf8.cc exception.cc
+//cflags: -I.. $(EXPAT_CFLAGS)
+//libs: $(EXPAT_LIBS)
+#include <test.h>
#include <string.h>
-
+/*
static char xml[] =
"<?xml version='1.0' encoding='UTF-8'?>\n"
"<results>\n"
@@ -142,9 +146,13 @@ static std::string loadresultstring(QueryResult &res, std::string group = "")
return s;
}
+*/
+TEST_BEGIN;
-int main()
-{
+// TODO: Put some testcode here (see test.h for usable macros).
+TEST_TRUE(false, "No tests yet!");
+
+/*
// Parse something
{
QueryParser parser;
@@ -163,8 +171,7 @@ int main()
}
return 1;
weitergehen:
-
- return 0;
-}
+*/
+TEST_END;
#endif/*TEST_QUERYPARSER*/
diff --git a/server/src/resumeparser.cc b/server/src/resumeparser.cc
index c80c2f0..1c5335a 100644
--- a/server/src/resumeparser.cc
+++ b/server/src/resumeparser.cc
@@ -64,3 +64,18 @@ std::string resume_parser(Macro &macro, Commit &commit)
return luaresume.run(code);
}
+
+#ifdef TEST_RESUMEPARSER
+//deps: luaresume.cc configuration.cc debug.cc log.cc luautil.cc
+//cflags: -I.. $(LUA_CFLAGS)
+//libs: $(LUA_LIBS)
+#include <test.h>
+
+TEST_BEGIN;
+
+// TODO: Put some testcode here (see test.h for usable macros).
+TEST_TRUE(false, "No tests yet!");
+
+TEST_END;
+
+#endif/*TEST_RESUMEPARSER*/
diff --git a/server/src/semaphore.cc b/server/src/semaphore.cc
index e5f1f31..51a20e5 100644
--- a/server/src/semaphore.cc
+++ b/server/src/semaphore.cc
@@ -45,3 +45,18 @@ void Semaphore::wait()
{
sem_wait(&semaphore);
}
+
+#ifdef TEST_SEMAPHORE
+//deps:
+//cflags: -I.. $(PTHREAD_CFLAGS)
+//libs: $(PTHREAD_LIBS)
+#include <test.h>
+
+TEST_BEGIN;
+
+// TODO: Put some testcode here (see test.h for usable macros).
+TEST_TRUE(false, "No tests yet!");
+
+TEST_END;
+
+#endif/*TEST_SEMAPHORE*/
diff --git a/server/src/server.cc b/server/src/server.cc
index d9daf3a..9046594 100644
--- a/server/src/server.cc
+++ b/server/src/server.cc
@@ -129,6 +129,10 @@ void server()
}
#ifdef TEST_SERVER
+//deps: httpd.cc session.cc configuration.cc journal.cc journal_uploadserver.cc journal_commit.cc mutex.cc debug.cc sessionserialiser.cc sessionparser.cc saxparser.cc environment.cc semaphore.cc artefact.cc xml_encode_decode.cc database.cc pracrodaopgsql.cc pracrodaotest.cc pracrodao.cc entitylist.cc macrolist.cc templatelist.cc macroheaderparser.cc templateheaderparser.cc versionstr.cc exception.cc log.cc inotify.cc client_connection.cc admin_connection.cc admin_rc.cc admin_export.cc transactionparser.cc transactionhandler.cc templateparser.cc macroparser.cc queryhandlerpracro.cc luaquerymapper.cc queryhandlerpentominos.cc resumeparser.cc luaresume.cc luautil.cc widgetgenerator.cc widgetvalue.cc
+//cflags: -I.. -DWITHOUT_ARTEFACT -DWITHOUT_DB $(EXPAT_CFLAGS) $(PTHREAD_CFLAGS) $(HTTPD_CFLAGS) $(LUA_CFLAGS)
+//libs: $(EXPAT_LIBS) $(PTHREAD_LIBS) $(HTTPD_LIBS) $(LUA_LIBS)
+#include <test.h>
#include <sys/types.h>
#include <signal.h>
@@ -141,8 +145,12 @@ char request[] =
" <request macro=\"example\" template=\"example\"/>\n"
"</pracro>\n";
-int main()
-{
+TEST_BEGIN;
+
+// TODO: Put some testcode here (see test.h for usable macros).
+TEST_TRUE(false, "No tests yet!");
+
+/*
Conf::xml_basedir = "../xml/";
// Make sure wo don't interrupt an already running server.
Conf::server_port = 32100;
@@ -187,8 +195,7 @@ int main()
kill(pid, SIGKILL); // Kill the server again.
return 0;
}
-
- return 1;
-}
+*/
+TEST_END;
#endif/*TEST_SERVER*/
diff --git a/server/src/session.cc b/server/src/session.cc
index fe05ee5..6880e73 100644
--- a/server/src/session.cc
+++ b/server/src/session.cc
@@ -298,14 +298,19 @@ SessionAutolock::~SessionAutolock()
#ifdef TEST_SESSION
//deps: configuration.cc journal.cc journal_uploadserver.cc journal_commit.cc mutex.cc debug.cc sessionserialiser.cc sessionparser.cc saxparser.cc environment.cc semaphore.cc artefact.cc xml_encode_decode.cc database.cc pracrodaopgsql.cc pracrodaotest.cc pracrodao.cc entitylist.cc macrolist.cc templatelist.cc macroheaderparser.cc templateheaderparser.cc versionstr.cc exception.cc log.cc inotify.cc
-//cflags: -I.. $(PTHREAD_CFLAGS) $(EXPAT_CFLAGS) $(ATF_CFLAGS) $(PQXX_CXXFLAGS)
-//libs: $(PTHREAD_LIBS) $(EXPAT_LIBS) $(ATF_LIBS) $(PQXX_LIBS)
+//cflags: -I.. $(PTHREAD_CFLAGS) $(EXPAT_CFLAGS) -DWITHOUT_ARTEFACT -DWITHOUT_DB
+//libs: $(PTHREAD_LIBS) $(EXPAT_LIBS)
#include <test.h>
#define PID "1505050505"
#define TMPL "test"
TEST_BEGIN;
+
+Conf::database_backend = "testdb";
+Conf::database_poolsize = 1;
+Conf::xml_basedir = "/tmp";
+
Environment env;
Conf::session_path = "/tmp";
@@ -325,6 +330,30 @@ TEST_NOTEQUAL_STR(s1->id(), s3->id(), "Testing if IDs are unique.");
TEST_EQUAL_INT(env.sessions.size(), 1, "Testing if size is 1.");
+std::string id = s3->id();
+env.sessions.deleteSession(id);
+Session *s4 = env.sessions.session(id);
+TEST_EQUAL(s4, NULL, "No session should be returned.");
+
+TEST_EQUAL_INT(env.sessions.size(), 0, "Testing if size is 0.");
+
+Session *s5 = env.sessions.newSession(PID, TMPL);
+TEST_NOTEQUAL(s5, NULL, "A new session was created.");
+
+s5->isreadonly = false;
+
+env.sessions.store();
+
+Session *s6 = env.sessions.session(id);
+TEST_EQUAL_STR(s6->id(), s5->id(), "Did we get the stored session?");
+
+s6->isreadonly = false;
+
+env.sessions.store();
+
+Session *s7 = env.sessions.newSession(PID, TMPL);
+TEST_EQUAL_STR(s7->id(), s5->id(), "Did we get the stored session?");
+
/*
std::string sessionid = s1->id();
SessionSerialiser ser(&env, Conf::session_path);
diff --git a/server/src/sessionparser.cc b/server/src/sessionparser.cc
index 21bc95f..856ce36 100644
--- a/server/src/sessionparser.cc
+++ b/server/src/sessionparser.cc
@@ -116,14 +116,15 @@ void SessionParser::parseError(const char *buf, size_t len,
}
#ifdef TEST_SESSIONPARSER
-//deps:
-//cflags:
-//libs:
+//deps: saxparser.cc debug.cc log.cc
+//cflags: -I.. $(EXPAT_CFLAGS)
+//libs: $(EXPAT_LIBS)
#include "test.h"
TEST_BEGIN;
-#error "Put some testcode here (see test.h for usable macros)."
+// TODO: Put some testcode here (see test.h for usable macros).
+TEST_TRUE(false, "No tests yet!");
TEST_END;
diff --git a/server/src/sessionserialiser.cc b/server/src/sessionserialiser.cc
index b20e4c4..99f880b 100644
--- a/server/src/sessionserialiser.cc
+++ b/server/src/sessionserialiser.cc
@@ -242,8 +242,8 @@ Session *SessionSerialiser::findFromTupple(const std::string &patientid,
}
#ifdef TEST_SESSIONSERIALISER
-//deps: session.cc journal.cc debug.cc configuration.cc mutex.cc journal_commit.cc sessionparser.cc saxparser.cc xml_encode_decode.cc database.cc pracrodaopgsql.cc pracrodaotest.cc pracrodao.cc journal_uploadserver.cc log.cc
-//cflags: -I.. $(PTHREAD_CFLAGS) $(EXPAT_CFLAGS) $(PQXX_CFLAGS)
+//deps: session.cc journal.cc debug.cc configuration.cc mutex.cc journal_commit.cc sessionparser.cc saxparser.cc xml_encode_decode.cc database.cc pracrodaopgsql.cc pracrodaotest.cc pracrodao.cc journal_uploadserver.cc log.cc environment.cc semaphore.cc artefact.cc macrolist.cc templatelist.cc entitylist.cc inotify.cc versionstr.cc exception.cc macroheaderparser.cc templateheaderparser.cc
+//cflags: -I.. $(PTHREAD_CFLAGS) $(EXPAT_CFLAGS) $(PQXX_CFLAGS) -DWITHOUT_ARTEFACT
//libs: $(PTHREAD_LIBS) $(EXPAT_LIBS) $(PQXX_LIBS)
#include "test.h"
@@ -260,6 +260,8 @@ std::string xml;
debug_parse("+all");
+Environment env;
+
{
FILE *fp = fopen("/tmp/"PRE".42", "w");
fclose(fp);
@@ -276,12 +278,12 @@ debug_parse("+all");
}
{
- Session session(SID, PID, TID);
+ Session session(&env, SID, PID, TID);
Journal *j = session.journal();
j->addEntry("some text", "macro1", 0);
j->addEntry("some more text", "macro2", 2);
j->addEntry("yet some more text", "macro3", 1);
- SessionSerialiser s(SPATH);
+ SessionSerialiser s(&env, SPATH);
xml = s.saveStr(&session);
s.loadStr(xml);
std::string xml2 = s.saveStr(&session);
@@ -289,12 +291,12 @@ debug_parse("+all");
}
{
- Session session(SID, PID, TID);
+ Session session(&env, SID, PID, TID);
Journal *j = session.journal();
j->addEntry("some text", "macro1", 0);
j->addEntry("some more text", "macro2", 2);
j->addEntry("yet some more text", "macro3", 1);
- SessionSerialiser s(SPATH);
+ SessionSerialiser s(&env, SPATH);
xml = s.saveStr(&session);
}
/*
@@ -307,12 +309,12 @@ debug_parse("+all");
}
*/
{
- Session session(SID, PID, TID);
+ Session session(&env, SID, PID, TID);
Journal *j = session.journal();
j->addEntry("some text", "macro1", 0);
j->addEntry("some more text", "macro2", 2);
j->addEntry("yet some more text", "macro3", 1);
- SessionSerialiser s(SPATH);
+ SessionSerialiser s(&env, SPATH);
s.save(&session);
}
/*
@@ -326,8 +328,8 @@ debug_parse("+all");
*/
{
- Session session(SID, PID, TID);
- SessionSerialiser s(SPATH);
+ Session session(&env, SID, PID, TID);
+ SessionSerialiser s(&env, SPATH);
s.save(&session);
Session *s1 = s.findFromTupple(PID, TID);
TEST_NOTEQUAL(s1, NULL, "Found it?");
diff --git a/server/src/tcpsocket.cc b/server/src/tcpsocket.cc
index 70722ed..b54b581 100644
--- a/server/src/tcpsocket.cc
+++ b/server/src/tcpsocket.cc
@@ -367,9 +367,19 @@ std::string TCPSocket::dstaddr()
}
#ifdef TEST_TCPSOCKET
+//deps: exception.cc debug.cc log.cc
+//cflags: -I..
+//libs:
+#include <test.h>
-int main()
-{
+#define PORT 12346
+
+TEST_BEGIN;
+
+// TODO: Put some testcode here (see test.h for usable macros).
+TEST_TRUE(false, "No tests yet!");
+
+/*
char buf[32];
switch(fork()) {
@@ -381,7 +391,7 @@ int main()
try {
TCPSocket client;
sleep(1); // We need to wait for the listen socket to be created.
- client.connect("localhost", 12345);
+ client.connect("localhost", PORT);
sprintf(buf, "hello");
client.write(buf, sizeof(buf));
printf("Sent: [%s]\n", buf);
@@ -394,7 +404,7 @@ int main()
default: // parent
try {
TCPSocket listen_sock;
- listen_sock.listen(12345);
+ listen_sock.listen(PORT);
TCPSocket *sock = listen_sock.accept();
sock->read(buf, sizeof(buf));
printf("Got: [%s]\n", buf);
@@ -406,8 +416,8 @@ int main()
}
break;
}
+*/
- return 0;
-}
+TEST_END;
#endif/*TEST_TCPSOCKET*/
diff --git a/server/src/templateheaderparser.cc b/server/src/templateheaderparser.cc
index 2cb3e84..e549035 100644
--- a/server/src/templateheaderparser.cc
+++ b/server/src/templateheaderparser.cc
@@ -143,6 +143,10 @@ Template *TemplateHeaderParser::getTemplate()
}
#ifdef TEST_TEMPLATEHEADERPARSER
+//deps: saxparser.cc exception.cc debug.cc log.cc
+//cflags: -I.. $(EXPAT_CFLAGS)
+//libs: $(EXPAT_LIBS)
+#include <test.h>
#define XMLFILE "/tmp/test_templateheaderparser.xml"
@@ -152,7 +156,7 @@ Template *TemplateHeaderParser::getTemplate()
#include <string.h>
#include <stdio.h>
#include <memory.h>
-
+/*
static char xml[] =
"<?xml version='1.0' encoding='UTF-8'?>\n"
"<template name=\"testtemplate\" version=\"1.0\">\n"
@@ -176,15 +180,19 @@ static char xml_fail[] =
" <someothertag/>\n"
"</template>"
;
+*/
+TEST_BEGIN;
-int main()
-{
+// TODO: Put some testcode here (see test.h for usable macros).
+TEST_TRUE(false, "No tests yet!");
+
+/*
FILE *fp = fopen(XMLFILE, "w");
if(!fp) {
printf("Could not write to %s\n", XMLFILE);
return 1;
}
- fprintf(fp, xml);
+fprintf(fp, "%s", xml);
fclose(fp);
{
@@ -203,7 +211,7 @@ int main()
printf("Could not write to %s\n", XMLFILE);
return 1;
}
- fprintf(fp, xml_nontemplate);
+fprintf(fp, "%s", xml_nontemplate);
fclose(fp);
// Test parsing of correct xml data, but not template (should throw an exception).
@@ -224,7 +232,7 @@ int main()
printf("Could not write to %s\n", XMLFILE);
return 1;
}
- fprintf(fp, xml_fail);
+fprintf(fp, "%s", xml_fail);
fclose(fp);
// Test parsing of invalid xml data (should throw an exception).
@@ -241,8 +249,7 @@ int main()
yetonandon:
unlink(XMLFILE);
-
- return 0;
-}
+*/
+TEST_END;
#endif/*TEST_TEMPLATEHEADERPARSER*/
diff --git a/server/src/templatelist.cc b/server/src/templatelist.cc
index c7a951c..7d19bfb 100644
--- a/server/src/templatelist.cc
+++ b/server/src/templatelist.cc
@@ -58,11 +58,19 @@ void TemplateList::addFile(std::string file)
}
#ifdef TEST_TEMPLATELIST
+//deps: entitylist.cc versionstr.cc exception.cc inotify.cc mutex.cc debug.cc log.cc templateheaderparser.cc saxparser.cc
+//cflags: -I.. $(EXPAT_CFLAGS) $(PTHREAD_CFLAGS)
+//libs: $(EXPAT_LIBS) $(PTHREAD_LIBS)
+#include <test.h>
#define TEMPLATEDIR "/home" // We assume this directory exists and does not contain any xml files!
-int main()
-{
+TEST_BEGIN;
+
+// TODO: Put some testcode here (see test.h for usable macros).
+TEST_TRUE(false, "No tests yet!");
+
+/*
// Test sorting
TemplateList lst(TEMPLATEDIR);
@@ -119,8 +127,7 @@ int main()
}
return 1;
onandon:
-
- return 0;
-}
+ */
+TEST_END;
#endif/*TEST_TEMPLATELIST*/
diff --git a/server/src/templateparser.cc b/server/src/templateparser.cc
index b34f280..20270c6 100644
--- a/server/src/templateparser.cc
+++ b/server/src/templateparser.cc
@@ -161,6 +161,10 @@ Template *TemplateParser::getTemplate()
}
#ifdef TEST_TEMPLATEPARSER
+//deps: saxparser.cc debug.cc log.cc exception.cc
+//cflags: -I.. $(EXPAT_CFLAGS)
+//libs: $(EXPAT_LIBS)
+#include <test.h>
#define XMLFILE "/tmp/test_templateparser.xml"
@@ -170,7 +174,7 @@ Template *TemplateParser::getTemplate()
#include <string.h>
#include <stdio.h>
#include <memory.h>
-
+/*
static char xml[] =
"<?xml version='1.0' encoding='UTF-8'?>\n"
"<template name=\"testtemplate\" version=\"1.0\">\n"
@@ -194,15 +198,20 @@ static char xml_fail[] =
" <someothertag/>\n"
"</template>"
;
+*/
-int main()
-{
+TEST_BEGIN;
+
+// TODO: Put some testcode here (see test.h for usable macros).
+TEST_TRUE(false, "No tests yet!");
+
+/*
FILE *fp = fopen(XMLFILE, "w");
if(!fp) {
printf("Could not write to %s\n", XMLFILE);
return 1;
}
- fprintf(fp, xml);
+fprintf(fp, "%s", xml);
fclose(fp);
{
@@ -221,7 +230,7 @@ int main()
printf("Could not write to %s\n", XMLFILE);
return 1;
}
- fprintf(fp, xml_nontemplate);
+fprintf(fp, "%s", xml_nontemplate);
fclose(fp);
// Test parsing of correct xml data, but not template (should throw an exception).
@@ -242,7 +251,7 @@ int main()
printf("Could not write to %s\n", XMLFILE);
return 1;
}
- fprintf(fp, xml_fail);
+fprintf(fp, "%s", xml_fail);
fclose(fp);
// Test parsing of invalid xml data (should throw an exception).
@@ -259,8 +268,7 @@ int main()
yetonandon:
unlink(XMLFILE);
-
- return 0;
-}
+*/
+TEST_END;
#endif/*TEST_TEMPLATEPARSER*/
diff --git a/server/src/transactionhandler.cc b/server/src/transactionhandler.cc
index 32d37eb..0ebf782 100644
--- a/server/src/transactionhandler.cc
+++ b/server/src/transactionhandler.cc
@@ -318,14 +318,15 @@ std::string handleTransaction(Transaction &transaction, Environment &env,
}
#ifdef TEST_TRANSACTIONHANDLER
-//deps:
-//cflags: -I..
-//libs:
+//deps: session.cc configuration.cc journal.cc journal_uploadserver.cc journal_commit.cc mutex.cc debug.cc sessionserialiser.cc sessionparser.cc saxparser.cc environment.cc semaphore.cc artefact.cc xml_encode_decode.cc database.cc pracrodaopgsql.cc pracrodaotest.cc pracrodao.cc entitylist.cc macrolist.cc templatelist.cc macroheaderparser.cc templateheaderparser.cc versionstr.cc exception.cc log.cc inotify.cc client_connection.cc admin_connection.cc admin_rc.cc admin_export.cc transactionparser.cc templateparser.cc macroparser.cc queryhandlerpracro.cc luaquerymapper.cc queryhandlerpentominos.cc resumeparser.cc luaresume.cc luautil.cc widgetgenerator.cc widgetvalue.cc
+//cflags: -I.. -DWITHOUT_ARTEFACT -DWITHOUT_DB $(EXPAT_CFLAGS) $(PTHREAD_CFLAGS) $(HTTPD_CFLAGS) $(LUA_CFLAGS)
+//libs: $(EXPAT_LIBS) $(PTHREAD_LIBS) $(HTTPD_LIBS) $(LUA_LIBS)
#include "test.h"
TEST_BEGIN;
-#error TODO: Put some testcode here (see test.h for usable macros).
+// TODO: Put some testcode here (see test.h for usable macros).
+TEST_TRUE(false, "No tests yet!");
TEST_END;
diff --git a/server/src/utf8.cc b/server/src/utf8.cc
index 2909a94..f43d858 100644
--- a/server/src/utf8.cc
+++ b/server/src/utf8.cc
@@ -344,9 +344,13 @@ std::string UTF8::decode(std::string s)
}
#ifdef TEST_UTF8
+//deps: exception.cc log.cc
+//cflags: -I..
+//libs:
+#include <test.h>
+
+TEST_BEGIN;
-int main()
-{
try {
UTF8 utf8("ISO-8859-1");
@@ -363,12 +367,11 @@ int main()
if(a == c) return 0;
else return 1;
- } catch( Pentominos::Exception &e ) {
+ } catch(Exception &e) {
fprintf(stderr, "%s\n", e.what());
return 1;
}
- return 0;
-}
+TEST_END;
#endif//TEST_UTF8
diff --git a/server/src/macrotool/util.cc b/server/src/util.cc
index 8be5435..4c049bd 100644
--- a/server/src/macrotool/util.cc
+++ b/server/src/util.cc
@@ -75,3 +75,18 @@ void printcolumn(std::string text, size_t width)
for(size_t i = text.length(); i < width; i++) printf(" ");
printf("\t");
}
+
+#ifdef TEST_UTIL
+//deps: configuration.cc debug.cc log.cc
+//cflags: -I..
+//libs:
+#include <test.h>
+
+TEST_BEGIN;
+
+// TODO: Put some testcode here (see test.h for usable macros).
+TEST_TRUE(false, "No tests yet!");
+
+TEST_END;
+
+#endif/*TEST_UTIL*/
diff --git a/server/src/macrotool/util.h b/server/src/util.h
index 2e41f6b..2e41f6b 100644
--- a/server/src/macrotool/util.h
+++ b/server/src/util.h
diff --git a/server/src/versionstr.cc b/server/src/versionstr.cc
index c4f82c9..b906bdd 100644
--- a/server/src/versionstr.cc
+++ b/server/src/versionstr.cc
@@ -118,12 +118,18 @@ size_t VersionStr::patch() const
}
#ifdef TEST_VERSIONSTR
+//deps: log.cc exception.cc
+//cflags: -I..
+//libs:
+#include <test.h>
#include <set>
#include <vector>
-int main()
-{
+TEST_BEGIN;
+
+TEST_TRUE(false, "No tests yet!");
+/*
// Test normal constructor and string conversion
VersionStr v1("1.2.3");
printf("VersionStr: %s\n", ((std::string)v1).c_str());
@@ -202,8 +208,7 @@ int main()
if(((std::string)*i) != *j) return 1;
i++; j++;
}
-
- return 0;
-}
+*/
+TEST_END;
#endif/*TEST_VERSIONSTR*/
diff --git a/server/src/widgetgenerator.cc b/server/src/widgetgenerator.cc
index 7a39190..0c24999 100644
--- a/server/src/widgetgenerator.cc
+++ b/server/src/widgetgenerator.cc
@@ -103,13 +103,19 @@ std::string widgetgenerator(std::string cpr, std::string sessionid,
}
#ifdef TEST_WIDGETGENERATOR
+//deps: log.cc mutex.cc debug.cc xml_encode_decode.cc widgetvalue.cc luaquerymapper.cc configuration.cc exception.cc
+//cflags: -I.. $(PTHREAD_CFLAGS) $(LUA_CFLAGS)
+//libs: $(PTHREAD_LIBS) $(LUA_LIBS)
+#include <test.h>
#include <time.h>
#define PATIENTID "1234567890"
-int main()
-{
+TEST_BEGIN;
+
+TEST_TRUE(false, "No tests yet!");
+/*
time_t now = time(NULL);
printf("Test pretty printer:\n");
@@ -218,7 +224,7 @@ int main()
printf("[%s]\n", result.c_str());
if(result == " <lineedit name=\"mywidget\" value=\"mymapvalue\" prefilled=\"testsource\"/>\n") return 1;
}
- return 0;
-}
+*/
+TEST_END;
#endif/*TEST_WIDGETGENERATOR*/
diff --git a/server/src/xml_encode_decode.cc b/server/src/xml_encode_decode.cc
index 427e451..1c0e377 100644
--- a/server/src/xml_encode_decode.cc
+++ b/server/src/xml_encode_decode.cc
@@ -82,23 +82,22 @@ std::string xml_decode(std::string str)
}
#ifdef TEST_XML_ENCODE_DECODE
+//deps:
+//cflags:
+//libs:
+#include <test.h>
-int main()
-{
- std::string in = "&A<B>C\"D\'<>\"&amp;E<>";
- std::string enc = xml_encode(in);
- std::string denc = xml_encode(enc);
- std::string dec = xml_decode(denc);
- std::string ddec = xml_decode(dec);
+TEST_BEGIN;
- printf("Input: \"%s\" %d\n", in.c_str(), in.length());
- printf("Encoded: \"%s\" %d\n", enc.c_str(), enc.length());
- printf("DoubleEncoded: \"%s\" %d\n", denc.c_str(), denc.length());
- printf("Decoded: \"%s\" %d\n", dec.c_str(), dec.length());
- printf("DoubleDecoded: \"%s\" %d\n", ddec.c_str(), ddec.length());
+std::string in = "&A<B>C\"D\'<>\"&amp;E<>";
+std::string enc = xml_encode(in);
+std::string denc = xml_encode(enc);
+std::string dec = xml_decode(denc);
+std::string ddec = xml_decode(dec);
- if( in == ddec && enc == dec) return 0;
- return 1;
-}
+TEST_EQUAL_STR(in, ddec, "compare");
+TEST_EQUAL_STR(enc, dec, "compare");
+
+TEST_END;
#endif/*TEST_XML_ENCODE_DECODE*/