comphelper/qa/unit/test_guards.cxx |   56 +++++++++++++++++++++++++++++--------
 1 file changed, 44 insertions(+), 12 deletions(-)

New commits:
commit 1ad2fe68308b556bb95d1c1620a3d5e55982260e
Author:     Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk>
AuthorDate: Tue Apr 19 15:24:08 2022 +0900
Commit:     Tomaž Vajngerl <qui...@gmail.com>
CommitDate: Fri May 6 10:50:25 2022 +0200

    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 <qui...@gmail.com>

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: */

Reply via email to