summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSzczepan Zalega <szczepan@nitrokey.com>2017-06-27 12:32:56 +0200
committerSzczepan Zalega <szczepan@nitrokey.com>2017-06-27 12:34:46 +0200
commit8f7435e4553916e6cc431e4b5316cc5861fd9063 (patch)
tree080345d319b20f8ef28d1bacc5a6e20cd34bf4ed
parent06c0deb7935a9390a67bc02d6c323e64c785a026 (diff)
downloadlibnitrokey-8f7435e4553916e6cc431e4b5316cc5861fd9063.tar.gz
libnitrokey-8f7435e4553916e6cc431e4b5316cc5861fd9063.tar.bz2
Add C++ tests for some current issues
Issues: https://github.com/Nitrokey/nitrokey-storage-firmware/issues/36 https://github.com/Nitrokey/nitrokey-storage-firmware/issues/31 Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
-rw-r--r--CMakeLists.txt13
-rw-r--r--unittest/test_issues.cc78
2 files changed, 86 insertions, 5 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b1103db..6741b18 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -114,19 +114,22 @@ IF (COMPILE_TESTS)
add_library(catch SHARED unittest/catch_main.cpp )
add_executable (test_C_API unittest/test_C_API.cpp)
- target_link_libraries (test_C_API ${EXTRA_LIBS} ${LIBNAME} catch)
+ target_link_libraries (test_C_API ${EXTRA_LIBS} ${LIBNAME}-log catch)
add_executable (test2 unittest/test2.cc)
- target_link_libraries (test2 ${EXTRA_LIBS} ${LIBNAME} catch)
+ target_link_libraries (test2 ${EXTRA_LIBS} ${LIBNAME}-log catch)
add_executable (test3 unittest/test3.cc)
- target_link_libraries (test3 ${EXTRA_LIBS} ${LIBNAME} catch)
+ target_link_libraries (test3 ${EXTRA_LIBS} ${LIBNAME}-log catch)
add_executable (test_HOTP unittest/test_HOTP.cc)
- target_link_libraries (test_HOTP ${EXTRA_LIBS} ${LIBNAME} catch)
+ target_link_libraries (test_HOTP ${EXTRA_LIBS} ${LIBNAME}-log catch)
add_executable (test1 unittest/test.cc)
- target_link_libraries (test1 ${EXTRA_LIBS} ${LIBNAME} catch)
+ target_link_libraries (test1 ${EXTRA_LIBS} ${LIBNAME}-log catch)
+
+ add_executable (test_issues unittest/test_issues.cc)
+ target_link_libraries (test_issues ${EXTRA_LIBS} ${LIBNAME}-log catch)
#run with 'make test' or 'ctest'
#needs connected PRO device for success
diff --git a/unittest/test_issues.cc b/unittest/test_issues.cc
new file mode 100644
index 0000000..ec3f933
--- /dev/null
+++ b/unittest/test_issues.cc
@@ -0,0 +1,78 @@
+
+const char * const default_admin_pin = "12345678";
+const char * const default_user_pin = "123456";
+const char * const temporary_password = "123456789012345678901234";
+const char * const RFC_SECRET = "12345678901234567890";
+const char * const hidden_volume_pass = "123456789012345";
+
+#include "catch.hpp"
+
+#include <NitrokeyManager.h>
+
+using namespace std;
+using namespace nitrokey;
+
+
+bool test_36(){
+ auto i = NitrokeyManager::instance();
+ i->set_debug(true);
+ REQUIRE(i->connect());
+
+ for (int j = 0; j < 200; ++j) {
+ i->get_status();
+ i->get_status_storage_as_string();
+ INFO( "Iteration: " << j);
+ }
+ return true;
+}
+
+bool test_31(){
+ auto i = NitrokeyManager::instance();
+ i->set_debug(true);
+ REQUIRE(i->connect());
+
+// i->unlock_encrypted_volume(default_user_pin);
+// i->create_hidden_volume(0, 70, 80, hidden_volume_pass);
+// i->lock_device();
+
+ try{
+ i->get_password_safe_slot_status();
+ }
+ catch (...){
+ //pass
+ }
+
+ i->get_status_storage();
+ i->get_admin_retry_count();
+ i->get_status_storage();
+ i->get_user_retry_count();
+ i->unlock_encrypted_volume(default_user_pin);
+ i->get_status_storage();
+ i->get_password_safe_slot_status();
+ i->get_status_storage();
+ i->get_user_retry_count();
+ i->get_password_safe_slot_status();
+ i->get_status();
+ i->get_status_storage();
+ i->get_admin_retry_count();
+ i->get_status();
+ i->get_user_retry_count();
+ i->unlock_hidden_volume(hidden_volume_pass);
+ i->get_status_storage();
+ i->get_password_safe_slot_status();
+
+
+ return true;
+}
+
+TEST_CASE("issue 31", "[issue]"){
+ for(int i=0; i<20; i++){
+ REQUIRE(test_31());
+ }
+}
+
+
+
+TEST_CASE("issue 36", "[issue]"){
+ REQUIRE(test_36());
+}