ScopedAssign_test.cc 521 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #include "catch.hpp"
  2. #include "ScopedAssign.hh"
  3. TEST_CASE("ScopedAssign, local")
  4. {
  5. int l = 1;
  6. CHECK(l == 1);
  7. {
  8. ScopedAssign<int> sa1(l, 2);
  9. CHECK(l == 2);
  10. {
  11. ScopedAssign<int> sa2(l, 3);
  12. CHECK(l == 3);
  13. }
  14. CHECK(l == 2);
  15. }
  16. CHECK(l == 1);
  17. }
  18. int g;
  19. static void testAssign()
  20. {
  21. CHECK(g == 2);
  22. ScopedAssign<int> sa(g, 3);
  23. CHECK(g == 3);
  24. }
  25. TEST_CASE("ScopedAssign, global")
  26. {
  27. g = 1;
  28. CHECK(g == 1);
  29. {
  30. ScopedAssign<int> sa(g, 2);
  31. CHECK(g == 2);
  32. testAssign();
  33. CHECK(g == 2);
  34. }
  35. CHECK(g == 1);
  36. }