Tracer.cpp 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. // Copyright (C) 2009-present, Panagiotis Christopoulos Charitos and contributors.
  2. // All rights reserved.
  3. // Code licensed under the BSD License.
  4. // http://www.anki3d.org/LICENSE
  5. #include <Tests/Framework/Framework.h>
  6. #include <AnKi/Util/Tracer.h>
  7. #include <AnKi/Core/CoreTracer.h>
  8. #include <AnKi/Util/HighRezTimer.h>
  9. #if ANKI_TRACING_ENABLED
  10. ANKI_TEST(Util, Tracer)
  11. {
  12. HeapMemoryPool alloc(allocAligned, nullptr);
  13. ANKI_TEST_EXPECT_NO_ERR(CoreTracer::allocateSingleton().init("./"));
  14. Tracer::getSingleton().setEnabled(true);
  15. // 1st frame
  16. CoreTracer::getSingleton().flushFrame(0);
  17. // 2nd frame
  18. // 2 events
  19. {
  20. ANKI_TRACE_SCOPED_EVENT(EVENT);
  21. HighRezTimer::sleep(0.5);
  22. }
  23. {
  24. ANKI_TRACE_SCOPED_EVENT(EVENT);
  25. HighRezTimer::sleep(0.25);
  26. }
  27. CoreTracer::getSingleton().flushFrame(1);
  28. // 4rd frame
  29. // 2 different events & non zero counter
  30. {
  31. ANKI_TRACE_SCOPED_EVENT(EVENT);
  32. HighRezTimer::sleep(0.5);
  33. }
  34. {
  35. ANKI_TRACE_SCOPED_EVENT(EVENT2);
  36. HighRezTimer::sleep(0.25);
  37. }
  38. ANKI_TRACE_INC_COUNTER(COUNTER, 100);
  39. CoreTracer::getSingleton().flushFrame(3);
  40. // 5th frame
  41. ANKI_TRACE_INC_COUNTER(COUNTER, 150);
  42. CoreTracer::getSingleton().flushFrame(4);
  43. CoreTracer::freeSingleton();
  44. }
  45. #endif