aboutsummaryrefslogtreecommitdiff
path: root/test/source/TestFinally.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/source/TestFinally.cpp')
-rw-r--r--test/source/TestFinally.cpp107
1 files changed, 0 insertions, 107 deletions
diff --git a/test/source/TestFinally.cpp b/test/source/TestFinally.cpp
deleted file mode 100644
index 6e6e595..0000000
--- a/test/source/TestFinally.cpp
+++ /dev/null
@@ -1,107 +0,0 @@
-/////////////////////////////////////////////////////////////////////////////
-// Copyright (c) Electronic Arts Inc. All rights reserved.
-/////////////////////////////////////////////////////////////////////////////
-
-
-#include "EASTLTest.h"
-#include <EASTL/finally.h>
-
-
-int TestFinally()
-{
- using namespace eastl;
-
- int nErrorCount = 0;
-
- {
- #if defined(EA_COMPILER_CPP17_ENABLED)
- {
- // requires CTAD (class template argument deduction)
- int a = 0;
- {
- VERIFY(a == 0);
- eastl::finally _([&] { a = 42; });
- VERIFY(a == 0);
- }
- VERIFY(a == 42);
- }
- #endif
-
- {
- int a = 0;
- {
- VERIFY(a == 0);
- auto _ = eastl::make_finally([&] { a = 42; });
- VERIFY(a == 0);
- }
- VERIFY(a == 42);
- }
-
- {
- int a = 0;
- {
- VERIFY(a == 0);
- auto f = eastl::make_finally([&] { a = 42; });
- VERIFY(a == 0);
- f.dismiss();
- VERIFY(a == 0);
- }
- VERIFY(a == 0);
- }
-
- {
- int a = 0;
- {
- VERIFY(a == 0);
- auto f = eastl::make_finally([&] { a = 42; });
- VERIFY(a == 0);
- f.execute();
- VERIFY(a == 42);
- }
- VERIFY(a == 42);
- }
-
- {
- int a = 0;
- {
- VERIFY(a == 0);
- auto f = eastl::make_finally([&] { a = 42; });
- VERIFY(a == 0);
- f.execute();
- VERIFY(a == 42);
-
- // verify the finally object doesn't re-run the callback on scope-exit.
- a = -1;
- }
- VERIFY(a == -1);
- }
-
- {
- struct local_flag { bool b = false; };
-
- local_flag lf;
- VERIFY(lf.b == false);
-
- { auto _ = eastl::make_finally([&] { lf.b = true; }); }
-
- VERIFY(lf.b);
- }
-
- // This currently does not compile by design.
- //
- // {
- // int a = 0;
- // auto lbda = [&a] { a = 1234; };
- // {
- // VERIFY(a == 0);
- // auto _ = eastl::make_finally(lbda); // compiler error
- // VERIFY(a == 0);
- // }
- // VERIFY(a == 1234);
- // }
- }
-
- return nErrorCount;
-}
-
-