BsTestSuite.cpp 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #include "Testing/BsTestSuite.h"
  4. #include "Testing/BsTestOutput.h"
  5. namespace bs
  6. {
  7. TestSuite::TestEntry::TestEntry(Func test, const String& name)
  8. :test(test), name(name)
  9. { }
  10. TestSuite::TestSuite()
  11. : mOutput(nullptr)
  12. { }
  13. void TestSuite::run(TestOutput& output)
  14. {
  15. mOutput = &output;
  16. startUp();
  17. for (auto& testEntry : mTests)
  18. {
  19. mActiveTestName = testEntry.name;
  20. (this->*(testEntry.test))();
  21. }
  22. for (auto& suite : mSuites)
  23. {
  24. suite->run(output);
  25. }
  26. shutDown();
  27. }
  28. void TestSuite::add(const SPtr<TestSuite>& suite)
  29. {
  30. mSuites.push_back(suite);
  31. }
  32. void TestSuite::addTest(Func test, const String& name)
  33. {
  34. mTests.push_back(TestEntry(test, name));
  35. }
  36. void TestSuite::assertment(bool success, const String& desc, const String& file, long line)
  37. {
  38. if (!success)
  39. mOutput->outputFail(desc, mActiveTestName, file, line);
  40. }
  41. }