diff --git a/libs/main/digest/3rd/BLAKE2/blake2-impl.h b/3rd/BLAKE2/blake2-impl.h similarity index 100% rename from libs/main/digest/3rd/BLAKE2/blake2-impl.h rename to 3rd/BLAKE2/blake2-impl.h diff --git a/libs/main/digest/3rd/BLAKE2/blake2.h b/3rd/BLAKE2/blake2.h similarity index 100% rename from libs/main/digest/3rd/BLAKE2/blake2.h rename to 3rd/BLAKE2/blake2.h diff --git a/libs/main/digest/3rd/BLAKE2/blake2b-ref.c b/3rd/BLAKE2/blake2b-ref.c similarity index 100% rename from libs/main/digest/3rd/BLAKE2/blake2b-ref.c rename to 3rd/BLAKE2/blake2b-ref.c diff --git a/libs/main/digest/3rd/BLAKE2/blake2bp-ref.c b/3rd/BLAKE2/blake2bp-ref.c similarity index 100% rename from libs/main/digest/3rd/BLAKE2/blake2bp-ref.c rename to 3rd/BLAKE2/blake2bp-ref.c diff --git a/libs/main/digest/3rd/BLAKE2/blake2s-ref.c b/3rd/BLAKE2/blake2s-ref.c similarity index 100% rename from libs/main/digest/3rd/BLAKE2/blake2s-ref.c rename to 3rd/BLAKE2/blake2s-ref.c diff --git a/libs/main/digest/3rd/BLAKE2/blake2sp-ref.c b/3rd/BLAKE2/blake2sp-ref.c similarity index 100% rename from libs/main/digest/3rd/BLAKE2/blake2sp-ref.c rename to 3rd/BLAKE2/blake2sp-ref.c diff --git a/libs/main/digest/3rd/BLAKE2/blake2xb-ref.c b/3rd/BLAKE2/blake2xb-ref.c similarity index 100% rename from libs/main/digest/3rd/BLAKE2/blake2xb-ref.c rename to 3rd/BLAKE2/blake2xb-ref.c diff --git a/libs/main/digest/3rd/BLAKE2/blake2xs-ref.c b/3rd/BLAKE2/blake2xs-ref.c similarity index 100% rename from libs/main/digest/3rd/BLAKE2/blake2xs-ref.c rename to 3rd/BLAKE2/blake2xs-ref.c diff --git a/libs/lua/3rd/LuaBridge/List.h b/3rd/LuaBridge/List.h similarity index 100% rename from libs/lua/3rd/LuaBridge/List.h rename to 3rd/LuaBridge/List.h diff --git a/libs/lua/3rd/LuaBridge/LuaBridge.h b/3rd/LuaBridge/LuaBridge.h similarity index 100% rename from libs/lua/3rd/LuaBridge/LuaBridge.h rename to 3rd/LuaBridge/LuaBridge.h diff --git a/libs/lua/3rd/LuaBridge/Map.h b/3rd/LuaBridge/Map.h similarity index 100% rename from libs/lua/3rd/LuaBridge/Map.h rename to 3rd/LuaBridge/Map.h diff --git a/libs/lua/3rd/LuaBridge/RefCountedObject.h b/3rd/LuaBridge/RefCountedObject.h similarity index 100% rename from libs/lua/3rd/LuaBridge/RefCountedObject.h rename to 3rd/LuaBridge/RefCountedObject.h diff --git a/libs/lua/3rd/LuaBridge/RefCountedPtr.h b/3rd/LuaBridge/RefCountedPtr.h similarity index 100% rename from libs/lua/3rd/LuaBridge/RefCountedPtr.h rename to 3rd/LuaBridge/RefCountedPtr.h diff --git a/libs/lua/3rd/LuaBridge/UnorderedMap.h b/3rd/LuaBridge/UnorderedMap.h similarity index 100% rename from libs/lua/3rd/LuaBridge/UnorderedMap.h rename to 3rd/LuaBridge/UnorderedMap.h diff --git a/libs/lua/3rd/LuaBridge/Vector.h b/3rd/LuaBridge/Vector.h similarity index 100% rename from libs/lua/3rd/LuaBridge/Vector.h rename to 3rd/LuaBridge/Vector.h diff --git a/libs/lua/3rd/LuaBridge/detail/CFunctions.h b/3rd/LuaBridge/detail/CFunctions.h similarity index 100% rename from libs/lua/3rd/LuaBridge/detail/CFunctions.h rename to 3rd/LuaBridge/detail/CFunctions.h diff --git a/libs/lua/3rd/LuaBridge/detail/ClassInfo.h b/3rd/LuaBridge/detail/ClassInfo.h similarity index 100% rename from libs/lua/3rd/LuaBridge/detail/ClassInfo.h rename to 3rd/LuaBridge/detail/ClassInfo.h diff --git a/libs/lua/3rd/LuaBridge/detail/Config.h b/3rd/LuaBridge/detail/Config.h similarity index 100% rename from libs/lua/3rd/LuaBridge/detail/Config.h rename to 3rd/LuaBridge/detail/Config.h diff --git a/libs/lua/3rd/LuaBridge/detail/Constructor.h b/3rd/LuaBridge/detail/Constructor.h similarity index 100% rename from libs/lua/3rd/LuaBridge/detail/Constructor.h rename to 3rd/LuaBridge/detail/Constructor.h diff --git a/libs/lua/3rd/LuaBridge/detail/FuncTraits.h b/3rd/LuaBridge/detail/FuncTraits.h similarity index 100% rename from libs/lua/3rd/LuaBridge/detail/FuncTraits.h rename to 3rd/LuaBridge/detail/FuncTraits.h diff --git a/libs/lua/3rd/LuaBridge/detail/Iterator.h b/3rd/LuaBridge/detail/Iterator.h similarity index 100% rename from libs/lua/3rd/LuaBridge/detail/Iterator.h rename to 3rd/LuaBridge/detail/Iterator.h diff --git a/libs/lua/3rd/LuaBridge/detail/LuaException.h b/3rd/LuaBridge/detail/LuaException.h similarity index 100% rename from libs/lua/3rd/LuaBridge/detail/LuaException.h rename to 3rd/LuaBridge/detail/LuaException.h diff --git a/libs/lua/3rd/LuaBridge/detail/LuaHelpers.h b/3rd/LuaBridge/detail/LuaHelpers.h similarity index 100% rename from libs/lua/3rd/LuaBridge/detail/LuaHelpers.h rename to 3rd/LuaBridge/detail/LuaHelpers.h diff --git a/libs/lua/3rd/LuaBridge/detail/LuaRef.h b/3rd/LuaBridge/detail/LuaRef.h similarity index 100% rename from libs/lua/3rd/LuaBridge/detail/LuaRef.h rename to 3rd/LuaBridge/detail/LuaRef.h diff --git a/libs/lua/3rd/LuaBridge/detail/Namespace.h b/3rd/LuaBridge/detail/Namespace.h similarity index 100% rename from libs/lua/3rd/LuaBridge/detail/Namespace.h rename to 3rd/LuaBridge/detail/Namespace.h diff --git a/libs/lua/3rd/LuaBridge/detail/Security.h b/3rd/LuaBridge/detail/Security.h similarity index 100% rename from libs/lua/3rd/LuaBridge/detail/Security.h rename to 3rd/LuaBridge/detail/Security.h diff --git a/libs/lua/3rd/LuaBridge/detail/Stack.h b/3rd/LuaBridge/detail/Stack.h similarity index 100% rename from libs/lua/3rd/LuaBridge/detail/Stack.h rename to 3rd/LuaBridge/detail/Stack.h diff --git a/libs/lua/3rd/LuaBridge/detail/TypeList.h b/3rd/LuaBridge/detail/TypeList.h similarity index 100% rename from libs/lua/3rd/LuaBridge/detail/TypeList.h rename to 3rd/LuaBridge/detail/TypeList.h diff --git a/libs/lua/3rd/LuaBridge/detail/TypeTraits.h b/3rd/LuaBridge/detail/TypeTraits.h similarity index 100% rename from libs/lua/3rd/LuaBridge/detail/TypeTraits.h rename to 3rd/LuaBridge/detail/TypeTraits.h diff --git a/libs/lua/3rd/LuaBridge/detail/Userdata.h b/3rd/LuaBridge/detail/Userdata.h similarity index 100% rename from libs/lua/3rd/LuaBridge/detail/Userdata.h rename to 3rd/LuaBridge/detail/Userdata.h diff --git a/libs/lua/3rd/LuaBridge/detail/dump.h b/3rd/LuaBridge/detail/dump.h similarity index 100% rename from libs/lua/3rd/LuaBridge/detail/dump.h rename to 3rd/LuaBridge/detail/dump.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 162c03c5..cf4ea85d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -91,6 +91,7 @@ set(HDR_DIRS) set(PIP_UTILS_LIST) set(PIP_TESTS_LIST) set(PIP_EXPORTS) +set(PIP_3PL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/3rd") set(PIP_SRC_MODULES "console;crypt;compress;usb;fftw;opencl;io_utils;client_server;cloud;lua;http_client;http_server") foreach(_m ${PIP_SRC_MODULES}) @@ -106,7 +107,7 @@ macro(pip_module NAME LIBS LABEL INCLUDES SOURCES MSG) set(CRES) file(GLOB_RECURSE CPPS "libs/${NAME}/*.cpp" "libs/${NAME}/*.c") file(GLOB_RECURSE HS "libs/${NAME}/*.h") - file(GLOB_RECURSE PHS "libs/${NAME}/*_p.h" "libs/${NAME}/3rd/*.h") + file(GLOB_RECURSE PHS "libs/${NAME}/*_p.h") file(GLOB_RECURSE RES "libs/${NAME}/*.conf") if (NOT "x${PHS}" STREQUAL "x") list(REMOVE_ITEM HS ${PHS}) @@ -207,7 +208,6 @@ set(PIP_INCLUDES "${CMAKE_CURRENT_BINARY_DIR}") foreach(F ${PIP_FOLDERS}) if (IS_DIRECTORY "${F}") list(APPEND PIP_INCLUDES "${F}") - #include_directories("${F}") endif() endforeach(F) @@ -366,12 +366,10 @@ endif() set(CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS}") -pip_module(main "${LIBS_MAIN}" "PIP main library" "" "" "") +pip_module(main "${LIBS_MAIN}" "PIP main library" "" "${PIP_3PL_DIR}/BLAKE2" "") generate_export_header(pip) list(APPEND HDRS "${CMAKE_CURRENT_BINARY_DIR}/pip_export.h") -file(GLOB_RECURSE _RM_HDRS "libs/main/digest/3rd/*.h") -list(REMOVE_ITEM HDRS ${_RM_HDRS}) foreach(_m ${PIP_SRC_MODULES}) set_target_properties(pip PROPERTIES DEFINE_SYMBOL pip_${_m}_EXPORTS) generate_export_header(pip BASE_NAME "pip_${_m}") @@ -497,15 +495,16 @@ if (NOT CROSSTOOLS) if (PIP_BUILD_LUA) # Lua module - set(_lua_src_dir "${CMAKE_CURRENT_SOURCE_DIR}/3rd/lua") - set(_lua_bri_dir "${CMAKE_CURRENT_SOURCE_DIR}/libs/lua/3rd") + set(_lua_src_dir "${PIP_3PL_DIR}/lua") set(_lua_src_hdr "${_lua_src_dir}/lua.hpp" "${_lua_src_dir}/lua.h" "${_lua_src_dir}/luaconf.h" "${_lua_src_dir}/lualib.h") - pip_module(lua "" "PIP Lua support" "${_lua_src_dir};${_lua_bri_dir}" "${_lua_src_dir}" " (internal)") - target_include_directories(pip_lua PUBLIC "${_lua_src_dir}" "${_lua_bri_dir}") + pip_module(lua "" "PIP Lua support" "${_lua_src_dir};${PIP_3PL_DIR}" "${_lua_src_dir}" " (internal)") + target_include_directories(pip_lua PUBLIC "${_lua_src_dir}") if (WIN32) target_compile_definitions(pip_lua PRIVATE LUA_BUILD_AS_DLL LUA_CORE) + else() + target_compile_definitions(pip_lua PRIVATE LUA_USE_POSIX) endif() - list(APPEND HDR_DIRS "${_lua_bri_dir}/LuaBridge") + list(APPEND HDR_DIRS "${PIP_3PL_DIR}/LuaBridge") list(APPEND HDRS ${_lua_src_hdr}) endif() @@ -710,7 +709,7 @@ if ((NOT PIP_FREERTOS) AND (NOT CROSSTOOLS)) set(DOXY_EXAMPLE_PATH "\"${CMAKE_CURRENT_SOURCE_DIR}/doc/examples\"") set(DOXY_IMAGE_PATH "\"${CMAKE_CURRENT_SOURCE_DIR}/doc/images\"") set(DOXY_LOGO_PATH "\"${CMAKE_CURRENT_SOURCE_DIR}/doc/pip.png\"") - set(DOXY_EXCLUDE "\"${CMAKE_CURRENT_SOURCE_DIR}/libs/lua/3rd\"") + set(DOXY_EXCLUDE "\"${CMAKE_CURRENT_SOURCE_DIR}/3rd\"") set(DOXY_DOMAIN "${PIP_DOMAIN}.${PROJECT_NAME}.doc") if ("x${DOC_LANG}" STREQUAL "x") set(DOXY_OUTPUT_LANGUAGE English) diff --git a/libs/main/io_devices/pifile.cpp b/libs/main/io_devices/pifile.cpp index 879f0ef1..f9ed991d 100644 --- a/libs/main/io_devices/pifile.cpp +++ b/libs/main/io_devices/pifile.cpp @@ -176,14 +176,16 @@ bool PIFile::openTemporary(PIIODevice::DeviceMode mode) { PIString tp; #ifdef WINDOWS tp = PIDir::temporary().path() + PIDir::separator + "file" + PIString::fromNumber(randomi()); -#else - char * rc = tmpnam(0); - if (!rc) return false; - tp = rc; -#endif while (isExists(tp)) { tp += PIString::fromNumber(randomi() % 10); } +#else + char template_rc[] = "/tmp/pifile_tmp_XXXXXX"; + int fd = mkstemp(template_rc); + if (fd == -1) return false; + ::close(fd); + tp = template_rc; +#endif return open(tp, mode); } diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 3eefbfcb..c5dae9c3 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -35,3 +35,4 @@ pip_test(math) pip_test(core) pip_test(piobject) pip_test(client_server pip_client_server) +pip_test(io) diff --git a/tests/client_server/client_server_test.cpp b/tests/client_server/client_server_test.cpp index e85df95c..bbe639c5 100644 --- a/tests/client_server/client_server_test.cpp +++ b/tests/client_server/client_server_test.cpp @@ -102,7 +102,7 @@ int getClientsPings(const PIVector & clients) { TEST(ClientServer, ManyClients) { - auto const loop_timeout = 1000_ms; + auto const loop_timeout = 100_ms; constexpr int clients_count = 20; PIVector clients; auto s = createServer(); @@ -147,7 +147,7 @@ TEST(ClientServer, ManyClients) { } TEST(ClientServer, DynamicClients) { - auto const loop_timeout = 1000_ms; + auto const loop_timeout = 100_ms; constexpr int clients_count = 20; PIVector clients; PIMutex clients_mutex; diff --git a/tests/io/testpifile.cpp b/tests/io/testpifile.cpp new file mode 100644 index 00000000..33944763 --- /dev/null +++ b/tests/io/testpifile.cpp @@ -0,0 +1,14 @@ +#include "pifile.h" + +#include "gtest/gtest.h" + +TEST(PIFile_Test, openTemporary) { + const auto ba = PIByteArray::fromHex("AABBCC"); + PIFile f; + ASSERT_TRUE(f.openTemporary()); + ASSERT_TRUE(f.path().isNotEmpty()); + ASSERT_EQ(ba.size(), f.write(ba)); + ASSERT_EQ(ba, f.readAll()); + ASSERT_TRUE(f.close()); +} + diff --git a/tests/math/testpimathmatrixt.cpp b/tests/math/testpimathmatrixt.cpp index 8900aa99..0245599c 100644 --- a/tests/math/testpimathmatrixt.cpp +++ b/tests/math/testpimathmatrixt.cpp @@ -351,7 +351,7 @@ TEST(PIMathMatrixT_Test, determinantIfSquare) { matr.element(2, 1) = 2; matr.element(2, 2) = 5; d = matr.determinant(); - EXPECT_DOUBLE_EQ(std::abs(i - d), 0.); + EXPECT_NEAR(std::abs(i - d), 0., 1e-12); } TEST(PIMathMatrixT_Test, invert) { @@ -400,7 +400,7 @@ TEST(PIMathMatrixT_Test, inverted) { d2 = matrix2.determinant(); matrix3 = matrix1.inverted(); EXPECT_EQ(matrix1, matrix3); - EXPECT_DOUBLE_EQ(std::abs(d1 - (1. / d2)), 0.); + EXPECT_NEAR(std::abs(d1 - (1. / d2)), 0., 1e-12); } TEST(PIMathMatrixT_Test, toUpperTriangular) {