diff --git a/src/tests/Makefile b/src/tests/Makefile deleted file mode 100644 index b58b7042d..000000000 --- a/src/tests/Makefile +++ /dev/null @@ -1,24 +0,0 @@ -PROJECT = t.t tdb.t -CFLAGS = -I.. -I../../../library/include -Wall -pedantic -ggdb3 -fno-rtti -LFLAGS = -L/usr/local/lib -L../../../library/lib -lcompany -lpcre -lncurses -lcurl - -all: $(PROJECT) - -install: $(PROJECT) - @echo unimplemented - -test: $(PROJECT) - @echo unimplemented - -clean: - -rm *.o $(PROJECT) - -.cpp.o: - g++ -c $(CFLAGS) $< - -t.t: t.t.o ../T.o ../parse.o ../../../library/lib/libcompany.a - g++ t.t.o ../T.o ../parse.o $(LFLAGS) -o t.t - -tdb.t: tdb.t.o ../TDB.o ../T.o ../parse.o ../../../library/lib/libcompany.a - g++ tdb.t.o ../TDB.o ../T.o ../parse.o $(LFLAGS) -o tdb.t - diff --git a/src/tests/t.t.cpp b/src/tests/t.t.cpp index fd74e5744..8a93f411f 100644 --- a/src/tests/t.t.cpp +++ b/src/tests/t.t.cpp @@ -1,8 +1,9 @@ //////////////////////////////////////////////////////////////////////////////// // //////////////////////////////////////////////////////////////////////////////// -#include -#include +#include "../T.h" +#include "../task.h" +#include "test.h" //////////////////////////////////////////////////////////////////////////////// int main (int argc, char** argv) diff --git a/src/tests/tdb.t.cpp b/src/tests/tdb.t.cpp index b27f95746..24b212fa1 100644 --- a/src/tests/tdb.t.cpp +++ b/src/tests/tdb.t.cpp @@ -4,8 +4,9 @@ #include #include -#include -#include +#include "../TDB.h" +#include "../task.h" +#include "test.h" //////////////////////////////////////////////////////////////////////////////// int main (int argc, char** argv) @@ -116,10 +117,10 @@ int main (int argc, char** argv) return -2; } -/* + unlink ("./pending.data"); unlink ("./completed.data"); -*/ + return 0; } diff --git a/src/tests/test.cpp b/src/tests/test.cpp new file mode 100644 index 000000000..88af6b3c9 --- /dev/null +++ b/src/tests/test.cpp @@ -0,0 +1,254 @@ +//////////////////////////////////////////////////////////////////////////////// +// Copyright 2007, 2008, Paul Beckingham. All rights reserved. +// +// +//////////////////////////////////////////////////////////////////////////////// +#include +#include +#include + +static int total = 0; +static int counter = 0; + +/////////////////////////////////////////////////////////////////////////////// +static void check (void) +{ + if (counter > total) + std::cout << "# Warning: There are more tests than planned." + << std::endl; +} + +/////////////////////////////////////////////////////////////////////////////// +void plan (int quantity) +{ + total = quantity; + std::cout << "1.." << quantity << std::endl; + check (); +} + +/////////////////////////////////////////////////////////////////////////////// +void ok (bool expression, const std::string& name) +{ + ++counter; + + if (expression) + std::cout << "ok " + << counter + << " - " + << name + << std::endl; + else + std::cout << "not ok " + << counter + << " - " + << name + << std::endl; + check (); +} + +/////////////////////////////////////////////////////////////////////////////// +void notok (bool expression, const std::string& name) +{ + ++counter; + + if (!expression) + std::cout << "ok " + << counter + << " - " + << name + << std::endl; + else + std::cout << "not ok " + << counter + << " - " + << name + << std::endl; + check (); +} + +/////////////////////////////////////////////////////////////////////////////// +void is (bool actual, bool expected, const std::string& name) +{ + ++counter; + if (actual == expected) + std::cout << "ok " + << counter + << " - " + << name + << std::endl; + else + std::cout << "not ok " + << counter + << " - " + << name + << std::endl + << "# expected: " + << expected + << std::endl + << "# got: " + << actual + << std::endl; + check (); +} + +/////////////////////////////////////////////////////////////////////////////// +void is (size_t actual, size_t expected, const std::string& name) +{ + ++counter; + if (actual == expected) + std::cout << "ok " + << counter + << " - " + << name + << std::endl; + else + std::cout << "not ok " + << counter + << " - " + << name + << std::endl + << "# expected: " + << expected + << std::endl + << "# got: " + << actual + << std::endl; + check (); +} + +/////////////////////////////////////////////////////////////////////////////// +void is (int actual, int expected, const std::string& name) +{ + ++counter; + if (actual == expected) + std::cout << "ok " + << counter + << " - " + << name + << std::endl; + else + std::cout << "not ok " + << counter + << " - " + << name + << std::endl + << "# expected: " + << expected + << std::endl + << "# got: " + << actual + << std::endl; + check (); +} + +/////////////////////////////////////////////////////////////////////////////// +void is (double actual, double expected, const std::string& name) +{ + ++counter; + if (actual == expected) + std::cout << "ok " + << counter + << " - " + << name + << std::endl; + else + std::cout << "not ok " + << counter + << " - " + << name + << std::endl + << "# expected: " + << expected + << std::endl + << "# got: " + << actual + << std::endl; + check (); +} + +/////////////////////////////////////////////////////////////////////////////// +void is (char actual, char expected, const std::string& name) +{ + ++counter; + if (actual == expected) + std::cout << "ok " + << counter + << " - " + << name + << std::endl; + else + std::cout << "not ok " + << counter + << " - " + << name + << std::endl + << "# expected: " + << expected + << std::endl + << "# got: " + << actual + << std::endl; + check (); +} + +/////////////////////////////////////////////////////////////////////////////// +void is ( + const std::string& actual, + const std::string& expected, + const std::string& name) +{ + ++counter; + if (actual == expected) + std::cout << "ok " + << counter + << " - " + << name + << std::endl; + else + std::cout << "not ok " + << counter + << " - " + << name + << std::endl + << "# expected: '" + << expected + << "'" + << std::endl + << "# got: '" + << actual + << "'" + << std::endl; + check (); +} + +/////////////////////////////////////////////////////////////////////////////// +void diag (const std::string& text) +{ + std::string trimmed = trim (text, " \t\n\r\f"); + + std::cout << "# " << trimmed << std::endl; +} + +/////////////////////////////////////////////////////////////////////////////// +void pass (const std::string& text) +{ + ++counter; + std::cout << "ok " + << counter + << " " + << text + << std::endl; +} + +/////////////////////////////////////////////////////////////////////////////// +void fail (const std::string& text) +{ + ++counter; + std::cout << "not ok " + << counter + << " " + << text + << std::endl; +} + +/////////////////////////////////////////////////////////////////////////////// diff --git a/src/tests/test.h b/src/tests/test.h new file mode 100644 index 000000000..81bf05179 --- /dev/null +++ b/src/tests/test.h @@ -0,0 +1,24 @@ +//////////////////////////////////////////////////////////////////////////////// +// Copyright 2007, 2008, Paul Beckingham. All rights reserved. +// +//////////////////////////////////////////////////////////////////////////////// +#ifndef INCLUDED_TEST +#define INCLUDED_TEST + +#include + +void plan (int); +void ok (bool, const std::string&); +void notok (bool, const std::string&); +void is (bool, bool, const std::string&); +void is (int, int, const std::string&); +void is (size_t, size_t, const std::string&); +void is (double, double, const std::string&); +void is (char, char, const std::string&); +void is (const std::string&, const std::string&, const std::string&); +void diag (const std::string&); +void fail (const std::string&); +void pass (const std::string&); + +#endif +////////////////////////////////////////////////////////////////////////////////