forked from OSchip/llvm-project
47 lines
1.0 KiB
C++
47 lines
1.0 KiB
C++
//===-- CleanUpTest.cpp -----------------------------------------*- C++ -*-===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "lldb/Utility/CleanUp.h"
|
|
#include "gtest/gtest.h"
|
|
|
|
using namespace lldb_private;
|
|
|
|
TEST(CleanUpTest, no_args) {
|
|
bool f = false;
|
|
{
|
|
CleanUp cleanup([&] { f = true; });
|
|
}
|
|
ASSERT_TRUE(f);
|
|
}
|
|
|
|
TEST(CleanUpTest, multiple_args) {
|
|
bool f1 = false;
|
|
bool f2 = false;
|
|
bool f3 = false;
|
|
{
|
|
CleanUp cleanup(
|
|
[](bool arg1, bool *arg2, bool &arg3) {
|
|
ASSERT_FALSE(arg1);
|
|
*arg2 = true;
|
|
arg3 = true;
|
|
},
|
|
f1, &f2, f3);
|
|
}
|
|
ASSERT_TRUE(f2);
|
|
ASSERT_FALSE(f3);
|
|
}
|
|
|
|
TEST(CleanUpTest, disable) {
|
|
bool f = false;
|
|
{
|
|
CleanUp cleanup([&] { f = true; });
|
|
cleanup.disable();
|
|
}
|
|
ASSERT_FALSE(f);
|
|
}
|