CKM: Multithreaded encryption test 49/282049/1
authorKrzysztof Jackiewicz <k.jackiewicz@samsung.com>
Mon, 26 Sep 2022 08:53:26 +0000 (10:53 +0200)
committerKrzysztof Jackiewicz <k.jackiewicz@samsung.com>
Mon, 26 Sep 2022 10:29:57 +0000 (12:29 +0200)
Change-Id: I8aa6a784e672957c717790e755b8b2de0274ba99

src/ckm/unprivileged/CMakeLists.txt
src/ckm/unprivileged/encryption-decryption.cpp

index 14a8973..8b8dfda 100644 (file)
@@ -27,6 +27,8 @@ SET(CKM_SOURCES
     main.cpp
 )
 
+FIND_PACKAGE (Threads)
+
 INCLUDE_DIRECTORIES(
     ${PROJECT_SOURCE_DIR}/src/common
     ..
@@ -38,6 +40,7 @@ ADD_EXECUTABLE(${TARGET_CKM_TESTS} ${CKM_SOURCES})
 TARGET_LINK_LIBRARIES(${TARGET_CKM_TESTS}
     ${TARGET_CKM_TEST_COMMON}
     ${COMMON_TARGET_TEST}
+    ${CMAKE_THREAD_LIBS_INIT}
 )
 
 INSTALL(TARGETS ${TARGET_CKM_TESTS} DESTINATION bin)
index c183c81..9030803 100644 (file)
@@ -23,6 +23,7 @@
 #include <string>
 #include <vector>
 #include <unordered_map>
+#include <thread>
 
 #include <dpl/test/test_runner.h>
 #include <ckm-common.h>
@@ -1464,3 +1465,16 @@ RUNNER_TEST(TED_2010_dec_no_observer_async, AsyncEnv)
                          encrypted);
     });
 }
+
+/////////////////////////////////////////
+// Mulithreaded test for synchronous API
+/////////////////////////////////////////
+RUNNER_TEST(TED_3000_muliple_threads, SyncEnv)
+{
+    std::vector<std::thread> threads;
+    threads.reserve(10);
+    for(unsigned i = 0; i < 10;++i)
+        threads.emplace_back([]{ testEncryptDecryptBigData({CKMC_ALGO_AES_CBC, 256}); });
+    for (auto& thread : threads)
+        thread.join();
+}