From 8f7435e4553916e6cc431e4b5316cc5861fd9063 Mon Sep 17 00:00:00 2001 From: Szczepan Zalega Date: Tue, 27 Jun 2017 12:32:56 +0200 Subject: 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 --- CMakeLists.txt | 13 +++++---- unittest/test_issues.cc | 78 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 86 insertions(+), 5 deletions(-) create mode 100644 unittest/test_issues.cc 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 + +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()); +} -- cgit v1.2.1