From 5f83b80eb8d8c6f5cb393c947f430b6023ddd11f Mon Sep 17 00:00:00 2001 From: "sangwan.kwon" Date: Wed, 19 Jul 2017 14:32:21 +0900 Subject: [PATCH] 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 --- packaging/trust-anchor.spec | 4 ++-- tests/test-installer.cpp | 35 +++++++++++++++++++++++++++++++++++ tests/test-resource.hxx | 1 + 3 files changed, 38 insertions(+), 2 deletions(-) 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" -- 2.34.1