Cleanup namespace after app termination 48/231248/15
authorKrzysztof Jackiewicz <k.jackiewicz@samsung.com>
Mon, 20 Apr 2020 11:50:39 +0000 (13:50 +0200)
committerKrzysztof Jackiewicz <k.jackiewicz@samsung.com>
Wed, 29 Apr 2020 18:50:29 +0000 (20:50 +0200)
This API call is necessary to cleanup /var/run/user/ app links after app is
terminated. Security-manager detects running apps basing on these links
existence.

Change-Id: If4feb5d158deac30098d05230c9f7fca928eacd2

src/security-manager-tests/common/scoped_app_launcher.cpp
src/security-manager-tests/common/scoped_app_launcher.h

index 8647535..a557f01 100644 (file)
 #include <sm_api.h>
 #include <sm_commons.h>
 #include <tests_common.h>
+#include <dpl/test/safe_cleanup.h>
 
 using namespace SecurityManagerTest;
 
-ScopedAppLauncher::ScopedAppLauncher(const AppInstallHelper& app)
+ScopedAppLauncher::ScopedAppLauncher(const AppInstallHelper& app) :
+    m_uid(app.getUID()),
+    m_appId(app.getAppId())
 {
-    SynchronizationPipe syncPipe;
-
     m_pid = fork();
     RUNNER_ASSERT_ERRNO_MSG(m_pid >= 0, "Fork failed");
     if (m_pid != 0) {
@@ -46,6 +47,9 @@ ScopedAppLauncher::ScopedAppLauncher(const AppInstallHelper& app)
 
 ScopedAppLauncher::~ScopedAppLauncher()
 {
-    m_syncPipe.post();
-    waitPid(m_pid);
+    SafeCleanup::run([this]{
+        m_syncPipe.post();
+        waitPid(m_pid);
+        Api::cleanupApp(m_appId, m_uid, m_pid);
+    });
 }
index 496df68..5a43149 100644 (file)
@@ -29,4 +29,6 @@ public:
 private:
     SynchronizationPipe m_syncPipe;
     pid_t m_pid;
+    const uid_t m_uid;
+    const std::string m_appId;
 };