BsTestSuite.cpp 864 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #include "BsTestSuite.h"
  2. #include "BsTestOutput.h"
  3. namespace BansheeEngine
  4. {
  5. TestSuite::TestEntry::TestEntry(Func test, const String& name)
  6. :test(test), name(name)
  7. { }
  8. TestSuite::TestSuite()
  9. : mOutput(nullptr)
  10. { }
  11. void TestSuite::run(TestOutput& output)
  12. {
  13. mOutput = &output;
  14. startUp();
  15. for (auto& testEntry : mTests)
  16. {
  17. mActiveTestName = testEntry.name;
  18. (this->*(testEntry.test))();
  19. }
  20. for (auto& suite : mSuites)
  21. {
  22. suite->run(output);
  23. }
  24. shutDown();
  25. }
  26. void TestSuite::add(const TestSuitePtr& suite)
  27. {
  28. mSuites.push_back(suite);
  29. }
  30. void TestSuite::addTest(Func test, const String& name)
  31. {
  32. mTests.push_back(TestEntry(test, name));
  33. }
  34. void TestSuite::assertment(bool success, const String& desc, const String& file, long line)
  35. {
  36. if (!success)
  37. mOutput->outputFail(desc, mActiveTestName, file, line);
  38. }
  39. }