From 2f1711c506e1c302c92bda0a14ab3ea3ad180103 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Moreau?= Date: Thu, 18 Oct 2012 21:11:12 -0400 Subject: [PATCH] libwinpr-path: make tests pass on Windows --- CMakeLists.txt | 6 +- channels/audin/client/CMakeLists.txt | 2 +- channels/audin/server/CMakeLists.txt | 2 +- channels/cliprdr/client/CMakeLists.txt | 2 +- channels/disk/client/CMakeLists.txt | 2 +- channels/drdynvc/client/CMakeLists.txt | 2 +- channels/parallel/client/CMakeLists.txt | 2 +- channels/printer/client/CMakeLists.txt | 2 +- channels/rail/client/CMakeLists.txt | 2 +- channels/rdpdr/client/CMakeLists.txt | 2 +- channels/rdpsnd/client/CMakeLists.txt | 2 +- channels/rdpsnd/server/CMakeLists.txt | 2 +- channels/sample/client/CMakeLists.txt | 2 +- channels/serial/client/CMakeLists.txt | 2 +- channels/smartcard/client/CMakeLists.txt | 2 +- channels/tsmf/client/CMakeLists.txt | 2 +- channels/urbdrc/client/CMakeLists.txt | 2 +- winpr/include/winpr/interlocked.h | 20 ++--- winpr/libwinpr/file/test/CMakeLists.txt | 8 +- .../file/test/TestFileFindFirstFile.c | 9 +-- .../libwinpr/file/test/TestFileFindNextFile.c | 78 +++++++++++++++++++ winpr/libwinpr/library/test/CMakeLists.txt | 2 +- .../library/test/TestLibraryA/CMakeLists.txt | 3 +- .../library/test/TestLibraryB/CMakeLists.txt | 2 +- .../library/test/TestLibraryFreeLibrary.c | 2 + .../library/test/TestLibraryGetProcAddress.c | 6 +- winpr/libwinpr/path/path.c | 12 +-- 27 files changed, 134 insertions(+), 46 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index fca6393cf..9c06531e2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -237,7 +237,11 @@ INCLUDE(CTest) if(BUILD_TESTING) enable_testing() - set(TESTING_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/Testing") + if(MSVC) + set(TESTING_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}") + else() + set(TESTING_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/Testing") + endif() endif() # WinPR diff --git a/channels/audin/client/CMakeLists.txt b/channels/audin/client/CMakeLists.txt index b762df5f4..072092888 100644 --- a/channels/audin/client/CMakeLists.txt +++ b/channels/audin/client/CMakeLists.txt @@ -38,7 +38,7 @@ if(NOT STATIC_CHANNELS) install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH}) endif() -set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${MODULE_NAME}/Client") +set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client") if(WITH_ALSA) add_subdirectory(alsa) diff --git a/channels/audin/server/CMakeLists.txt b/channels/audin/server/CMakeLists.txt index f235b9e98..6afda4d4a 100644 --- a/channels/audin/server/CMakeLists.txt +++ b/channels/audin/server/CMakeLists.txt @@ -29,4 +29,4 @@ set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS MODULE freerdp MODULES freerdp-utils) -set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL}/Server") +set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Server") diff --git a/channels/cliprdr/client/CMakeLists.txt b/channels/cliprdr/client/CMakeLists.txt index c6c7675cb..f1dd07440 100644 --- a/channels/cliprdr/client/CMakeLists.txt +++ b/channels/cliprdr/client/CMakeLists.txt @@ -42,4 +42,4 @@ if(NOT STATIC_CHANNELS) install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH}) endif() -set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${MODULE_NAME}/Client") +set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client") diff --git a/channels/disk/client/CMakeLists.txt b/channels/disk/client/CMakeLists.txt index 78406d1b8..f13182194 100644 --- a/channels/disk/client/CMakeLists.txt +++ b/channels/disk/client/CMakeLists.txt @@ -49,6 +49,6 @@ if(NOT STATIC_CHANNELS) install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH}) endif() -set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${MODULE_NAME}/Client") +set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client") diff --git a/channels/drdynvc/client/CMakeLists.txt b/channels/drdynvc/client/CMakeLists.txt index c28fc8836..0f8f7166a 100644 --- a/channels/drdynvc/client/CMakeLists.txt +++ b/channels/drdynvc/client/CMakeLists.txt @@ -38,5 +38,5 @@ set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS MODULE winpr MODULES winpr-synch) -set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${MODULE_NAME}/Client") +set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client") diff --git a/channels/parallel/client/CMakeLists.txt b/channels/parallel/client/CMakeLists.txt index 1eaf800de..784b02e5a 100644 --- a/channels/parallel/client/CMakeLists.txt +++ b/channels/parallel/client/CMakeLists.txt @@ -40,4 +40,4 @@ if(NOT STATIC_CHANNELS) install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH}) endif() -set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${MODULE_NAME}/Client") +set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client") diff --git a/channels/printer/client/CMakeLists.txt b/channels/printer/client/CMakeLists.txt index c49939b53..46302323c 100644 --- a/channels/printer/client/CMakeLists.txt +++ b/channels/printer/client/CMakeLists.txt @@ -60,4 +60,4 @@ if(NOT STATIC_CHANNELS) install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH}) endif() -set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${MODULE_NAME}/Client") +set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client") diff --git a/channels/rail/client/CMakeLists.txt b/channels/rail/client/CMakeLists.txt index 5fb62355e..748f7141d 100644 --- a/channels/rail/client/CMakeLists.txt +++ b/channels/rail/client/CMakeLists.txt @@ -34,5 +34,5 @@ set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS}) -set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${MODULE_NAME}/Client") +set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client") diff --git a/channels/rdpdr/client/CMakeLists.txt b/channels/rdpdr/client/CMakeLists.txt index 9c0cf4e5f..7a1684814 100644 --- a/channels/rdpdr/client/CMakeLists.txt +++ b/channels/rdpdr/client/CMakeLists.txt @@ -43,4 +43,4 @@ set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS}) -set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${MODULE_NAME}/Client") +set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client") diff --git a/channels/rdpsnd/client/CMakeLists.txt b/channels/rdpsnd/client/CMakeLists.txt index 2063af677..c189c0c41 100644 --- a/channels/rdpsnd/client/CMakeLists.txt +++ b/channels/rdpsnd/client/CMakeLists.txt @@ -32,7 +32,7 @@ set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS}) -set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${MODULE_NAME}/Client") +set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client") if(WITH_ALSA) add_subdirectory(alsa) diff --git a/channels/rdpsnd/server/CMakeLists.txt b/channels/rdpsnd/server/CMakeLists.txt index 66082ce05..b6d0c0901 100644 --- a/channels/rdpsnd/server/CMakeLists.txt +++ b/channels/rdpsnd/server/CMakeLists.txt @@ -31,4 +31,4 @@ set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS}) -set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL}/Server") +set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Server") diff --git a/channels/sample/client/CMakeLists.txt b/channels/sample/client/CMakeLists.txt index b70820db5..c960d05b5 100644 --- a/channels/sample/client/CMakeLists.txt +++ b/channels/sample/client/CMakeLists.txt @@ -34,5 +34,5 @@ if(NOT STATIC_CHANNELS) install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH}) endif() -set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${MODULE_NAME}/Client") +set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client") diff --git a/channels/serial/client/CMakeLists.txt b/channels/serial/client/CMakeLists.txt index ce3ad68ee..863daa094 100644 --- a/channels/serial/client/CMakeLists.txt +++ b/channels/serial/client/CMakeLists.txt @@ -38,5 +38,5 @@ if(NOT STATIC_CHANNELS) install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH}) endif() -set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${MODULE_NAME}/Client") +set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client") diff --git a/channels/smartcard/client/CMakeLists.txt b/channels/smartcard/client/CMakeLists.txt index edd3e6372..e7b3a4f87 100644 --- a/channels/smartcard/client/CMakeLists.txt +++ b/channels/smartcard/client/CMakeLists.txt @@ -45,4 +45,4 @@ if(NOT STATIC_CHANNELS) install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH}) endif() -set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${MODULE_NAME}/Client") +set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client") diff --git a/channels/tsmf/client/CMakeLists.txt b/channels/tsmf/client/CMakeLists.txt index 06306ef3a..d12ab79b8 100644 --- a/channels/tsmf/client/CMakeLists.txt +++ b/channels/tsmf/client/CMakeLists.txt @@ -51,7 +51,7 @@ if(NOT STATIC_CHANNELS) install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH}) endif() -set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${MODULE_NAME}/Client") +set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client") if(WITH_FFMPEG) add_subdirectory(ffmpeg) diff --git a/channels/urbdrc/client/CMakeLists.txt b/channels/urbdrc/client/CMakeLists.txt index 338c18794..943d8abb5 100644 --- a/channels/urbdrc/client/CMakeLists.txt +++ b/channels/urbdrc/client/CMakeLists.txt @@ -51,4 +51,4 @@ if(NOT STATIC_CHANNELS) install(TARGETS ${MODULE_NAME} DESTINATION ${FREERDP_PLUGIN_PATH}) endif() -set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${MODULE_NAME}/Client") +set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Channels/${CHANNEL_NAME}/Client") diff --git a/winpr/include/winpr/interlocked.h b/winpr/include/winpr/interlocked.h index 6beb3f015..c9a798b23 100644 --- a/winpr/include/winpr/interlocked.h +++ b/winpr/include/winpr/interlocked.h @@ -150,21 +150,21 @@ WINPR_API LONGLONG InterlockedCompareExchange64(LONGLONG volatile *Destination, /* Doubly-Linked List */ -VOID InitializeListHead(PLIST_ENTRY ListHead); +WINPR_API VOID InitializeListHead(PLIST_ENTRY ListHead); -BOOL IsListEmpty(const LIST_ENTRY* ListHead); +WINPR_API BOOL IsListEmpty(const LIST_ENTRY* ListHead); -BOOL RemoveEntryList(PLIST_ENTRY Entry); +WINPR_API BOOL RemoveEntryList(PLIST_ENTRY Entry); -VOID InsertHeadList(PLIST_ENTRY ListHead, PLIST_ENTRY Entry); -PLIST_ENTRY RemoveHeadList(PLIST_ENTRY ListHead); +WINPR_API VOID InsertHeadList(PLIST_ENTRY ListHead, PLIST_ENTRY Entry); +WINPR_API PLIST_ENTRY RemoveHeadList(PLIST_ENTRY ListHead); -VOID InsertTailList(PLIST_ENTRY ListHead, PLIST_ENTRY Entry); -PLIST_ENTRY RemoveTailList(PLIST_ENTRY ListHead); -VOID AppendTailList(PLIST_ENTRY ListHead, PLIST_ENTRY ListToAppend); +WINPR_API VOID InsertTailList(PLIST_ENTRY ListHead, PLIST_ENTRY Entry); +WINPR_API PLIST_ENTRY RemoveTailList(PLIST_ENTRY ListHead); +WINPR_API VOID AppendTailList(PLIST_ENTRY ListHead, PLIST_ENTRY ListToAppend); -VOID PushEntryList(PSINGLE_LIST_ENTRY ListHead, PSINGLE_LIST_ENTRY Entry); -PSINGLE_LIST_ENTRY PopEntryList(PSINGLE_LIST_ENTRY ListHead); +WINPR_API VOID PushEntryList(PSINGLE_LIST_ENTRY ListHead, PSINGLE_LIST_ENTRY Entry); +WINPR_API PSINGLE_LIST_ENTRY PopEntryList(PSINGLE_LIST_ENTRY ListHead); #endif /* WINPR_INTERLOCKED_H */ diff --git a/winpr/libwinpr/file/test/CMakeLists.txt b/winpr/libwinpr/file/test/CMakeLists.txt index 5dcd3c517..942572710 100644 --- a/winpr/libwinpr/file/test/CMakeLists.txt +++ b/winpr/libwinpr/file/test/CMakeLists.txt @@ -28,9 +28,13 @@ target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS}) set_target_properties(${MODULE_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${TESTING_OUTPUT_DIRECTORY}") -set(TEST_AREA "${TESTING_OUTPUT_DIRECTORY}/${MODULE_NAME}Area") +if(NOT MSVC) + set(TEST_AREA "${TESTING_OUTPUT_DIRECTORY}/${MODULE_NAME}Area") +else() + set(TEST_AREA "${TESTING_OUTPUT_DIRECTORY}/${CMAKE_BUILD_TYPE}/${MODULE_NAME}Area") +endif() -file(MAKE_DIRECTORY ${TEST_AREA}) +file(MAKE_DIRECTORY "${TEST_AREA}") file(WRITE "${TEST_AREA}/TestFile1" "TestFile1") file(WRITE "${TEST_AREA}/TestFile2" "TestFile2") file(WRITE "${TEST_AREA}/TestFile3" "TestFile3") diff --git a/winpr/libwinpr/file/test/TestFileFindFirstFile.c b/winpr/libwinpr/file/test/TestFileFindFirstFile.c index 34279786e..1e17e1a6f 100644 --- a/winpr/libwinpr/file/test/TestFileFindFirstFile.c +++ b/winpr/libwinpr/file/test/TestFileFindFirstFile.c @@ -6,9 +6,9 @@ #include #include -TCHAR testFile1[] = _T("TestFile1"); -TCHAR testFile2[] = _T("TestFile2"); -TCHAR testFile3[] = _T("TestFile3"); +static TCHAR testFile1[] = _T("TestFile1"); +static TCHAR testFile2[] = _T("TestFile2"); +static TCHAR testFile3[] = _T("TestFile3"); int TestFileFindFirstFile(int argc, char* argv[]) { @@ -34,6 +34,7 @@ int TestFileFindFirstFile(int argc, char* argv[]) CopyMemory(FilePath, BasePath, length * sizeof(TCHAR)); FilePath[length] = 0; + PathCchConvertStyle(BasePath, length, PATH_STYLE_WINDOWS); NativePathCchAppend(FilePath, PATHCCH_MAX_CCH, _T("TestFile1")); _tprintf(_T("Finding file: %s\n"), FilePath); @@ -48,14 +49,12 @@ int TestFileFindFirstFile(int argc, char* argv[]) _tprintf(_T("FindFirstFile: %s"), FindData.cFileName); -#if 0 if (_tcscmp(FindData.cFileName, testFile1) != 0) { _tprintf(_T("FindFirstFile failure: Expected: %d, Actual: %s\n"), testFile1, FindData.cFileName); return -1; } -#endif FindClose(hFind); diff --git a/winpr/libwinpr/file/test/TestFileFindNextFile.c b/winpr/libwinpr/file/test/TestFileFindNextFile.c index caf4a109d..7bdb3b7f9 100644 --- a/winpr/libwinpr/file/test/TestFileFindNextFile.c +++ b/winpr/libwinpr/file/test/TestFileFindNextFile.c @@ -2,10 +2,88 @@ #include #include #include +#include +#include #include +static TCHAR testDirectory2File1[] = _T("TestDirectory2File1"); +static TCHAR testDirectory2File2[] = _T("TestDirectory2File2"); + int TestFileFindNextFile(int argc, char* argv[]) { + char* str; + int length; + BOOL status; + HANDLE hFind; + LPTSTR BasePath; + WIN32_FIND_DATA FindData; + TCHAR FilePath[PATHCCH_MAX_CCH]; + + str = argv[1]; + +#ifdef UNICODE + length = MultiByteToWideChar(CP_UTF8, 0, str, strlen(str), NULL, 0); + BasePath = (WCHAR*) malloc((length + 1) * sizeof(WCHAR)); + MultiByteToWideChar(CP_UTF8, 0, str, length, (LPWSTR) BasePath, length * sizeof(WCHAR)); + BasePath[length] = 0; +#else + BasePath = _strdup(str); + length = strlen(BasePath); +#endif + + /* Simple filter matching all files inside current directory */ + + CopyMemory(FilePath, BasePath, length * sizeof(TCHAR)); + FilePath[length] = 0; + + PathCchConvertStyle(BasePath, length, PATH_STYLE_WINDOWS); + NativePathCchAppend(FilePath, PATHCCH_MAX_CCH, _T("TestDirectory2")); + NativePathCchAppend(FilePath, PATHCCH_MAX_CCH, _T("TestDirectory2File*")); + + _tprintf(_T("Finding file: %s\n"), FilePath); + + hFind = FindFirstFile(FilePath, &FindData); + + if (hFind == INVALID_HANDLE_VALUE) + { + _tprintf(_T("FindFirstFile failure: %s\n"), FilePath); + return -1; + } + + _tprintf(_T("FindFirstFile: %s"), FindData.cFileName); + + if (_tcscmp(FindData.cFileName, testDirectory2File1) != 0) + { + _tprintf(_T("FindFirstFile failure: Expected: %d, Actual: %s\n"), + testDirectory2File1, FindData.cFileName); + return -1; + } + + status = FindNextFile(hFind, &FindData); + + if (!status) + { + _tprintf(_T("FindNextFile failure: Expected: TRUE, Actual: %d\n"), status); + return -1; + } + + if (_tcscmp(FindData.cFileName, testDirectory2File2) != 0) + { + _tprintf(_T("FindNextFile failure: Expected: %d, Actual: %s\n"), + testDirectory2File2, FindData.cFileName); + return -1; + } + + status = FindNextFile(hFind, &FindData); + + if (status) + { + _tprintf(_T("FindNextFile failure: Expected: FALSE, Actual: %d\n"), status); + return -1; + } + + FindClose(hFind); + return 0; } diff --git a/winpr/libwinpr/library/test/CMakeLists.txt b/winpr/libwinpr/library/test/CMakeLists.txt index 371a12812..350993cc1 100644 --- a/winpr/libwinpr/library/test/CMakeLists.txt +++ b/winpr/libwinpr/library/test/CMakeLists.txt @@ -27,7 +27,7 @@ target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS}) set_target_properties(${MODULE_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${TESTING_OUTPUT_DIRECTORY}") -set(TEST_AREA "${TESTING_OUTPUT_DIRECTORY}/${MODULE_NAME}Area") +set(TEST_AREA "${MODULE_NAME}Area") foreach(test ${${MODULE_PREFIX}_TESTS}) get_filename_component(TestName ${test} NAME_WE) diff --git a/winpr/libwinpr/library/test/TestLibraryA/CMakeLists.txt b/winpr/libwinpr/library/test/TestLibraryA/CMakeLists.txt index 704c0a773..f66d29a09 100644 --- a/winpr/libwinpr/library/test/TestLibraryA/CMakeLists.txt +++ b/winpr/libwinpr/library/test/TestLibraryA/CMakeLists.txt @@ -28,7 +28,6 @@ add_library(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS}) set_target_properties(${MODULE_NAME} PROPERTIES PREFIX "") -set_target_properties(${MODULE_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${TEST_AREA}/${MODULE_NAME}") +set_target_properties(${MODULE_NAME} PROPERTIES PREFIX "${TEST_AREA}/${MODULE_NAME}/") set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "WinPR/Test/Extra") - diff --git a/winpr/libwinpr/library/test/TestLibraryB/CMakeLists.txt b/winpr/libwinpr/library/test/TestLibraryB/CMakeLists.txt index e917c5b07..1c095d55b 100644 --- a/winpr/libwinpr/library/test/TestLibraryB/CMakeLists.txt +++ b/winpr/libwinpr/library/test/TestLibraryB/CMakeLists.txt @@ -28,6 +28,6 @@ add_library(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS}) set_target_properties(${MODULE_NAME} PROPERTIES PREFIX "") -set_target_properties(${MODULE_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${TEST_AREA}/${MODULE_NAME}") +set_target_properties(${MODULE_NAME} PROPERTIES PREFIX "${TEST_AREA}/${MODULE_NAME}/") set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "WinPR/Test/Extra") diff --git a/winpr/libwinpr/library/test/TestLibraryFreeLibrary.c b/winpr/libwinpr/library/test/TestLibraryFreeLibrary.c index 70f594433..95f0807f9 100644 --- a/winpr/libwinpr/library/test/TestLibraryFreeLibrary.c +++ b/winpr/libwinpr/library/test/TestLibraryFreeLibrary.c @@ -28,6 +28,8 @@ int TestLibraryFreeLibrary(int argc, char* argv[]) #endif CopyMemory(LibraryPath, BasePath, length * sizeof(TCHAR)); + LibraryPath[length] = 0; + NativePathCchAppend(LibraryPath, PATHCCH_MAX_CCH, _T("TestLibraryA")); /* subdirectory */ NativePathCchAppend(LibraryPath, PATHCCH_MAX_CCH, _T("TestLibraryA")); /* file name without extension */ diff --git a/winpr/libwinpr/library/test/TestLibraryGetProcAddress.c b/winpr/libwinpr/library/test/TestLibraryGetProcAddress.c index a5f8df03a..54cc190cf 100644 --- a/winpr/libwinpr/library/test/TestLibraryGetProcAddress.c +++ b/winpr/libwinpr/library/test/TestLibraryGetProcAddress.c @@ -33,6 +33,8 @@ int TestLibraryGetProcAddress(int argc, char* argv[]) #endif CopyMemory(LibraryPath, BasePath, length * sizeof(TCHAR)); + LibraryPath[length] = 0; + NativePathCchAppend(LibraryPath, PATHCCH_MAX_CCH, _T("TestLibraryA")); /* subdirectory */ NativePathCchAppend(LibraryPath, PATHCCH_MAX_CCH, _T("TestLibraryA")); /* file name without extension */ @@ -49,7 +51,7 @@ int TestLibraryGetProcAddress(int argc, char* argv[]) return -1; } - pFunctionA = (TEST_AB_FN) GetProcAddress(library, _T("FunctionA")); + pFunctionA = (TEST_AB_FN) GetProcAddress(library, "FunctionA"); if (!pFunctionA) { @@ -57,7 +59,7 @@ int TestLibraryGetProcAddress(int argc, char* argv[]) return -1; } - pFunctionB = (TEST_AB_FN) GetProcAddress(library, _T("FunctionB")); + pFunctionB = (TEST_AB_FN) GetProcAddress(library, "FunctionB"); if (!pFunctionB) { diff --git a/winpr/libwinpr/path/path.c b/winpr/libwinpr/path/path.c index 6181ad294..e86cf4eaa 100644 --- a/winpr/libwinpr/path/path.c +++ b/winpr/libwinpr/path/path.c @@ -811,17 +811,17 @@ static const CHAR SharedLibraryExtensionDllA[] = "dll"; static const CHAR SharedLibraryExtensionSoA[] = "so"; static const CHAR SharedLibraryExtensionDylibA[] = "dylib"; -static const WCHAR SharedLibraryExtensionDllW[] = { 'd','l','l' }; -static const WCHAR SharedLibraryExtensionSoW[] = { 's','o' }; -static const WCHAR SharedLibraryExtensionDylibW[] = { 'd','y','l','i','b' }; +static const WCHAR SharedLibraryExtensionDllW[] = { 'd','l','l','\0' }; +static const WCHAR SharedLibraryExtensionSoW[] = { 's','o','\0' }; +static const WCHAR SharedLibraryExtensionDylibW[] = { 'd','y','l','i','b','\0' }; static const CHAR SharedLibraryExtensionDotDllA[] = ".dll"; static const CHAR SharedLibraryExtensionDotSoA[] = ".so"; static const CHAR SharedLibraryExtensionDotDylibA[] = ".dylib"; -static const WCHAR SharedLibraryExtensionDotDllW[] = { '.','d','l','l' }; -static const WCHAR SharedLibraryExtensionDotSoW[] = { '.','s','o' }; -static const WCHAR SharedLibraryExtensionDotDylibW[] = { '.','d','y','l','i','b' }; +static const WCHAR SharedLibraryExtensionDotDllW[] = { '.','d','l','l','\0' }; +static const WCHAR SharedLibraryExtensionDotSoW[] = { '.','s','o','\0' }; +static const WCHAR SharedLibraryExtensionDotDylibW[] = { '.','d','y','l','i','b','\0' }; PCSTR PathGetSharedLibraryExtensionA(unsigned long dwFlags) {