diff options
author | Szczepan Zalega <szczepan@nitrokey.com> | 2017-06-27 12:32:56 +0200 |
---|---|---|
committer | Szczepan Zalega <szczepan@nitrokey.com> | 2017-06-27 12:34:46 +0200 |
commit | 8f7435e4553916e6cc431e4b5316cc5861fd9063 (patch) | |
tree | 080345d319b20f8ef28d1bacc5a6e20cd34bf4ed | |
parent | 06c0deb7935a9390a67bc02d6c323e64c785a026 (diff) | |
download | libnitrokey-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.txt | 13 | ||||
-rw-r--r-- | unittest/test_issues.cc | 78 |
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()); +} |