Add StepCrash class at smoke utils 21/228721/7
authorSangyoon Jang <jeremy.jang@samsung.com>
Wed, 25 Mar 2020 02:59:47 +0000 (11:59 +0900)
committerSangyoon Jang <jeremy.jang@samsung.com>
Mon, 20 Apr 2020 03:32:36 +0000 (12:32 +0900)
This class is moved from each tpk, wgt smoke utils.

Change-Id: I15b36064e618acc929981b6b931698db8b352608
Signed-off-by: Sangyoon Jang <jeremy.jang@samsung.com>
src/unit_tests/common/smoke_utils.h

index ca6107d..ab844dd 100644 (file)
@@ -351,6 +351,42 @@ void UninstallAllSmokeApps(common_installer::RequestMode request_mode,
 
 int GetAppInstalledTime(const char* appid, uid_t uid);
 
+enum class CrashStepType {
+  PROCESS,
+  CLEAN
+};
+
+class StepCrash : public common_installer::Step {
+ public:
+  using Step::Step;
+
+  explicit StepCrash(common_installer::InstallerContext* context,
+      CrashStepType type)
+      : common_installer::Step::Step(context), type_(type) {}
+
+  common_installer::Step::Status process() override {
+    if (type_ == CrashStepType::PROCESS)
+      raise(SIGSEGV);
+    return Status::OK;
+  }
+  common_installer::Step::Status clean() override {
+    if (type_ == CrashStepType::CLEAN)
+      raise(SIGSEGV);
+    return Status::OK;
+  }
+  common_installer::Step::Status undo() override {
+    return common_installer::Step::Status::OK;
+  }
+  common_installer::Step::Status precheck() override {
+    return common_installer::Step::Status::OK;
+  }
+
+  STEP_NAME(Crash)
+
+ private:
+  CrashStepType type_;
+};
+
 }  // namespace smoke_test
 
 #endif  // UNIT_TESTS_COMMON_SMOKE_UTILS_H_