From: sangwan.kwon Date: Wed, 19 Jul 2017 05:32:21 +0000 (+0900) Subject: Add testcase about Uninstall API X-Git-Tag: submit/tizen/20170720.071940~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5f83b80eb8d8c6f5cb393c947f430b6023ddd11f;p=platform%2Fcore%2Fsecurity%2Ftrust-anchor.git Add testcase about Uninstall API - Even though original package's certificates are removed after install API called, uninstall API should be succeed. - This TC is related with klay patch (https://review.tizen.org/gerrit/#/c/138903/) Change-Id: I71008b44d78acb91f95ac4c8e3f5ca516fcd2376 Signed-off-by: sangwan.kwon --- diff --git a/packaging/trust-anchor.spec b/packaging/trust-anchor.spec index 3c0c53f..bf01a7c 100644 --- a/packaging/trust-anchor.spec +++ b/packaging/trust-anchor.spec @@ -120,8 +120,8 @@ Testcases for trust anchor library %{_bindir}/%{lib_name}-test-internal %{_bindir}/%{lib_name}-test-ssl %{_bindir}/%{lib_name}-test-init.sh -%{tanchor_test} -%{tanchor_test}/certs +%attr(-, %{user_name}, %{group_name}) %{tanchor_test} +%attr(-, %{user_name}, %{group_name}) %{tanchor_test}/certs ## Example Package ############################################################ %package -n trust-anchor-example diff --git a/tests/test-installer.cpp b/tests/test-installer.cpp index 12c564b..2bffbf4 100644 --- a/tests/test-installer.cpp +++ b/tests/test-installer.cpp @@ -22,6 +22,7 @@ #include +#include #include #include @@ -76,3 +77,37 @@ TESTCASE(TRUST_ANCHOR_UNINSTALL_NEGATIVE) int ret = ta.uninstall(); TEST_EXPECT(false, ret == TRUST_ANCHOR_ERROR_NONE); } + +TESTCASE(TRUST_ANCHOR_UNINSTALL_NO_ORIGINAL_CERTS) +{ + tanchor::TrustAnchor ta(DUMMY_PKG_ID, DUMMY_UID); + int ret = ta.install(PKG_CERTS_DIR, false); + TEST_EXPECT(true, ret == TRUST_ANCHOR_ERROR_NONE); + + // back-up original package's certs and remove it. + runtime::File backupDir(BACKUP_DIR); + if (backupDir.exists()) + backupDir.remove(true); + backupDir.makeDirectory(true); + + runtime::DirectoryIterator iter(PKG_CERTS_DIR), end; + while (iter != end) { + iter->copyTo(BACKUP_DIR); + ++iter; + } + + runtime::File pkgCertsDir(PKG_CERTS_DIR); + pkgCertsDir.remove(true); + + ret = ta.uninstall(); + TEST_EXPECT(true, ret == TRUST_ANCHOR_ERROR_NONE); + + // restore package's certs for next TC + pkgCertsDir.makeDirectory(true); + runtime::DirectoryIterator iter2(BACKUP_DIR), end2; + while (iter2 != end2) { + iter2->copyTo(PKG_CERTS_DIR); + ++iter2; + } + backupDir.remove(true); +} diff --git a/tests/test-resource.hxx b/tests/test-resource.hxx index a36f92f..0912fcb 100644 --- a/tests/test-resource.hxx +++ b/tests/test-resource.hxx @@ -26,6 +26,7 @@ #define DUMMY_CERTS_DIR "/home/dummy" #define PKG_CERTS_DIR TANCHOR_TEST_DIR "/certs" +#define BACKUP_DIR TANCHOR_TEST_DIR "/backup" #define TEST_PEM_PATH PKG_CERTS_DIR "/02265526.0" #define TEST_PEM_HASH "02265526"