Add testcase about Uninstall API 70/139470/1
authorsangwan.kwon <sangwan.kwon@samsung.com>
Wed, 19 Jul 2017 05:32:21 +0000 (14:32 +0900)
committersangwan.kwon <sangwan.kwon@samsung.com>
Wed, 19 Jul 2017 05:32:21 +0000 (14:32 +0900)
- 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 <sangwan.kwon@samsung.com>
packaging/trust-anchor.spec
tests/test-installer.cpp
tests/test-resource.hxx

index 3c0c53f..bf01a7c 100644 (file)
@@ -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
index 12c564b..2bffbf4 100644 (file)
@@ -22,6 +22,7 @@
 
 #include <tanchor/trust-anchor.hxx>
 
+#include <klay/filesystem.h>
 #include <klay/testbench.h>
 
 #include <sched.h>
@@ -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);
+}
index a36f92f..0912fcb 100644 (file)
@@ -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"