diff options
author | Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> | 2022-04-19 15:24:08 +0900 |
---|---|---|
committer | Tomaž Vajngerl <quikee@gmail.com> | 2022-05-06 10:50:25 +0200 |
commit | 1ad2fe68308b556bb95d1c1620a3d5e55982260e (patch) | |
tree | 78c8c247014b9076e26ca990138d5294b04161c5 /comphelper/qa | |
parent | 927561e4662ca2a04daa09914400fa72738531d3 (diff) |
comphelper: cleanup test_guards, add test for ValueRestorationGuard
Move each test case into its own test function. Also add the
missing test for ValueRestorationGuard.
Change-Id: I588ab67f82ba82ef67939dac3d22438e8799ce11
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133917
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Diffstat (limited to 'comphelper/qa')
-rw-r--r-- | comphelper/qa/unit/test_guards.cxx | 56 |
1 files changed, 44 insertions, 12 deletions
diff --git a/comphelper/qa/unit/test_guards.cxx b/comphelper/qa/unit/test_guards.cxx index 02daffaa521b..83034a2dcc6a 100644 --- a/comphelper/qa/unit/test_guards.cxx +++ b/comphelper/qa/unit/test_guards.cxx @@ -10,42 +10,50 @@ #include <comphelper/flagguard.hxx> #include <unotest/bootstrapfixturebase.hxx> -CPPUNIT_TEST_FIXTURE(CppUnit::TestFixture, test_comphelperGuards) +CPPUNIT_TEST_FIXTURE(CppUnit::TestFixture, testScopeGuard) { + // Test that comphelper::ScopeGuard executes its parameter on destruction + + // initial value "true", out-of-scope ScopeGuard function executes and changes the value to "false" bool bFlag = true; { - // Test that comphelper::ScopeGuard executes its parameter on destruction comphelper::ScopeGuard aGuard([&bFlag] { bFlag = false; }); CPPUNIT_ASSERT(bFlag); } CPPUNIT_ASSERT(!bFlag); +} + +CPPUNIT_TEST_FIXTURE(CppUnit::TestFixture, testFlagGuard) +{ + // Test that comphelper::FlagGuard properly sets and resets the flag + // initial value "false", change to "true", out-of-scope change to "false" + bool bFlag = false; { - // Test that comphelper::FlagGuard properly sets and resets the flag comphelper::FlagGuard aGuard(bFlag); CPPUNIT_ASSERT(bFlag); } + // comphelper::FlagGuard must reset flag to false on destruction unconditionally CPPUNIT_ASSERT(!bFlag); + // initial value "true", retain the value at "true", out-of-scope change to "false" bFlag = true; { - // Test that comphelper::FlagGuard properly sets and resets the flag comphelper::FlagGuard aGuard(bFlag); CPPUNIT_ASSERT(bFlag); } // comphelper::FlagGuard must reset flag to false on destruction unconditionally CPPUNIT_ASSERT(!bFlag); +} - { - // Test that comphelper::FlagRestorationGuard properly sets and resets the flag - comphelper::FlagRestorationGuard aGuard(bFlag, true); - CPPUNIT_ASSERT(bFlag); - } - CPPUNIT_ASSERT(!bFlag); +CPPUNIT_TEST_FIXTURE(CppUnit::TestFixture, testFlagRestorationGuard) +{ + // Test that comphelper::FlagRestorationGuard properly sets and resets the flag - bFlag = true; + // initial value "true", change to "false", out-of-scope change to "true" + + bool bFlag = true; { - // Test that comphelper::FlagRestorationGuard properly sets and resets the flag comphelper::FlagRestorationGuard aGuard(bFlag, false); CPPUNIT_ASSERT(!bFlag); } @@ -53,4 +61,28 @@ CPPUNIT_TEST_FIXTURE(CppUnit::TestFixture, test_comphelperGuards) CPPUNIT_ASSERT(bFlag); } +CPPUNIT_TEST_FIXTURE(CppUnit::TestFixture, testValueRestorationGuard) +{ + // Test that comphelper::ValueRestorationGuard properly sets and resets the (int) value + + int value = 199; + + // set value and restore after scope ends + { + CPPUNIT_ASSERT_EQUAL(199, value); + comphelper::ValueRestorationGuard aGuard(value, 100); + CPPUNIT_ASSERT_EQUAL(100, value); + } + CPPUNIT_ASSERT_EQUAL(199, value); + + // set value, manually setto another value and restore after scope ends + { + CPPUNIT_ASSERT_EQUAL(199, value); + comphelper::ValueRestorationGuard aGuard(value, 100); + CPPUNIT_ASSERT_EQUAL(100, value); + value = 200; + } + CPPUNIT_ASSERT_EQUAL(199, value); +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |