UniquePointerTests.cpp 780 B

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