2 * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License
17 * @file test-helper.cpp
18 * @author Dongsun Lee (ds73.lee@samsung.com)
20 * @brief CSR API test helper
28 #include <boost/test/unit_test.hpp>
30 #include "test-common.h"
32 void ASSERT_DETECTED(csr_cs_malware_h detected, const char *e_malware_name,
33 csr_cs_severity_level_e e_severity, const char *e_detailed_url)
35 csr_cs_severity_level_e a_severity;
36 Test::ScopedCstr a_malware_name, a_detailed_url;
38 ASSERT_SUCCESS(csr_cs_malware_get_severity(detected, &a_severity));
39 ASSERT_SUCCESS(csr_cs_malware_get_name(detected, &a_malware_name.ptr));
40 ASSERT_SUCCESS(csr_cs_malware_get_detailed_url(detected, &a_detailed_url.ptr));
42 ASSERT_IF(a_severity, e_severity);
43 ASSERT_IF(a_malware_name.ptr, e_malware_name);
44 ASSERT_IF(a_detailed_url.ptr, e_detailed_url);
47 void ASSERT_DETECTED_EXT(csr_cs_malware_h detected, time_t e_timestamp,
48 const char *e_file_name, bool e_is_app, const char *e_pkg_id)
52 Test::ScopedCstr a_file_name, a_pkg_id;
54 ASSERT_SUCCESS(csr_cs_malware_get_timestamp(detected, &a_timestamp));
55 ASSERT_SUCCESS(csr_cs_malware_get_file_name(detected, &a_file_name.ptr));
56 ASSERT_SUCCESS(csr_cs_malware_is_app(detected, &a_is_app));
57 ASSERT_SUCCESS(csr_cs_malware_get_pkg_id(detected, &a_pkg_id.ptr));
59 ASSERT_IF(a_file_name.ptr, e_file_name);
60 ASSERT_IF(a_is_app, e_is_app);
61 ASSERT_IF(a_pkg_id.ptr, e_pkg_id);
63 BOOST_WARN_MESSAGE(e_timestamp <= a_timestamp,
64 "Actual detected item's time stamp is later than expected time "
65 "stamp (which is start time before scan_file maybe..). this case "
66 "should be the returned detected item comes from history which is "
67 "scanned in the past. actual time: " << a_timestamp <<
68 " expected(started) time: " << e_timestamp);
71 void ASSERT_DETECTED_HANDLE(csr_cs_malware_h expected, csr_cs_malware_h actual)
73 csr_cs_severity_level_e e_severity, a_severity;
74 Test::ScopedCstr e_malware_name, e_detailed_url, e_file_name, e_pkg_id;
75 Test::ScopedCstr a_malware_name, a_detailed_url, a_file_name, a_pkg_id;
76 time_t e_timestamp, a_timestamp;
77 bool e_is_app, a_is_app;
79 ASSERT_SUCCESS(csr_cs_malware_get_severity(expected, &e_severity));
80 ASSERT_SUCCESS(csr_cs_malware_get_name(expected, &e_malware_name.ptr));
81 ASSERT_SUCCESS(csr_cs_malware_get_detailed_url(expected, &e_detailed_url.ptr));
82 ASSERT_SUCCESS(csr_cs_malware_get_timestamp(expected, &e_timestamp));
83 ASSERT_SUCCESS(csr_cs_malware_get_file_name(expected, &e_file_name.ptr));
84 ASSERT_SUCCESS(csr_cs_malware_is_app(expected, &e_is_app));
85 ASSERT_SUCCESS(csr_cs_malware_get_pkg_id(expected, &e_pkg_id.ptr));
87 ASSERT_SUCCESS(csr_cs_malware_get_severity(actual, &a_severity));
88 ASSERT_SUCCESS(csr_cs_malware_get_name(actual, &a_malware_name.ptr));
89 ASSERT_SUCCESS(csr_cs_malware_get_detailed_url(actual, &a_detailed_url.ptr));
90 ASSERT_SUCCESS(csr_cs_malware_get_timestamp(actual, &a_timestamp));
91 ASSERT_SUCCESS(csr_cs_malware_get_file_name(actual, &a_file_name.ptr));
92 ASSERT_SUCCESS(csr_cs_malware_is_app(actual, &a_is_app));
93 ASSERT_SUCCESS(csr_cs_malware_get_pkg_id(actual, &a_pkg_id.ptr));
95 ASSERT_IF(a_severity, e_severity);
96 ASSERT_IF(a_malware_name.ptr, e_malware_name.ptr);
97 ASSERT_IF(a_detailed_url.ptr, e_detailed_url.ptr);
98 ASSERT_IF(a_file_name.ptr, e_file_name.ptr);
99 ASSERT_IF(a_is_app, e_is_app);
100 ASSERT_IF(a_pkg_id.ptr, e_pkg_id.ptr);
101 ASSERT_IF(a_timestamp, e_timestamp);
104 void ASSERT_DETECTED_IN_LIST(const std::vector<csr_cs_malware_h> &detectedList,
105 const char *file_name, const char *name,
106 csr_cs_severity_level_e severity, const char *detailed_url)
108 csr_cs_severity_level_e a_severity;
109 Test::ScopedCstr a_file_name, a_name, a_detailed_url;
111 std::vector<csr_cs_malware_h>::iterator iter;
112 for (auto &d : detectedList) {
113 ASSERT_IF(csr_cs_malware_get_file_name(d, &a_file_name.ptr), CSR_ERROR_NONE);
114 if (strcmp(file_name, a_file_name.ptr) != 0)
117 ASSERT_SUCCESS(csr_cs_malware_get_name(d, &a_name.ptr));
118 ASSERT_SUCCESS(csr_cs_malware_get_severity(d, &a_severity));
119 ASSERT_SUCCESS(csr_cs_malware_get_detailed_url(d, &a_detailed_url.ptr));
121 ASSERT_IF(name, a_name.ptr);
122 ASSERT_IF(severity, a_severity);
123 ASSERT_IF(detailed_url, a_detailed_url.ptr);
128 BOOST_REQUIRE_MESSAGE(false,
129 "Cannot find the file[" << file_name << "] in detected list.");
132 void ASSERT_DETECTED_IN_LIST_EXT(const std::vector<csr_cs_malware_h> &detectedList,
133 const char *file_name, bool is_app, const char *pkg_id)
136 Test::ScopedCstr a_file_name, a_pkg_id;
138 for (auto &d : detectedList) {
139 ASSERT_SUCCESS(csr_cs_malware_get_file_name(d, &a_file_name.ptr));
140 if (strcmp(file_name, a_file_name.ptr) != 0)
143 ASSERT_SUCCESS(csr_cs_malware_is_app(d, &a_is_app));
144 ASSERT_SUCCESS(csr_cs_malware_get_pkg_id(d, &a_pkg_id.ptr));
146 ASSERT_IF(is_app, a_is_app);
147 ASSERT_IF(pkg_id, a_pkg_id.ptr);
152 BOOST_REQUIRE_MESSAGE(false,
153 "Cannot find the file[" << file_name << "] in detected list.");