diff --git a/CMakeLists.txt b/CMakeLists.txt index 5a44ce1..b7ea785 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,7 +26,7 @@ target_link_libraries(vb01 glad) target_link_libraries(vb01 assimp) target_link_libraries(vb01 freetype) -set(renderTest nodeTest.cpp cameraTest.cpp) +set(renderTest nodeTest.cpp cameraTest.cpp shaderTest.cpp) set(armatureTest boneTest.cpp) set(modelTest vbModelReaderTest.cpp) set(animationTest animationChannelTest.cpp) diff --git a/main.cpp b/main.cpp index 41613ae..5b7f9a4 100755 --- a/main.cpp +++ b/main.cpp @@ -8,6 +8,7 @@ #include "boneTest.h" #include "vbModelReaderTest.h" #include "animationChannelTest.h" +#include "shaderTest.h" using namespace CppUnit; using namespace vb01; @@ -19,6 +20,7 @@ int main(){ runner.addTest(BoneTest::suite()); runner.addTest(VbModelReaderTest::suite()); runner.addTest(AnimationChannelTest::suite()); + runner.addTest(ShaderTest::suite()); runner.run(); return 0; } diff --git a/shader.h b/shader.h index df00918..eeb7c83 100755 --- a/shader.h +++ b/shader.h @@ -12,6 +12,7 @@ namespace vb01{ enum ErrorType{VERTEX_ERROR, GEOMETRY_ERROR, FRAGMENT_ERROR, PROGRAM_ERROR}; enum ShaderType{VERTEX_SHADER, FRAGMENT_SHADER, GEOMETRY_SHADER}; + Shader(){} Shader(std::string, std::string, std::string = ""); ~Shader(); void setNumLights(int); @@ -33,6 +34,8 @@ namespace vb01{ unsigned int id; bool geometry = false; std::string vString, fString, gString; + + friend class ShaderTest; }; } diff --git a/shaderTest.cpp b/shaderTest.cpp new file mode 100644 index 0000000..9489399 --- /dev/null +++ b/shaderTest.cpp @@ -0,0 +1,23 @@ +#include "shaderTest.h" +#include "shader.h" + +#include + +using namespace std; + +namespace vb01{ + void ShaderTest::setUp(){ + shader = new Shader(); + shader->vString = "var x = 1\nvar y = 1\nvar z = 1"; + } + + void ShaderTest::tearDown(){ + } + + void ShaderTest::testReplaceLine(){ + string replacement = "var y = 10"; + shader->replaceLine(Shader::ShaderType::VERTEX_SHADER, 1, replacement); + size_t spot = shader->vString.find(replacement); + CPPUNIT_ASSERT(spot != string::npos); + } +} diff --git a/shaderTest.h b/shaderTest.h new file mode 100644 index 0000000..b32d387 --- /dev/null +++ b/shaderTest.h @@ -0,0 +1,27 @@ +#ifndef SHADER_TEST_H +#define SHADER_TEST_H + +#include +#include + +namespace vb01{ + class Shader; + + class ShaderTest : public CppUnit::TestFixture{ + CPPUNIT_TEST_SUITE(ShaderTest); + CPPUNIT_TEST(testReplaceLine); + CPPUNIT_TEST_SUITE_END(); + + public: + ShaderTest(){} + ~ShaderTest(){} + void setUp(); + void tearDown(); + private: + Shader *shader = nullptr; + + void testReplaceLine(); + }; +} + +#endif