[SmokeTest] Add SIGINT and SIGSEGV handling 04/123704/1
authorDamian Pietruchowski <d.pietruchow@samsung.com>
Thu, 6 Apr 2017 14:13:09 +0000 (16:13 +0200)
committerDamian Pietruchowski <d.pietruchow@samsung.com>
Thu, 6 Apr 2017 14:13:09 +0000 (16:13 +0200)
Change-Id: I497435a6d89a7df26bbfe19e4fd308be2dd9b55d
Signed-off-by: Damian Pietruchowski <d.pietruchow@samsung.com>
src/unit_tests/extensive_smoke_test.cc
src/unit_tests/smoke_test.cc
src/unit_tests/smoke_utils.cc
src/unit_tests/smoke_utils.h

index 58f11f6..043c293 100644 (file)
@@ -382,7 +382,9 @@ int main(int argc,  char** argv) {
     ::testing::GTEST_FLAG(filter) = "SmokeTest.*";
   }
   testing::InitGoogleTest(&argc, argv);
-  testing::Environment *env = testing::AddGlobalTestEnvironment(
+  env = testing::AddGlobalTestEnvironment(
       new common_installer::SmokeEnvironment(request_mode));
+  signal(SIGINT, signalHandler);
+  signal(SIGSEGV, signalHandler);
   return RUN_ALL_TESTS();
 }
index 38c2b01..9b90c2a 100644 (file)
@@ -3,10 +3,8 @@
 // found in the LICENSE file.
 
 #include <common/utils/subprocess.h>
-
 #include <common/utils/file_util.h>
 
-#include <gtest/gtest.h>
 #include <gtest/gtest-death-test.h>
 
 #include "unit_tests/smoke_utils.h"
@@ -711,7 +709,9 @@ int main(int argc,  char** argv) {
     ::testing::GTEST_FLAG(filter) = "SmokeTest.*";
   }
   testing::InitGoogleTest(&argc, argv);
-  testing::Environment *env = testing::AddGlobalTestEnvironment(
+  env = testing::AddGlobalTestEnvironment(
       new common_installer::SmokeEnvironment(request_mode));
+  signal(SIGINT, signalHandler);
+  signal(SIGSEGV, signalHandler);
   return RUN_ALL_TESTS();
 }
index 24f92b3..2ef8402 100644 (file)
@@ -75,6 +75,11 @@ const char kPreloadApps[] = "/usr/apps";
 const char kPreloadManifestDir[] = "/usr/share/packages";
 const char kPreloadIcons[] = "/usr/share/icons";
 
+testing::Environment *env = nullptr;
+void signalHandler(int signum) {
+  env->TearDown();
+  exit(signum);
+}
 
 ci::RequestMode ParseRequestMode(int argc,  char** argv) {
   bo::options_description desc("Available options");
@@ -817,6 +822,7 @@ void UninstallAllAppsInDirectory(bf::path dir, bool is_preload) {
 }
 
 void UninstallAllSmokeApps(ci::RequestMode request_mode) {
+  std::cout << "Uninstalling all smoke apps" << std::endl;
   if (getuid() == 0 && request_mode == ci::RequestMode::GLOBAL) {
     bf::path root_path = kPreloadApps;
     UninstallAllAppsInDirectory(root_path, true);
index d0a4b47..448b71f 100644 (file)
@@ -16,6 +16,8 @@
 #include <gum/gum-user-service.h>
 #include <gum/common/gum-user-types.h>
 
+#include <gtest/gtest.h>
+
 #include <memory>
 #include <vector>
 #include <string>
@@ -84,6 +86,9 @@ extern const char kPreloadApps[];
 extern const char kPreloadManifestDir[];
 extern const char kPreloadIcons[];
 
+extern testing::Environment *env;
+void signalHandler(int signum);
+
 enum class RequestResult {
   NORMAL,
   FAIL