UniquePointerTests.cpp 742 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #include "../Tests.hpp"
  2. #include "core/utils/UniquePointer.hpp"
  3. struct B final {
  4. static int instances;
  5. B() {
  6. instances++;
  7. }
  8. ~B() {
  9. instances--;
  10. }
  11. };
  12. int B::instances = 0;
  13. static void testDestroy() {
  14. {
  15. Core::UniquePointer<B> p(new B());
  16. CORE_TEST_EQUAL(1, B::instances);
  17. }
  18. CORE_TEST_EQUAL(0, B::instances);
  19. }
  20. static void testMoveDestroys() {
  21. {
  22. Core::UniquePointer<B> p1(new B());
  23. Core::UniquePointer<B> p2(new B());
  24. CORE_TEST_EQUAL(2, B::instances);
  25. p1 = Core::move(p2);
  26. CORE_TEST_EQUAL(1, B::instances);
  27. }
  28. CORE_TEST_EQUAL(0, B::instances);
  29. }
  30. void Core::testUniquePointer() {
  31. testDestroy();
  32. testMoveDestroys();
  33. }