From d7254d9f4036fdb86e5a2162191f893d9596ce9c Mon Sep 17 00:00:00 2001 From: Dongsun Lee Date: Fri, 13 May 2016 11:28:16 +0900 Subject: [PATCH] add TCs for contents scanning Change-Id: Ia1da131da0aab74efec0be15995e0a8496ff36f1 Signed-off-by: Dongsun Lee --- .../resources/csret_cs_virus_signatures | 6 + packaging/csr-framework.spec | 10 + packaging/csr-test.manifest.in | 1 + packaging/csr.manifest.in | 1 + test/CMakeLists.txt | 5 + test/resources/emulator/MaliciousTpk.tpk | Bin 0 -> 59555 bytes test/resources/emulator/MaliciousWgt.wgt | Bin 0 -> 42494 bytes test/resources/maliciousapp.tpk | Bin 59156 -> 0 bytes test/resources/target/MaliciousTpk.tpk | Bin 0 -> 59525 bytes test/resources/target/MaliciousWgt.wgt | Bin 0 -> 42494 bytes test/resources/test_generic_file | 1 + test/test-api-content-screening.cpp | 726 ++++++++++++++++++++- test/test-helper.cpp | 260 ++++++++ test/test-helper.h | 42 ++ 14 files changed, 1016 insertions(+), 36 deletions(-) create mode 100644 test/resources/emulator/MaliciousTpk.tpk create mode 100644 test/resources/emulator/MaliciousWgt.wgt delete mode 100644 test/resources/maliciousapp.tpk create mode 100644 test/resources/target/MaliciousTpk.tpk create mode 100644 test/resources/target/MaliciousWgt.wgt create mode 100644 test/resources/test_generic_file create mode 100644 test/test-helper.cpp create mode 100644 test/test-helper.h diff --git a/engine/content-screening/resources/csret_cs_virus_signatures b/engine/content-screening/resources/csret_cs_virus_signatures index 989d1fd..37af007 100644 --- a/engine/content-screening/resources/csret_cs_virus_signatures +++ b/engine/content-screening/resources/csret_cs_virus_signatures @@ -17,3 +17,9 @@ severity=MEDIUM threat_type=RISKY detailed_url=http://medium.malware.com signature=RISKY_MALWARE + +name=test_generic +severity=LOW +threat_type=GENERIC +detailed_url=http://low.malware.com +signature=GENERIC_MALWARE diff --git a/packaging/csr-framework.spec b/packaging/csr-framework.spec index 8f3f640..6878fd7 100644 --- a/packaging/csr-framework.spec +++ b/packaging/csr-framework.spec @@ -80,6 +80,7 @@ License: Apache-2.0 and BSL-1.0 Group: Security/Testing BuildRequires: boost-devel BuildRequires: pkgconfig(pkgmgr-info) +BuildRequires: pkgconfig(glib-2.0) Requires: %{name} = %{version} %description test @@ -89,6 +90,14 @@ test program of csr-framework %setup -q %build + +# define build architecture +%ifarch %{ix86} +%define test_target emulator +%else +%define test_target target +%endif + %cmake . \ -DCMAKE_BUILD_TYPE=%{?build_type:%build_type}%{!?build_type:RELEASE} \ -DCMAKE_VERBOSE_MAKEFILE=ON \ @@ -106,6 +115,7 @@ test program of csr-framework -DSAMPLE_ENGINE_RO_RES_DIR:PATH=%{sample_engine_ro_res_dir} \ -DSAMPLE_ENGINE_RW_WORKING_DIR:PATH=%{sample_engine_rw_working_dir} \ -DSAMPLE_ENGINE_DIR:PATH=%{sample_engine_dir} \ + -DTEST_TARGET=%{test_target} \ -DTEST_DIR:PATH=%{test_dir} make %{?jobs:-j%jobs} diff --git a/packaging/csr-test.manifest.in b/packaging/csr-test.manifest.in index f2c2337..09f5e52 100644 --- a/packaging/csr-test.manifest.in +++ b/packaging/csr-test.manifest.in @@ -22,6 +22,7 @@ + diff --git a/packaging/csr.manifest.in b/packaging/csr.manifest.in index 07e8978..23018e6 100644 --- a/packaging/csr.manifest.in +++ b/packaging/csr.manifest.in @@ -25,6 +25,7 @@ + diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 737bb26..a03d518 100755 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -18,9 +18,13 @@ # FIND_PACKAGE(Threads REQUIRED) ADD_DEFINITIONS("-DBOOST_TEST_DYN_LINK") +ADD_DEFINITIONS("-DTEST_TARGET=\"${TEST_TARGET}\"") PKG_CHECK_MODULES(${TARGET_CSR_TEST}_DEP REQUIRED + glib-2.0 + pkgmgr + pkgmgr-info ) SET(${TARGET_CSR_TEST}_SRCS @@ -33,6 +37,7 @@ SET(${TARGET_CSR_TEST}_SRCS test-api-engine-web-protection.cpp test-main.cpp test-common.cpp + test-helper.cpp ) INCLUDE_DIRECTORIES( diff --git a/test/resources/emulator/MaliciousTpk.tpk b/test/resources/emulator/MaliciousTpk.tpk new file mode 100644 index 0000000000000000000000000000000000000000..7bce491648f24985590d8f110ab8d542ca5fa95e GIT binary patch literal 59555 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 literal 0 HcmV?d00001 diff --git a/test/resources/emulator/MaliciousWgt.wgt b/test/resources/emulator/MaliciousWgt.wgt new file mode 100644 index 0000000000000000000000000000000000000000..2dca5bbbfab7de437dd72646bee47559a36cbd9e GIT binary patch literal 42494 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 diff --git a/test/resources/target/MaliciousTpk.tpk b/test/resources/target/MaliciousTpk.tpk new file mode 100644 index 0000000000000000000000000000000000000000..8debd01b85a15bf2a40369e7e667c3ef9c93e01f GIT binary patch literal 59525 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 #include #include +#include #include #include "test-common.h" +#include "test-helper.h" #define TEST_FILE_NORMAL TEST_DIR "/test_normal_file" -#define TEST_FILE_MALWARE TEST_DIR "/test_malware_file" -#define TEST_FILE_RISKY TEST_DIR "/test_risky_file" -#define TEST_APP_ROOT TEST_DIR "/test_app" +#define TEST_FILE_HIGH TEST_DIR "/test_malware_file" +#define TEST_FILE_MEDIUM TEST_DIR "/test_risky_file" +#define TEST_FILE_LOW TEST_DIR "/test_generic_file" + +#define TEST_FILE_MEDIA "/opt/usr/media/test_malware_file" +#define TEST_FILE_TMP "/tmp/test_malware_file" +#define TEST_FILE_APP_ROOT "/opt/usr/apps" +#define TEST_FILE_NO_EXIST "/tmp/not_existing_file" + +#define TEST_WGT_PKG_ID "hFhcNcbE6K" +#define TEST_WGT_APP_ROOT TEST_FILE_APP_ROOT "/" TEST_WGT_PKG_ID +#define TEST_WGT_MAL_FILE TEST_WGT_APP_ROOT "/res/wgt/data/malicious.txt" +#define TEST_WGT_PATH TEST_DIR "/" TEST_TARGET "/MaliciousWgt.wgt" +#define TEST_WGT_TYPE "WGT" + +#define TEST_TPK_PKG_ID "org.example.malicioustpk" +#define TEST_TPK_APP_ROOT TEST_FILE_APP_ROOT "/" TEST_TPK_PKG_ID +#define TEST_TPK_MAL_FILE TEST_TPK_APP_ROOT "/shared/res/malicious.txt" +#define TEST_TPK_PATH TEST_DIR "/" TEST_TARGET "/MaliciousTpk.tpk" +#define TEST_TPK_TYPE "TPK" + +#define MALWARE_HIGH_NAME "test_malware" +#define MALWARE_HIGH_SEVERITY CSR_CS_SEVERITY_HIGH +#define MALWARE_HIGH_DETAILED_URL "http://high.malware.com" +#define MALWARE_HIGH_SIGNATURE "X5O!P%@AP[4\\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*" + +#define MALWARE_MEDIUM_NAME "test_risk" +#define MALWARE_MEDIUM_SEVERITY CSR_CS_SEVERITY_MEDIUM +#define MALWARE_MEDIUM_DETAILED_URL "http://medium.malware.com" +#define MALWARE_MEDIUM_SIGNATURE "RISKY_MALWARE" + +#define MALWARE_LOW_NAME "test_generic" +#define MALWARE_LOW_SEVERITY CSR_CS_SEVERITY_LOW +#define MALWARE_LOW_DETAILED_URL "http://low.malware.com" +#define MALWARE_LOW_SIGNATURE "GENERIC_MALWARE" + BOOST_AUTO_TEST_SUITE(API_CONTENT_SCREENING) @@ -88,7 +123,7 @@ BOOST_AUTO_TEST_CASE(set_values_to_context_negative) EXCEPTION_GUARD_END } -BOOST_AUTO_TEST_CASE(scan_data) +BOOST_AUTO_TEST_CASE(scan_data_normal) { EXCEPTION_GUARD_START @@ -97,14 +132,95 @@ BOOST_AUTO_TEST_CASE(scan_data) csr_cs_detected_h detected; unsigned char data[100] = {0, }; + // no malware detected ASSERT_IF(csr_cs_scan_data(context, data, sizeof(data), &detected), CSR_ERROR_NONE); - // no malware detected CHECK_IS_NULL(detected); EXCEPTION_GUARD_END } +BOOST_AUTO_TEST_CASE(scan_data_high) +{ + EXCEPTION_GUARD_START + + auto c = Test::Context(); + auto context = c.get(); + csr_cs_detected_h detected; + unsigned char data[100] = {0, }; + time_t start_time = time(nullptr); + + // severity high detected + memcpy(data, MALWARE_HIGH_SIGNATURE, strlen(MALWARE_HIGH_SIGNATURE)); + ASSERT_IF(csr_cs_scan_data(context, data, sizeof(data), &detected), CSR_ERROR_NONE); + + CHECK_IS_NOT_NULL(detected); + ASSERT_DETECTED(detected, MALWARE_HIGH_NAME, MALWARE_HIGH_SEVERITY, MALWARE_HIGH_DETAILED_URL); + ASSERT_DETECTED_EXT(detected, start_time, nullptr, false, nullptr); + + EXCEPTION_GUARD_END +} + +BOOST_AUTO_TEST_CASE(scan_data_medium) +{ + EXCEPTION_GUARD_START + + auto c = Test::Context(); + auto context = c.get(); + csr_cs_detected_h detected; + unsigned char data[100] = {0, }; + time_t start_time = time(nullptr); + + // severity medium detected + memcpy(data, MALWARE_MEDIUM_SIGNATURE, strlen(MALWARE_MEDIUM_SIGNATURE)); + ASSERT_IF(csr_cs_scan_data(context, data, sizeof(data), &detected), CSR_ERROR_NONE); + + CHECK_IS_NOT_NULL(detected); + ASSERT_DETECTED(detected, MALWARE_MEDIUM_NAME, MALWARE_MEDIUM_SEVERITY, MALWARE_MEDIUM_DETAILED_URL); + ASSERT_DETECTED_EXT(detected, start_time, nullptr, false, nullptr); + + EXCEPTION_GUARD_END +} + +BOOST_AUTO_TEST_CASE(scan_data_low) +{ + EXCEPTION_GUARD_START + + auto c = Test::Context(); + auto context = c.get(); + csr_cs_detected_h detected; + unsigned char data[100] = {0, }; + time_t start_time = time(nullptr); + + // severity low detected + memcpy(data, MALWARE_LOW_SIGNATURE, strlen(MALWARE_LOW_SIGNATURE)); + ASSERT_IF(csr_cs_scan_data(context, data, sizeof(data), &detected), CSR_ERROR_NONE); + + CHECK_IS_NOT_NULL(detected); + ASSERT_DETECTED(detected, MALWARE_LOW_NAME, MALWARE_LOW_SEVERITY, MALWARE_LOW_DETAILED_URL); + ASSERT_DETECTED_EXT(detected, start_time, nullptr, false, nullptr); + + EXCEPTION_GUARD_END +} + +BOOST_AUTO_TEST_CASE(scan_data_negative) +{ + EXCEPTION_GUARD_START + + auto c = Test::Context(); + auto context = c.get(); + csr_cs_detected_h detected; + unsigned char data[100] = {0, }; + + ASSERT_IF(csr_cs_scan_data(nullptr, data, sizeof(data), &detected), CSR_ERROR_INVALID_HANDLE); + + ASSERT_IF(csr_cs_scan_data(context, nullptr, sizeof(data), &detected), CSR_ERROR_INVALID_PARAMETER); + + ASSERT_IF(csr_cs_scan_data(context, data, sizeof(data), nullptr), CSR_ERROR_INVALID_PARAMETER); + + EXCEPTION_GUARD_END +} + BOOST_AUTO_TEST_CASE(scan_file_normal) { EXCEPTION_GUARD_START @@ -121,32 +237,181 @@ BOOST_AUTO_TEST_CASE(scan_file_normal) EXCEPTION_GUARD_END } -BOOST_AUTO_TEST_CASE(scan_file_malware) +BOOST_AUTO_TEST_CASE(scan_file_high) { EXCEPTION_GUARD_START auto c = Test::Context(); auto context = c.get(); csr_cs_detected_h detected; + time_t start_time = time(nullptr); + + touch_file(TEST_FILE_HIGH); - ASSERT_IF(csr_cs_scan_file(context, TEST_FILE_MALWARE, &detected), CSR_ERROR_NONE); + ASSERT_IF(csr_cs_scan_file(context, TEST_FILE_HIGH, &detected), CSR_ERROR_NONE); CHECK_IS_NOT_NULL(detected); + ASSERT_DETECTED(detected, MALWARE_HIGH_NAME, MALWARE_HIGH_SEVERITY, MALWARE_HIGH_DETAILED_URL); + ASSERT_DETECTED_EXT(detected, start_time, TEST_FILE_HIGH, false, nullptr); EXCEPTION_GUARD_END } -BOOST_AUTO_TEST_CASE(scan_file_risky) +BOOST_AUTO_TEST_CASE(scan_file_medium) { EXCEPTION_GUARD_START auto c = Test::Context(); auto context = c.get(); csr_cs_detected_h detected; + time_t start_time = time(nullptr); - ASSERT_IF(csr_cs_scan_file(context, TEST_FILE_RISKY, &detected), CSR_ERROR_NONE); + touch_file(TEST_FILE_MEDIUM); + + ASSERT_IF(csr_cs_scan_file(context, TEST_FILE_MEDIUM, &detected), CSR_ERROR_NONE); CHECK_IS_NOT_NULL(detected); + ASSERT_DETECTED(detected, MALWARE_MEDIUM_NAME, MALWARE_MEDIUM_SEVERITY, MALWARE_MEDIUM_DETAILED_URL); + ASSERT_DETECTED_EXT(detected, start_time, TEST_FILE_MEDIUM, false, nullptr); + + EXCEPTION_GUARD_END +} + +BOOST_AUTO_TEST_CASE(scan_file_low) +{ + EXCEPTION_GUARD_START + + auto c = Test::Context(); + auto context = c.get(); + csr_cs_detected_h detected; + time_t start_time = time(nullptr); + + touch_file(TEST_FILE_LOW); + + ASSERT_IF(csr_cs_scan_file(context, TEST_FILE_LOW, &detected), CSR_ERROR_NONE); + + CHECK_IS_NOT_NULL(detected); + ASSERT_DETECTED(detected, MALWARE_LOW_NAME, MALWARE_LOW_SEVERITY, MALWARE_LOW_DETAILED_URL); + ASSERT_DETECTED_EXT(detected, start_time, TEST_FILE_LOW, false, nullptr); + + EXCEPTION_GUARD_END +} + +BOOST_AUTO_TEST_CASE(scan_file_media_dir) +{ + EXCEPTION_GUARD_START + + auto c = Test::Context(); + auto context = c.get(); + csr_cs_detected_h detected; + time_t start_time = time(nullptr); + + copy_file(TEST_FILE_HIGH, TEST_FILE_MEDIA); + + ASSERT_IF(csr_cs_scan_file(context, TEST_FILE_MEDIA, &detected), CSR_ERROR_NONE); + + CHECK_IS_NOT_NULL(detected); + ASSERT_DETECTED(detected, MALWARE_HIGH_NAME, MALWARE_HIGH_SEVERITY, MALWARE_HIGH_DETAILED_URL); + ASSERT_DETECTED_EXT(detected, start_time, TEST_FILE_MEDIA, false, nullptr); + + EXCEPTION_GUARD_END +} + +BOOST_AUTO_TEST_CASE(scan_file_tmp_dir) +{ + EXCEPTION_GUARD_START + + auto c = Test::Context(); + auto context = c.get(); + csr_cs_detected_h detected; + time_t start_time = time(nullptr); + + copy_file(TEST_FILE_HIGH, TEST_FILE_TMP); + + ASSERT_IF(csr_cs_scan_file(context, TEST_FILE_TMP, &detected), CSR_ERROR_NONE); + + CHECK_IS_NOT_NULL(detected); + ASSERT_DETECTED(detected, MALWARE_HIGH_NAME, MALWARE_HIGH_SEVERITY, MALWARE_HIGH_DETAILED_URL); + ASSERT_DETECTED_EXT(detected, start_time, TEST_FILE_TMP, false, nullptr); + + EXCEPTION_GUARD_END +} + +// TODO : Add TC for different directories +BOOST_AUTO_TEST_CASE(scan_file_wgt_dir) +{ + EXCEPTION_GUARD_START + + auto c = Test::Context(); + auto context = c.get(); + csr_cs_detected_h detected; + time_t start_time = time(nullptr); + + uninstall_app(TEST_WGT_PKG_ID); + BOOST_REQUIRE_MESSAGE(install_app(TEST_WGT_PATH, TEST_WGT_TYPE) == true, "FAIL TO INSTALL."); + + ASSERT_IF(csr_cs_scan_file(context, TEST_WGT_MAL_FILE, &detected), CSR_ERROR_NONE); + + CHECK_IS_NOT_NULL(detected); + ASSERT_DETECTED(detected, MALWARE_HIGH_NAME, MALWARE_HIGH_SEVERITY, MALWARE_HIGH_DETAILED_URL); + ASSERT_DETECTED_EXT(detected, start_time, TEST_WGT_APP_ROOT, true, TEST_WGT_PKG_ID); + + BOOST_REQUIRE_MESSAGE(uninstall_app(TEST_WGT_PKG_ID) == true, "FAIL TO UNINSTALL."); + + EXCEPTION_GUARD_END +} + +// TODO : Add TC for different directories +BOOST_AUTO_TEST_CASE(scan_file_tpk_dir) +{ + EXCEPTION_GUARD_START + + auto c = Test::Context(); + auto context = c.get(); + csr_cs_detected_h detected; + time_t start_time = time(nullptr); + + uninstall_app(TEST_TPK_PKG_ID); + BOOST_REQUIRE_MESSAGE(install_app(TEST_TPK_PATH, TEST_TPK_TYPE) == true, "FAIL TO INSTALL."); + + ASSERT_IF(csr_cs_scan_file(context, TEST_TPK_MAL_FILE, &detected), CSR_ERROR_NONE); + + CHECK_IS_NOT_NULL(detected); + ASSERT_DETECTED(detected, MALWARE_HIGH_NAME, MALWARE_HIGH_SEVERITY, MALWARE_HIGH_DETAILED_URL); + ASSERT_DETECTED_EXT(detected, start_time, TEST_TPK_APP_ROOT, true, TEST_TPK_PKG_ID); + + BOOST_REQUIRE_MESSAGE(uninstall_app(TEST_TPK_PKG_ID) == true, "FAIL TO UNINSTALL."); + + EXCEPTION_GUARD_END +} + +BOOST_AUTO_TEST_CASE(scan_file_invalid_params) +{ + + EXCEPTION_GUARD_START + + auto c = Test::Context(); + auto context = c.get(); + csr_cs_detected_h detected; + + ASSERT_IF(csr_cs_scan_file(nullptr, TEST_FILE_NORMAL, &detected), CSR_ERROR_INVALID_HANDLE); + + ASSERT_IF(csr_cs_scan_file(context, nullptr, &detected), CSR_ERROR_INVALID_PARAMETER); + + ASSERT_IF(csr_cs_scan_file(context, TEST_FILE_NORMAL, nullptr), CSR_ERROR_INVALID_PARAMETER); + + EXCEPTION_GUARD_END +} + +BOOST_AUTO_TEST_CASE(scan_file_not_existing_file) +{ + EXCEPTION_GUARD_START + + auto c = Test::Context(); + auto context = c.get(); + csr_cs_detected_h detected; + + ASSERT_IF(csr_cs_scan_file(context, TEST_FILE_NO_EXIST, &detected), CSR_ERROR_FILE_DO_NOT_EXIST); EXCEPTION_GUARD_END } @@ -158,13 +423,45 @@ BOOST_AUTO_TEST_CASE(get_detected_malware) auto c = Test::Context(); auto context = c.get(); csr_cs_detected_h detected; + csr_cs_detected_h stored; - ASSERT_IF(csr_cs_scan_file(context, TEST_FILE_RISKY, &detected), CSR_ERROR_NONE); + ASSERT_IF(csr_cs_scan_file(context, TEST_FILE_MEDIUM, &detected), CSR_ERROR_NONE); CHECK_IS_NOT_NULL(detected); - ASSERT_IF(csr_cs_get_detected_malware(context, TEST_FILE_RISKY, &detected), + ASSERT_IF(csr_cs_get_detected_malware(context, TEST_FILE_MEDIUM, &stored), CSR_ERROR_NONE); - CHECK_IS_NOT_NULL(detected); + CHECK_IS_NOT_NULL(stored); + + ASSERT_DETECTED_HANDLE(detected, stored); + + EXCEPTION_GUARD_END +} + +BOOST_AUTO_TEST_CASE(get_detected_malware_invalid_param) +{ + EXCEPTION_GUARD_START + + auto c = Test::Context(); + auto context = c.get(); + csr_cs_detected_h stored; + + ASSERT_IF(csr_cs_get_detected_malware(nullptr, TEST_FILE_MEDIUM, &stored), CSR_ERROR_INVALID_HANDLE); + ASSERT_IF(csr_cs_get_detected_malware(context, nullptr, &stored), CSR_ERROR_INVALID_PARAMETER); + ASSERT_IF(csr_cs_get_detected_malware(context, TEST_FILE_MEDIUM, nullptr), CSR_ERROR_INVALID_PARAMETER); + + EXCEPTION_GUARD_END; +} + +BOOST_AUTO_TEST_CASE(get_detected_malware_not_existing_file) +{ + EXCEPTION_GUARD_START + + auto c = Test::Context(); + auto context = c.get(); + csr_cs_detected_h stored; + + ASSERT_IF(csr_cs_get_detected_malware(context, TEST_FILE_NO_EXIST, &stored), CSR_ERROR_NONE); + CHECK_IS_NULL(stored); EXCEPTION_GUARD_END } @@ -176,25 +473,90 @@ BOOST_AUTO_TEST_CASE(get_detected_malwares) auto c = Test::Context(); auto context = c.get(); csr_cs_detected_list_h detected_list; - csr_cs_detected_h detected; + csr_cs_detected_h detected_high, detected_medium; + csr_cs_detected_h stored; + const char *file_path_actual; size_t cnt = 0; + size_t idx = 0; + size_t compared_cnt = 0; const char *dirs[1] = { TEST_DIR }; - ASSERT_IF(csr_cs_scan_file(context, TEST_FILE_MALWARE, &detected), CSR_ERROR_NONE); - CHECK_IS_NOT_NULL(detected); - ASSERT_IF(csr_cs_scan_file(context, TEST_FILE_RISKY, &detected), CSR_ERROR_NONE); - CHECK_IS_NOT_NULL(detected); + ASSERT_IF(csr_cs_scan_file(context, TEST_FILE_HIGH, &detected_high), CSR_ERROR_NONE); + CHECK_IS_NOT_NULL(detected_high); + ASSERT_IF(csr_cs_scan_file(context, TEST_FILE_MEDIUM, &detected_medium), CSR_ERROR_NONE); + CHECK_IS_NOT_NULL(detected_medium); ASSERT_IF(csr_cs_get_detected_malwares(context, dirs, sizeof(dirs) / sizeof(const char *), &detected_list, &cnt), CSR_ERROR_NONE); CHECK_IS_NOT_NULL(detected_list); - BOOST_REQUIRE_MESSAGE(cnt >= 2, "Detected malware count is invalid. " - "expected: >= 2, cnt: " << cnt); + for (idx = 0; idx < cnt; idx++) { + ASSERT_IF(csr_cs_dlist_get_detected(detected_list, idx, &stored), CSR_ERROR_NONE); + CHECK_IS_NOT_NULL(stored); + ASSERT_IF(csr_cs_detected_get_file_name(stored, &file_path_actual), CSR_ERROR_NONE); + if (strcmp(TEST_FILE_HIGH, file_path_actual) == 0) { + ASSERT_DETECTED_HANDLE(detected_high, stored); + compared_cnt++; + } else if (strcmp(TEST_FILE_MEDIUM, file_path_actual) == 0) { + ASSERT_DETECTED_HANDLE(detected_medium, stored); + compared_cnt++; + } else { + continue; + } + } + + BOOST_REQUIRE_MESSAGE(compared_cnt == 2, "Detected malware count is invalid. " + "expected: == 2, cnt: " << compared_cnt); + + EXCEPTION_GUARD_END +} + +BOOST_AUTO_TEST_CASE(get_detected_malwares_invalid_params) +{ + EXCEPTION_GUARD_START + + auto c = Test::Context(); + auto context = c.get(); + csr_cs_detected_list_h detected_list; + size_t cnt = 0; + + const char *dirs[1] = { + TEST_DIR + }; + + ASSERT_IF(csr_cs_get_detected_malwares(nullptr, dirs, sizeof(dirs) / sizeof(const char *), + &detected_list, &cnt), CSR_ERROR_INVALID_HANDLE); + ASSERT_IF(csr_cs_get_detected_malwares(context, nullptr, sizeof(dirs) / sizeof(const char *), + &detected_list, &cnt), CSR_ERROR_INVALID_PARAMETER); + ASSERT_IF(csr_cs_get_detected_malwares(context, dirs, sizeof(dirs) / sizeof(const char *), + nullptr, &cnt), CSR_ERROR_INVALID_PARAMETER); + ASSERT_IF(csr_cs_get_detected_malwares(context, dirs, sizeof(dirs) / sizeof(const char *), + &detected_list, nullptr), CSR_ERROR_INVALID_PARAMETER); + + EXCEPTION_GUARD_END +} + +BOOST_AUTO_TEST_CASE(get_detected_malwares_not_existing_dir) +{ + EXCEPTION_GUARD_START + + auto c = Test::Context(); + auto context = c.get(); + csr_cs_detected_list_h detected_list; + size_t cnt = 0; + + const char *dirs[1] = { + TEST_FILE_NO_EXIST + }; + + ASSERT_IF(csr_cs_get_detected_malwares(context, dirs, sizeof(dirs) / sizeof(const char *), + &detected_list, &cnt), CSR_ERROR_NONE); + + ASSERT_IF(cnt, static_cast(0)); EXCEPTION_GUARD_END } @@ -205,18 +567,49 @@ BOOST_AUTO_TEST_CASE(get_ignored_malware) auto c = Test::Context(); auto context = c.get(); - csr_cs_detected_h detected; + csr_cs_detected_h detected, stored; - ASSERT_IF(csr_cs_scan_file(context, TEST_FILE_MALWARE, &detected), CSR_ERROR_NONE); + ASSERT_IF(csr_cs_scan_file(context, TEST_FILE_HIGH, &detected), CSR_ERROR_NONE); CHECK_IS_NOT_NULL(detected); ASSERT_IF(csr_cs_judge_detected_malware(context, detected, CSR_CS_ACTION_IGNORE), CSR_ERROR_NONE); - ASSERT_IF(csr_cs_get_ignored_malware(context, TEST_FILE_MALWARE, &detected), + ASSERT_IF(csr_cs_get_ignored_malware(context, TEST_FILE_HIGH, &stored), CSR_ERROR_NONE); - CHECK_IS_NOT_NULL(detected); + CHECK_IS_NOT_NULL(stored); + + ASSERT_DETECTED_HANDLE(detected, stored); + + EXCEPTION_GUARD_END +} + +BOOST_AUTO_TEST_CASE(get_ignored_malware_invalid_param) +{ + EXCEPTION_GUARD_START + + auto c = Test::Context(); + auto context = c.get(); + csr_cs_detected_h stored; + + ASSERT_IF(csr_cs_get_ignored_malware(nullptr, TEST_FILE_MEDIUM, &stored), CSR_ERROR_INVALID_HANDLE); + ASSERT_IF(csr_cs_get_ignored_malware(context, nullptr, &stored), CSR_ERROR_INVALID_PARAMETER); + ASSERT_IF(csr_cs_get_ignored_malware(context, TEST_FILE_MEDIUM, nullptr), CSR_ERROR_INVALID_PARAMETER); + + EXCEPTION_GUARD_END +} + +BOOST_AUTO_TEST_CASE(get_ignored_malware_not_existing_file) +{ + EXCEPTION_GUARD_START + + auto c = Test::Context(); + auto context = c.get(); + csr_cs_detected_h stored; + + ASSERT_IF(csr_cs_get_ignored_malware(context, TEST_FILE_NO_EXIST, &stored), CSR_ERROR_NONE); + CHECK_IS_NULL(stored); EXCEPTION_GUARD_END } @@ -228,29 +621,93 @@ BOOST_AUTO_TEST_CASE(get_ignored_malwares) auto c = Test::Context(); auto context = c.get(); csr_cs_detected_list_h ignored_list; - csr_cs_detected_h detected; + csr_cs_detected_h detected_high, detected_medium, stored; size_t cnt = 0; + size_t idx = 0; + size_t compared_cnt = 0; + const char *file_path_actual; const char *dirs[1] = { TEST_DIR }; - ASSERT_IF(csr_cs_scan_file(context, TEST_FILE_MALWARE, &detected), + ASSERT_IF(csr_cs_scan_file(context, TEST_FILE_HIGH, &detected_high), CSR_ERROR_NONE); - CHECK_IS_NOT_NULL(detected); - ASSERT_IF(csr_cs_judge_detected_malware(context, detected, CSR_CS_ACTION_IGNORE), + CHECK_IS_NOT_NULL(detected_high); + ASSERT_IF(csr_cs_judge_detected_malware(context, detected_high, CSR_CS_ACTION_IGNORE), CSR_ERROR_NONE); - ASSERT_IF(csr_cs_scan_file(context, TEST_FILE_RISKY, &detected), + ASSERT_IF(csr_cs_scan_file(context, TEST_FILE_MEDIUM, &detected_medium), CSR_ERROR_NONE); - CHECK_IS_NOT_NULL(detected); - ASSERT_IF(csr_cs_judge_detected_malware(context, detected, CSR_CS_ACTION_IGNORE), + CHECK_IS_NOT_NULL(detected_medium); + ASSERT_IF(csr_cs_judge_detected_malware(context, detected_medium, CSR_CS_ACTION_IGNORE), CSR_ERROR_NONE); - ASSERT_IF(csr_cs_get_ignored_malwares(context, dirs, - sizeof(dirs) / sizeof(const char *), + ASSERT_IF(csr_cs_get_ignored_malwares(context, dirs, sizeof(dirs) / sizeof(const char *), &ignored_list, &cnt), CSR_ERROR_NONE); CHECK_IS_NOT_NULL(ignored_list); - ASSERT_IF(cnt, static_cast(2)); + + for (idx = 0; idx < cnt; idx++) { + ASSERT_IF(csr_cs_dlist_get_detected(ignored_list, idx, &stored), CSR_ERROR_NONE); + CHECK_IS_NOT_NULL(stored); + ASSERT_IF(csr_cs_detected_get_file_name(stored, &file_path_actual), CSR_ERROR_NONE); + if (strcmp(TEST_FILE_HIGH, file_path_actual) == 0) { + ASSERT_DETECTED_HANDLE(detected_high, stored); + compared_cnt++; + } else if (strcmp(TEST_FILE_MEDIUM, file_path_actual) == 0) { + ASSERT_DETECTED_HANDLE(detected_medium, stored); + compared_cnt++; + } else { + continue; + } + } + + ASSERT_IF(compared_cnt, static_cast(2)); + + EXCEPTION_GUARD_END +} + +BOOST_AUTO_TEST_CASE(get_ignored_malwares_invalid_params) +{ + EXCEPTION_GUARD_START + + auto c = Test::Context(); + auto context = c.get(); + csr_cs_detected_list_h ignored_list; + size_t cnt = 0; + + const char *dirs[1] = { + TEST_DIR + }; + + ASSERT_IF(csr_cs_get_ignored_malwares(nullptr, dirs, sizeof(dirs) / sizeof(const char *), + &ignored_list, &cnt), CSR_ERROR_INVALID_HANDLE); + ASSERT_IF(csr_cs_get_ignored_malwares(context, nullptr, sizeof(dirs) / sizeof(const char *), + &ignored_list, &cnt), CSR_ERROR_INVALID_PARAMETER); + ASSERT_IF(csr_cs_get_ignored_malwares(context, dirs, sizeof(dirs) / sizeof(const char *), + nullptr, &cnt), CSR_ERROR_INVALID_PARAMETER); + ASSERT_IF(csr_cs_get_ignored_malwares(context, dirs, sizeof(dirs) / sizeof(const char *), + &ignored_list, nullptr), CSR_ERROR_INVALID_PARAMETER); + + EXCEPTION_GUARD_END +} + +BOOST_AUTO_TEST_CASE(get_ignored_malwares_not_existing_dir) +{ + EXCEPTION_GUARD_START + + auto c = Test::Context(); + auto context = c.get(); + csr_cs_detected_list_h ignored_list; + size_t cnt = 0; + + const char *dirs[1] = { + TEST_FILE_NO_EXIST + }; + + ASSERT_IF(csr_cs_get_ignored_malwares(context, dirs, sizeof(dirs) / sizeof(const char *), + &ignored_list, &cnt), CSR_ERROR_NONE); + + ASSERT_IF(cnt, static_cast(0)); EXCEPTION_GUARD_END } @@ -261,12 +718,209 @@ BOOST_AUTO_TEST_CASE(judge_detected_malware) auto c = Test::Context(); auto context = c.get(); + csr_cs_detected_h detected, stored; + + // remove earlier test results + copy_file(TEST_FILE_HIGH, TEST_FILE_MEDIA); + ASSERT_IF(csr_cs_scan_file(context, TEST_FILE_MEDIA, &detected), CSR_ERROR_NONE); + csr_cs_judge_detected_malware(context, detected, CSR_CS_ACTION_REMOVE); + copy_file(TEST_FILE_HIGH, TEST_FILE_MEDIA); + + // store detected malware + ASSERT_IF(csr_cs_scan_file(context, TEST_FILE_MEDIA, &detected), CSR_ERROR_NONE); + CHECK_IS_NOT_NULL(detected); + + ASSERT_IF(csr_cs_get_detected_malware(context, TEST_FILE_MEDIA, &stored), CSR_ERROR_NONE); + CHECK_IS_NOT_NULL(stored); + + ASSERT_IF(csr_cs_get_ignored_malware(context, TEST_FILE_MEDIA, &stored), CSR_ERROR_NONE); + CHECK_IS_NULL(stored); + + // INGORE + ASSERT_IF(csr_cs_judge_detected_malware(context, detected, CSR_CS_ACTION_IGNORE), CSR_ERROR_NONE); + + ASSERT_IF(csr_cs_get_detected_malware(context, TEST_FILE_MEDIA, &stored), CSR_ERROR_NONE); + CHECK_IS_NULL(stored); + + ASSERT_IF(csr_cs_get_ignored_malware(context, TEST_FILE_MEDIA, &stored), CSR_ERROR_NONE); + CHECK_IS_NOT_NULL(stored); + + // UNIGNORE + ASSERT_IF(csr_cs_judge_detected_malware(context, detected, CSR_CS_ACTION_UNIGNORE), CSR_ERROR_NONE); + + ASSERT_IF(csr_cs_get_detected_malware(context, TEST_FILE_MEDIA, &stored), CSR_ERROR_NONE); + CHECK_IS_NOT_NULL(stored); + + ASSERT_IF(csr_cs_get_ignored_malware(context, TEST_FILE_MEDIA, &stored), CSR_ERROR_NONE); + CHECK_IS_NULL(stored); + + // REMOVE + ASSERT_IF(csr_cs_judge_detected_malware(context, detected, CSR_CS_ACTION_REMOVE), CSR_ERROR_NONE); + + ASSERT_IF(csr_cs_get_detected_malware(context, TEST_FILE_MEDIA, &stored), CSR_ERROR_NONE); + CHECK_IS_NULL(stored); + + ASSERT_IF(csr_cs_get_ignored_malware(context, TEST_FILE_MEDIA, &stored), CSR_ERROR_NONE); + CHECK_IS_NULL(stored); + + EXCEPTION_GUARD_END +} + +BOOST_AUTO_TEST_CASE(judge_detected_malware_ignored_rescan) +{ + EXCEPTION_GUARD_START + + auto c = Test::Context(); + auto context = c.get(); + csr_cs_detected_h detected, stored; + + // remove earlier test results + copy_file(TEST_FILE_HIGH, TEST_FILE_MEDIA); + ASSERT_IF(csr_cs_scan_file(context, TEST_FILE_MEDIA, &detected), CSR_ERROR_NONE); + csr_cs_judge_detected_malware(context, detected, CSR_CS_ACTION_REMOVE); + copy_file(TEST_FILE_HIGH, TEST_FILE_MEDIA); + + // store detected malware + ASSERT_IF(csr_cs_scan_file(context, TEST_FILE_MEDIA, &detected), CSR_ERROR_NONE); + CHECK_IS_NOT_NULL(detected); + + // ignore + ASSERT_IF(csr_cs_judge_detected_malware(context, detected, CSR_CS_ACTION_IGNORE), CSR_ERROR_NONE); + + // rescan + ASSERT_IF(csr_cs_scan_file(context, TEST_FILE_MEDIA, &detected), CSR_ERROR_NONE); + CHECK_IS_NOT_NULL(detected); + + ASSERT_IF(csr_cs_get_detected_malware(context, TEST_FILE_MEDIA, &stored), CSR_ERROR_NONE); + CHECK_IS_NULL(stored); + + ASSERT_IF(csr_cs_get_ignored_malware(context, TEST_FILE_MEDIA, &stored), CSR_ERROR_NONE); + CHECK_IS_NOT_NULL(stored); + + EXCEPTION_GUARD_END +} + +BOOST_AUTO_TEST_CASE(judge_detected_malware_remove_file) +{ + EXCEPTION_GUARD_START + + auto c = Test::Context(); + auto context = c.get(); + csr_cs_detected_h detected, stored; + + // remove earlier test results + copy_file(TEST_FILE_HIGH, TEST_FILE_MEDIA); + ASSERT_IF(csr_cs_scan_file(context, TEST_FILE_MEDIA, &detected), CSR_ERROR_NONE); + csr_cs_judge_detected_malware(context, detected, CSR_CS_ACTION_REMOVE); + copy_file(TEST_FILE_HIGH, TEST_FILE_MEDIA); + + // store detected malware + ASSERT_IF(csr_cs_scan_file(context, TEST_FILE_MEDIA, &detected), CSR_ERROR_NONE); + CHECK_IS_NOT_NULL(detected); + + // remove detected malware file + ASSERT_IF(csr_cs_judge_detected_malware(context, detected, CSR_CS_ACTION_REMOVE), CSR_ERROR_NONE); + + ASSERT_IF(csr_cs_get_detected_malware(context, TEST_FILE_MEDIA, &stored), CSR_ERROR_NONE); + CHECK_IS_NULL(stored); + + ASSERT_IF(csr_cs_get_ignored_malware(context, TEST_FILE_MEDIA, &stored), CSR_ERROR_NONE); + CHECK_IS_NULL(stored); + + ASSERT_IF(is_file_exist(TEST_FILE_MEDIA), false); + + // make ignored + copy_file(TEST_FILE_HIGH, TEST_FILE_MEDIA); + ASSERT_IF(csr_cs_scan_file(context, TEST_FILE_MEDIA, &detected), CSR_ERROR_NONE); + ASSERT_IF(csr_cs_judge_detected_malware(context, detected, CSR_CS_ACTION_IGNORE), CSR_ERROR_NONE); + + // remove ignored malware file + ASSERT_IF(csr_cs_judge_detected_malware(context, detected, CSR_CS_ACTION_REMOVE), CSR_ERROR_NONE); + + ASSERT_IF(csr_cs_judge_detected_malware(context, detected, CSR_CS_ACTION_REMOVE), CSR_ERROR_NONE); + + ASSERT_IF(csr_cs_get_detected_malware(context, TEST_FILE_MEDIA, &stored), CSR_ERROR_NONE); + CHECK_IS_NULL(stored); + + ASSERT_IF(csr_cs_get_ignored_malware(context, TEST_FILE_MEDIA, &stored), CSR_ERROR_NONE); + CHECK_IS_NULL(stored); + + ASSERT_IF(is_file_exist(TEST_FILE_MEDIA), false); + + // remove not existing file + copy_file(TEST_FILE_HIGH, TEST_FILE_MEDIA); + ASSERT_IF(csr_cs_scan_file(context, TEST_FILE_MEDIA, &detected), CSR_ERROR_NONE); + ASSERT_IF(csr_cs_judge_detected_malware(context, detected, CSR_CS_ACTION_REMOVE), CSR_ERROR_NONE); + + ASSERT_IF(csr_cs_judge_detected_malware(context, detected, CSR_CS_ACTION_REMOVE), + CSR_ERROR_FILE_DO_NOT_EXIST); + + EXCEPTION_GUARD_END +} + +BOOST_AUTO_TEST_CASE(judge_detected_malware_remove_wgt) +{ + EXCEPTION_GUARD_START + + auto c = Test::Context(); + auto context = c.get(); csr_cs_detected_h detected; - ASSERT_IF(csr_cs_scan_file(context, TEST_FILE_MALWARE, &detected), CSR_ERROR_NONE); + // remove old test data + uninstall_app(TEST_WGT_PKG_ID); + BOOST_REQUIRE_MESSAGE(install_app(TEST_WGT_PATH, TEST_WGT_TYPE) == true, "FAIL TO INSTALL."); + + // remove detected malware file + ASSERT_IF(csr_cs_scan_file(context, TEST_WGT_MAL_FILE, &detected), CSR_ERROR_NONE); CHECK_IS_NOT_NULL(detected); - ASSERT_IF(csr_cs_judge_detected_malware(context, detected, CSR_CS_ACTION_UNIGNORE), - CSR_ERROR_NONE); + + ASSERT_IF(csr_cs_judge_detected_malware(context, detected, CSR_CS_ACTION_REMOVE), CSR_ERROR_NONE); + + ASSERT_IF(is_app_exist(TEST_WGT_PKG_ID), false); + + EXCEPTION_GUARD_END +} + +BOOST_AUTO_TEST_CASE(judge_detected_malware_remove_tpk) +{ + EXCEPTION_GUARD_START + + auto c = Test::Context(); + auto context = c.get(); + csr_cs_detected_h detected; + + // remove old test data + uninstall_app(TEST_TPK_PKG_ID); + BOOST_REQUIRE_MESSAGE(install_app(TEST_TPK_PATH, TEST_TPK_TYPE) == true, "FAIL TO INSTALL."); + + // remove detected malware file + ASSERT_IF(csr_cs_scan_file(context, TEST_TPK_MAL_FILE, &detected), CSR_ERROR_NONE); + CHECK_IS_NOT_NULL(detected); + + ASSERT_IF(csr_cs_judge_detected_malware(context, detected, CSR_CS_ACTION_REMOVE), CSR_ERROR_NONE); + + ASSERT_IF(is_app_exist(TEST_TPK_PKG_ID), false); + + EXCEPTION_GUARD_END +} + +BOOST_AUTO_TEST_CASE(judge_detected_malware_invalid_params) +{ + EXCEPTION_GUARD_START + + auto c = Test::Context(); + auto context = c.get(); + csr_cs_detected_h detected; + + ASSERT_IF(csr_cs_scan_file(context, TEST_FILE_HIGH, &detected), CSR_ERROR_NONE); + CHECK_IS_NOT_NULL(detected); + + ASSERT_IF(csr_cs_judge_detected_malware(nullptr, detected, CSR_CS_ACTION_REMOVE), + CSR_ERROR_INVALID_HANDLE); + ASSERT_IF(csr_cs_judge_detected_malware(context, nullptr, CSR_CS_ACTION_REMOVE), + CSR_ERROR_INVALID_PARAMETER); + ASSERT_IF(csr_cs_judge_detected_malware(context, detected, static_cast(-1)), + CSR_ERROR_INVALID_PARAMETER); EXCEPTION_GUARD_END } diff --git a/test/test-helper.cpp b/test/test-helper.cpp new file mode 100644 index 0000000..1fcb177 --- /dev/null +++ b/test/test-helper.cpp @@ -0,0 +1,260 @@ +/* + * Copyright (c) 2016 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 test-helper.cpp + * @author Dongsun Lee (ds73.lee@samsung.com) + * @version 1.0 + * @brief CSR API test helper + */ + +#include +#include +#include +#include + +#include +#include +#include + +#include +#include + +#include "test-common.h" + +void ASSERT_STRING(const char *expected, const char *actual, const char *msg) +{ + if (expected == actual) // true including nullptr + return; + + // null string and empty string are same + if ((expected == nullptr) && (actual != nullptr) && (strlen(actual) == 0)) + return; + if ((actual == nullptr) && (expected != nullptr) && (strlen(expected) == 0)) + return; + + BOOST_REQUIRE_MESSAGE((expected != nullptr) && (actual != nullptr) && (strcmp(expected, actual) == 0), + std::string((msg == nullptr) ? "NULL" : msg) + << ", EXPECTED=" << std::string((expected == nullptr) ? "NULL" : expected) + << ", ACTUAL=" << std::string((actual == nullptr) ? "NULL" : actual)); +} + +void ASSERT_DETECTED(csr_cs_detected_h detected, const char *name, int severity, const char *detailed_url) +{ + csr_cs_severity_level_e d_severity; + const char *d_malware_name; + const char *d_detailed_url; + + ASSERT_IF(csr_cs_detected_get_severity(detected, &d_severity), CSR_ERROR_NONE); + ASSERT_IF(csr_cs_detected_get_malware_name(detected, &d_malware_name), CSR_ERROR_NONE); + ASSERT_IF(csr_cs_detected_get_detailed_url(detected, &d_detailed_url), CSR_ERROR_NONE); + + BOOST_REQUIRE_MESSAGE(severity == d_severity, + "EXPECTED=" << severity << ", ACTUAL=" << d_severity); + ASSERT_STRING(name, d_malware_name, "MALWARE NAME CMP FAIL"); + ASSERT_STRING(detailed_url, d_detailed_url, "DETAILED ULR CMP FAIL"); +} + +void ASSERT_DETECTED_EXT(csr_cs_detected_h detected, time_t time, const char *file_name, bool is_app, const char *pkg_id) +{ + time_t d_timestamp; + const char *d_file_name; + bool d_is_app; + const char *d_pkg_id; + + ASSERT_IF(csr_cs_detected_get_timestamp(detected, &d_timestamp), CSR_ERROR_NONE); + ASSERT_IF(csr_cs_detected_get_file_name(detected, &d_file_name), CSR_ERROR_NONE); + ASSERT_IF(csr_cs_detected_is_app(detected, &d_is_app), CSR_ERROR_NONE); + ASSERT_IF(csr_cs_detected_get_pkg_id(detected, &d_pkg_id), CSR_ERROR_NONE); + + BOOST_REQUIRE_MESSAGE(time <= d_timestamp, + "TIMESTAMP CMP FAIL. EXPECTED should be smaller than ACTUAL, EXPECTED=" + << time << ", ACTUAL=" << d_timestamp); + ASSERT_STRING(file_name, d_file_name, "NAME CMP FAIL"); + BOOST_REQUIRE_MESSAGE(is_app == d_is_app, + "IS_APP CMP FAIL. EXPECTED=" << is_app << ", ACTUAL=" << d_is_app); + ASSERT_STRING(pkg_id, d_pkg_id, "PKGID CMP FAIL"); +} + +void ASSERT_DETECTED_HANDLE(csr_cs_detected_h expected, csr_cs_detected_h actual) +{ + csr_cs_severity_level_e e_severity, a_severity; + const char *e_malware_name, *a_malware_name; + const char *e_detailed_url, *a_detailed_url; + time_t e_timestamp, a_timestamp; + const char *e_file_name, *a_file_name; + bool e_is_app, a_is_app; + const char *e_pkg_id, *a_pkg_id; + + ASSERT_IF(csr_cs_detected_get_severity(expected, &e_severity), CSR_ERROR_NONE); + ASSERT_IF(csr_cs_detected_get_malware_name(expected, &e_malware_name), CSR_ERROR_NONE); + ASSERT_IF(csr_cs_detected_get_detailed_url(expected, &e_detailed_url), CSR_ERROR_NONE); + ASSERT_IF(csr_cs_detected_get_timestamp(expected, &e_timestamp), CSR_ERROR_NONE); + ASSERT_IF(csr_cs_detected_get_file_name(expected, &e_file_name), CSR_ERROR_NONE); + ASSERT_IF(csr_cs_detected_is_app(expected, &e_is_app), CSR_ERROR_NONE); + ASSERT_IF(csr_cs_detected_get_pkg_id(expected, &e_pkg_id), CSR_ERROR_NONE); + + ASSERT_IF(csr_cs_detected_get_severity(actual, &a_severity), CSR_ERROR_NONE); + ASSERT_IF(csr_cs_detected_get_malware_name(actual, &a_malware_name), CSR_ERROR_NONE); + ASSERT_IF(csr_cs_detected_get_detailed_url(actual, &a_detailed_url), CSR_ERROR_NONE); + ASSERT_IF(csr_cs_detected_get_timestamp(actual, &a_timestamp), CSR_ERROR_NONE); + ASSERT_IF(csr_cs_detected_get_file_name(actual, &a_file_name), CSR_ERROR_NONE); + ASSERT_IF(csr_cs_detected_is_app(actual, &a_is_app), CSR_ERROR_NONE); + ASSERT_IF(csr_cs_detected_get_pkg_id(actual, &a_pkg_id), CSR_ERROR_NONE); + + BOOST_REQUIRE_MESSAGE(e_severity == a_severity, + "EXPECTED=" << e_severity << ", ACTUAL=" << a_severity); + ASSERT_STRING(e_malware_name, a_malware_name, "MALWARE NAME CMP FAIL"); + ASSERT_STRING(e_detailed_url, a_detailed_url, "DETAILED ULR CMP FAIL"); + BOOST_REQUIRE_MESSAGE(e_timestamp == a_timestamp, + "EXPECTED=" << e_timestamp << ", ACTUAL=" << a_timestamp); + ASSERT_STRING(e_file_name, a_file_name, "FILE NAME CMP FAIL"); + BOOST_REQUIRE_MESSAGE(e_is_app == a_is_app, + "EXPECTED=" << e_is_app << ", ACTUAL=" << a_is_app); + ASSERT_STRING(e_pkg_id, a_pkg_id, "PKG ID CMP FAIL"); +} + + +void copy_file(const char *src_file, const char *dest_file) +{ + std::ifstream srce(src_file, std::ios::binary) ; + std::ofstream dest(dest_file, std::ios::binary) ; + dest << srce.rdbuf() ; +} + +void touch_file(const char *file) +{ + struct utimbuf new_times; + time_t now = time(nullptr); + + new_times.actime = now; + new_times.modtime = now; + + utime(file, &new_times); +} + +bool is_file_exist(const char *file) +{ + return (access(file, F_OK) != -1); +} + +bool installed; +GMainLoop *installMainLoop; +int __app_install_cb(int req_id, const char *pkg_type, const char *pkgid, + const char *key, const char *val, const void *pmsg, void *data) +{ + (void) req_id; + (void) pkg_type; + (void) pkgid; + (void) pmsg; + (void) data; + + installed = false; + + if (key && strncmp(key, "end", strlen("end")) == 0) { + if (strncmp(val, "ok", strlen("ok")) == 0) { + installed = true; + g_main_loop_quit(installMainLoop); + g_main_loop_unref(installMainLoop); + } + } + + return 0; +} + +gboolean __app_install_timeout(gpointer) +{ + installed = false; + return TRUE; +} + +bool install_app(const char *app_path, const char *pkg_type) +{ + auto pkgmgr = pkgmgr_client_new(PC_REQUEST); + CHECK_IS_NOT_NULL(pkgmgr); + + installed = false; + int ret = pkgmgr_client_install(pkgmgr, pkg_type, nullptr, app_path, nullptr, PM_QUIET, + __app_install_cb, nullptr); + if (ret <= PKGMGR_R_OK) + return false; + + g_timeout_add_seconds(30, __app_install_timeout, nullptr); + installMainLoop = g_main_loop_new(nullptr, false); + g_main_loop_run(installMainLoop); + pkgmgr_client_free(pkgmgr); + + return installed; +} + + +bool uninstalled; +GMainLoop *uninstallMainLoop; +int __app_uninstall_cb(int req_id, const char *pkg_type, const char *pkgid, const char *key, + const char *val, const void *pmsg, void *data) +{ + (void) req_id; + (void) pkg_type; + (void) pkgid; + (void) pmsg; + (void) data; + + uninstalled = false; + + if (key && strncmp(key, "end", strlen("end")) == 0) { + if (strncmp(val, "ok", strlen("ok")) == 0) { + uninstalled = true; + g_main_loop_quit(uninstallMainLoop); + g_main_loop_unref(uninstallMainLoop); + } + } + + return 0; +} + +gboolean __app_uninstall_timeout(gpointer) +{ + uninstalled = false; + return TRUE; +} + +bool uninstall_app(const char *pkg_id) +{ + auto pkgmgr = pkgmgr_client_new(PC_REQUEST); + CHECK_IS_NOT_NULL(pkgmgr); + + uninstalled = false; + int ret = pkgmgr_client_uninstall(pkgmgr, nullptr, pkg_id, PM_QUIET, __app_uninstall_cb, nullptr); + if (ret <= PKGMGR_R_OK) + return false; + + g_timeout_add_seconds(30, __app_uninstall_timeout, nullptr); + uninstallMainLoop = g_main_loop_new(nullptr, false); + g_main_loop_run(uninstallMainLoop); + pkgmgr_client_free(pkgmgr); + + return uninstalled; +} + +bool is_app_exist(const char *pkg_id) +{ + pkgmgrinfo_pkginfo_h handle; + + if (pkgmgrinfo_pkginfo_get_pkginfo(pkg_id, &handle) != PMINFO_R_OK) + return false; + + pkgmgrinfo_pkginfo_destroy_pkginfo(handle); + return true; +} diff --git a/test/test-helper.h b/test/test-helper.h new file mode 100644 index 0000000..eab62ec --- /dev/null +++ b/test/test-helper.h @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2016 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 test-helper.h + * @author Dongsun Lee (ds73.lee@samsung.com) + * @version 1.0 + * @brief CSR API test helper + */ +#include + +void ASSERT_STRING(const char *expected, const char *actual, const char *msg); + +void ASSERT_DETECTED(csr_cs_detected_h detected, const char *name, int severity, const char *detailed_url); + +void ASSERT_DETECTED_EXT(csr_cs_detected_h detected, time_t time, const char *file_name, bool is_app, const char *pkg_id); + +void ASSERT_DETECTED_HANDLE(csr_cs_detected_h expected, csr_cs_detected_h actual); + +void copy_file(const char *src_file, const char *dest_file); + +void touch_file(const char *file); + +bool is_file_exist(const char *file); + +bool install_app(const char *app_path, const char *app_type); + +bool uninstall_app(const char *pkg_id); + +bool is_app_exist(const char *pkg_id); -- 2.7.4