summaryrefslogtreecommitdiff
path: root/tests/logic_.h
diff options
context:
space:
mode:
authorKrzysztof Jackiewicz <k.jackiewicz@samsung.com>2015-08-27 12:44:16 +0200
committerJanusz Kozerski <j.kozerski@samsung.com>2015-09-08 14:12:36 +0200
commit8fc0b8fc2a814035dc9cf8c7e211dc3a8f74d11b (patch)
tree6f86a12ee0423d9b83eb5ca5f55bd20cb8dee129 /tests/logic_.h
parentae4a130374e96d383e09571f2e098ef237e28418 (diff)
downloadcert-checker-8fc0b8fc2a814035dc9cf8c7e211dc3a8f74d11b.tar.gz
cert-checker-8fc0b8fc2a814035dc9cf8c7e211dc3a8f74d11b.tar.bz2
cert-checker-8fc0b8fc2a814035dc9cf8c7e211dc3a8f74d11b.zip
Fixed synchronisation issues
[Problem] Production code mixed with test code. Poor readability. Synchronisation issues. [Solution] Synchronisation reimplemented. Test code separated from production code. [Verification] Run all test Change-Id: Iea5ed2ce9f10a4cdac8994acf91809cd12050d69
Diffstat (limited to 'tests/logic_.h')
-rw-r--r--tests/logic_.h82
1 files changed, 82 insertions, 0 deletions
diff --git a/tests/logic_.h b/tests/logic_.h
new file mode 100644
index 0000000..29f0e37
--- /dev/null
+++ b/tests/logic_.h
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * @file logic_.h
+ * @author Janusz Kozerski (j.kozerski@samsung.com)
+ * @version 1.0
+ * @brief This file is the tesst implementation of Logic class
+ */
+
+#ifndef CCHECKER_LOGIC__H
+#define CCHECKER_LOGIC__H
+
+/*
+ * This Class makes all methods from Logic Class public - for testing purpose.
+ * Some of methods are stubbed, and some of them just calls corresponding methods from Logic Class.
+ */
+
+#include <cchecker/logic.h>
+
+namespace CCHECKER {
+
+class Logic_ : public Logic {
+ public:
+ Logic_(void);
+ virtual ~Logic_(void);
+
+ // For tests only
+ void connman_callback_manual_(bool state);
+ void pkgmgr_install_manual_(const app_t &app);
+ void pkgmgr_uninstall_manual_(const app_t &app);
+ const std::list<app_t>& get_buffer_();
+
+ void reset_cnt();
+ void wait_for_worker(int installCnt, int uninstallCnt, int bufferCnt);
+
+ private:
+ int m_installCnt;
+ int m_uninstallCnt;
+ int m_bufferCnt;
+
+ void process_event(const event_t &event);
+ void app_processed();
+ std::condition_variable _m_wait_for_process;
+ std::mutex _m_mutex_wait_cv;
+};
+
+class LogicWrapper {
+public:
+ LogicWrapper() {}
+ ~LogicWrapper() { m_logic.clean(); }
+
+ error_t setup() { return m_logic.setup(); }
+ void clean() { m_logic.clean(); }
+ void connman_callback_manual_(bool state) { m_logic.connman_callback_manual_(state); }
+ void pkgmgr_install_manual_(const app_t &app) { m_logic.pkgmgr_install_manual_(app); }
+ void pkgmgr_uninstall_manual_(const app_t &app) { m_logic.pkgmgr_uninstall_manual_(app); }
+ const std::list<app_t>& get_buffer_() { return m_logic.get_buffer_(); }
+
+ void wait_for_worker(int installCnt = 0, int uninstallCnt = 0, int bufferCnt = 0) {
+ m_logic.wait_for_worker(installCnt, uninstallCnt, bufferCnt);
+ }
+
+private:
+ Logic_ m_logic;
+};
+
+} // CCHECKER
+
+#endif //CCHECKER_LOGIC__H