Prevent running cynara service by masking 26/30726/2
authorLukasz Wojciechowski <l.wojciechow@partner.samsung.com>
Mon, 24 Nov 2014 11:33:25 +0000 (12:33 +0100)
committerLukasz Wojciechowski <l.wojciechow@partner.samsung.com>
Mon, 24 Nov 2014 17:16:09 +0000 (18:16 +0100)
Before and after each testcase CynaraTestEnv runs code, that
saves and restores cynara's database. Cynara service is stopped
for that time, however it can be socket-activated and start during
critical moment of database modification.
To prevent such situation cynara is masked for critical sections.

Change-Id: I2dba7f9985121d92a2bb2ffd6318ec922022979c

tests/cynara-tests/common/cynara_test_env.cpp

index 004fded..ce606c8 100644 (file)
@@ -152,6 +152,7 @@ void CynaraTestEnv::save()
     removeDirIfExists(m_dir);
 
     DBusAccess dbusAccess("cynara.service");
+    dbusAccess.maskService();
     dbusAccess.stopService();
 
     m_dbPresent = cynaraDbExists();
@@ -161,12 +162,14 @@ void CynaraTestEnv::save()
         copyDir(cynaraDbDir, m_dir);
     }
 
+    dbusAccess.unmaskService();
     dbusAccess.startService();
 }
 
 void CynaraTestEnv::restore()
 {
     DBusAccess dbusAccess("cynara.service");
+    dbusAccess.maskService();
     dbusAccess.stopService();
 
     clear(cynaraDbDir);
@@ -175,6 +178,7 @@ void CynaraTestEnv::restore()
     else
         removeDirIfExists(cynaraDbDir);
 
+    dbusAccess.unmaskService();
     dbusAccess.startService();
 
     clear(m_dir);