aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYann Herklotz <ymherklotz@gmail.com>2017-06-22 22:23:16 +0100
committerYann Herklotz <ymherklotz@gmail.com>2017-06-22 22:23:16 +0100
commitb002697e19db546c3f7f70c7385f3106310e4579 (patch)
tree4ef419413c5e093f443ea8cda9489e4e8d0a7a51
parenta4b4047e48e435253efea0c188b808995a477d8c (diff)
downloadYAGE-b002697e19db546c3f7f70c7385f3106310e4579.tar.gz
YAGE-b002697e19db546c3f7f70c7385f3106310e4579.zip
Adding testbench
-rw-r--r--CMakeLists.txt5
l---------test/.#matrixtest.cpp1
-rw-r--r--test/matrixtest.cpp9
-rw-r--r--test/testbench.cpp57
-rw-r--r--test/testbench.hpp23
5 files changed, 91 insertions, 4 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7580bbee..b0dc4535 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -47,10 +47,8 @@ set(YAGE_SOURCES
${PROJECT_SOURCE_DIR}/src/spritebatch.cpp
${PROJECT_SOURCE_DIR}/src/sprite.cpp
${PROJECT_SOURCE_DIR}/src/texturecache.cpp
- # ${PROJECT_SOURCE_DIR}/src/vector2d.cpp
${PROJECT_SOURCE_DIR}/src/window.cpp)
-
# find libraries
find_package(OpenGL REQUIRED)
find_package(GLEW REQUIRED)
@@ -72,7 +70,8 @@ target_link_libraries(rigidbodytest
${GLEW_LIBRARIES})
add_executable(matrixtest
- ${YAGE_TEST_DIR}/matrixtest.cpp)
+ ${YAGE_TEST_DIR}/matrixtest.cpp
+ ${YAGE_TEST_DIR}/testbench.cpp)
target_link_libraries(matrixtest
${YAGE_LIBRARIES}
${OPENGL_LIBRARIES}
diff --git a/test/.#matrixtest.cpp b/test/.#matrixtest.cpp
new file mode 120000
index 00000000..a5af3c6f
--- /dev/null
+++ b/test/.#matrixtest.cpp
@@ -0,0 +1 @@
+yannherklotz@yann-arch.18525:1497988195 \ No newline at end of file
diff --git a/test/matrixtest.cpp b/test/matrixtest.cpp
index 16548164..4150641f 100644
--- a/test/matrixtest.cpp
+++ b/test/matrixtest.cpp
@@ -8,7 +8,16 @@
#include "Math/math.hpp"
+#include "testbench.hpp"
+
int main()
{
+ TestBench tb;
+ tb.startTest("Hello");
+ tb.endTest(true);
+ tb.startTest("Bye");
+ tb.endTest(true);
+
+ tb.printResults();
return 0;
}
diff --git a/test/testbench.cpp b/test/testbench.cpp
index e69de29b..6b2a6084 100644
--- a/test/testbench.cpp
+++ b/test/testbench.cpp
@@ -0,0 +1,57 @@
+#include "testbench.hpp"
+
+#include <stdexcept>
+
+void TestBench::startTest(const std::string &test_name)
+{
+ incrementer++;
+
+ Test test(test_name, false);
+
+ tests_.push_back(test);
+}
+
+void TestBench::endTest(bool pass)
+{
+ incrementer--;
+
+ if(incrementer!=0)
+ {
+ throw std::runtime_error("Start and End don't match");
+ }
+
+ if(pass)
+ {
+ passed++;
+ }
+ else
+ {
+ failed++;
+ }
+
+ tests_[passed+failed-1].passed=pass;
+}
+
+void TestBench::printResults()
+{
+ printf("+------------+---------+\n");
+ printf("| Test Name | Result |\n");
+ printf("+------------+---------+\n");
+ for(auto test : tests_)
+ {
+ std::string result;
+ if(test.passed)
+ result="PASS";
+ else
+ result="FAIL";
+
+ printf("| %10s | %6s |\n", test.name.c_str(), result.c_str());
+ }
+ printf("+------------+---------+\n");
+ printf("\n");
+ printf("+--------+--------+\n");
+ printf("| Passed | %6d |\n", passed);
+ printf("| Failed | %6d |\n", failed);
+ printf("| Ratio | %5.1f%% |\n", (float)passed/(float)(failed+passed) * 100.f);
+ printf("+--------+--------+\n");
+}
diff --git a/test/testbench.hpp b/test/testbench.hpp
index 0d2424fa..ba3a3212 100644
--- a/test/testbench.hpp
+++ b/test/testbench.hpp
@@ -8,11 +8,32 @@
#ifndef TEST_BENCH_HPP
#define TEST_BENCH_HPP
+#include <string>
+#include <vector>
+
+struct Test
+{
+ std::string name;
+ bool passed;
+
+ Test(const std::string &_name, bool _passed) : name(_name), passed(_passed) {}
+};
+
class TestBench
{
private:
-public:
+ int incrementer=0;
+ int passed=0;
+ int failed=0;
+
+ std::vector<Test> tests_;
+public:
+ TestBench() : tests_() {}
+
+ void startTest(const std::string &test_name);
+ void endTest(bool pass);
+ void printResults();
};
#endif