summaryrefslogtreecommitdiff
path: root/unittests/ADT/ScopeExitTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'unittests/ADT/ScopeExitTest.cpp')
-rw-r--r--unittests/ADT/ScopeExitTest.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/unittests/ADT/ScopeExitTest.cpp b/unittests/ADT/ScopeExitTest.cpp
index 301942c30bbc..ab11dff8ce48 100644
--- a/unittests/ADT/ScopeExitTest.cpp
+++ b/unittests/ADT/ScopeExitTest.cpp
@@ -29,4 +29,21 @@ TEST(ScopeExitTest, Basic) {
EXPECT_TRUE(Called);
}
+TEST(ScopeExitTest, Release) {
+ int Count = 0;
+ auto Increment = [&] { ++Count; };
+ {
+ auto G = make_scope_exit(Increment);
+ auto H = std::move(G);
+ auto I = std::move(G);
+ EXPECT_EQ(0, Count);
+ }
+ EXPECT_EQ(1, Count);
+ {
+ auto G = make_scope_exit(Increment);
+ G.release();
+ }
+ EXPECT_EQ(1, Count);
+}
+
} // end anonymous namespace