Merge pull request #11140 from akallabeth/warn-fixes

Warn fixes, code cleanups
This commit is contained in:
akallabeth
2025-02-10 10:03:18 +01:00
committed by GitHub
24 changed files with 87 additions and 299 deletions

View File

@@ -185,14 +185,10 @@ static PresentationContext* PresentationContext_new(VideoClientContext* video, B
UINT32 x, UINT32 y, UINT32 width, UINT32 height)
{
size_t s = 4ULL * width * height;
VideoClientContextPriv* priv = NULL;
PresentationContext* ret = NULL;
WINPR_ASSERT(video);
priv = video->priv;
WINPR_ASSERT(priv);
if (s > INT32_MAX)
return NULL;

View File

@@ -416,17 +416,6 @@ uint32_t sdlInput::prefToMask()
return mod;
}
static const char* sdl_scancode_name(Uint32 scancode)
{
for (const auto& cur : map)
{
if (cur.sdl == scancode)
return cur.sdl_name;
}
return "SDL_SCANCODE_UNKNOWN";
}
static Uint32 sdl_scancode_val(const char* scancodeName)
{
for (const auto& cur : map)
@@ -438,28 +427,6 @@ static Uint32 sdl_scancode_val(const char* scancodeName)
return SDL_SCANCODE_UNKNOWN;
}
static const char* sdl_rdp_scancode_name(UINT32 scancode)
{
for (const auto& cur : map)
{
if (cur.rdp == scancode)
return cur.rdp_name;
}
return "RDP_SCANCODE_UNKNOWN";
}
static UINT32 sdl_rdp_scancode_val(const char* scancodeName)
{
for (const auto& cur : map)
{
if (strcmp(cur.rdp_name, scancodeName) == 0)
return cur.rdp;
}
return RDP_SCANCODE_UNKNOWN;
}
static UINT32 sdl_scancode_to_rdp(Uint32 scancode)
{
UINT32 rdp = RDP_SCANCODE_UNKNOWN;

View File

@@ -78,30 +78,6 @@ int sdl_list_monitors(SdlContext* sdl)
return 0;
}
static BOOL sdl_is_monitor_id_active(SdlContext* sdl, UINT32 id)
{
const rdpSettings* settings = nullptr;
WINPR_ASSERT(sdl);
settings = sdl->context()->settings;
WINPR_ASSERT(settings);
const UINT32 NumMonitorIds = freerdp_settings_get_uint32(settings, FreeRDP_NumMonitorIds);
if (!NumMonitorIds)
return TRUE;
for (UINT32 index = 0; index < NumMonitorIds; index++)
{
auto cur = static_cast<const UINT32*>(
freerdp_settings_get_pointer_array(settings, FreeRDP_MonitorIds, index));
if (cur && (*cur == id))
return TRUE;
}
return FALSE;
}
static BOOL sdl_apply_max_size(SdlContext* sdl, UINT32* pMaxWidth, UINT32* pMaxHeight)
{
WINPR_ASSERT(sdl);

View File

@@ -185,7 +185,6 @@ static const scancode_entry_t map[] = {
ENTRY(SDL_SCANCODE_AC_FORWARD, RDP_SCANCODE_BROWSER_FORWARD),
ENTRY(SDL_SCANCODE_AC_STOP, RDP_SCANCODE_BROWSER_STOP),
#if 1 // TODO: unmapped
ENTRY(SDL_SCANCODE_NONUSHASH, RDP_SCANCODE_UNKNOWN),
ENTRY(SDL_SCANCODE_APPLICATION, RDP_SCANCODE_UNKNOWN),
ENTRY(SDL_SCANCODE_POWER, RDP_SCANCODE_UNKNOWN),
@@ -280,7 +279,6 @@ static const scancode_entry_t map[] = {
ENTRY(SDL_SCANCODE_MEDIA_EJECT, RDP_SCANCODE_UNKNOWN),
ENTRY(SDL_SCANCODE_MEDIA_REWIND, RDP_SCANCODE_UNKNOWN),
ENTRY(SDL_SCANCODE_MEDIA_FAST_FORWARD, RDP_SCANCODE_UNKNOWN)
#endif
};
static UINT32 sdl_get_kbd_flags()
@@ -390,17 +388,6 @@ uint32_t sdlInput::prefToMask()
return mod;
}
static const char* sdl_scancode_name(Uint32 scancode)
{
for (const auto& cur : map)
{
if (cur.sdl == scancode)
return cur.sdl_name;
}
return "SDL_SCANCODE_UNKNOWN";
}
static Uint32 sdl_scancode_val(const char* scancodeName)
{
for (const auto& cur : map)
@@ -412,28 +399,6 @@ static Uint32 sdl_scancode_val(const char* scancodeName)
return SDL_SCANCODE_UNKNOWN;
}
static const char* sdl_rdp_scancode_name(UINT32 scancode)
{
for (const auto& cur : map)
{
if (cur.rdp == scancode)
return cur.rdp_name;
}
return "RDP_SCANCODE_UNKNOWN";
}
static UINT32 sdl_rdp_scancode_val(const char* scancodeName)
{
for (const auto& cur : map)
{
if (strcmp(cur.rdp_name, scancodeName) == 0)
return cur.rdp;
}
return RDP_SCANCODE_UNKNOWN;
}
static UINT32 sdl_scancode_to_rdp(Uint32 scancode)
{
UINT32 rdp = RDP_SCANCODE_UNKNOWN;

View File

@@ -81,30 +81,6 @@ int sdl_list_monitors(SdlContext* sdl)
return 0;
}
static BOOL sdl_is_monitor_id_active(SdlContext* sdl, UINT32 id)
{
const rdpSettings* settings = nullptr;
WINPR_ASSERT(sdl);
settings = sdl->context()->settings;
WINPR_ASSERT(settings);
const UINT32 NumMonitorIds = freerdp_settings_get_uint32(settings, FreeRDP_NumMonitorIds);
if (!NumMonitorIds)
return TRUE;
for (UINT32 index = 0; index < NumMonitorIds; index++)
{
auto cur = static_cast<const UINT32*>(
freerdp_settings_get_pointer_array(settings, FreeRDP_MonitorIds, index));
if (cur && (*cur == id))
return TRUE;
}
return FALSE;
}
static BOOL sdl_apply_max_size(SdlContext* sdl, UINT32* pMaxWidth, UINT32* pMaxHeight)
{
WINPR_ASSERT(sdl);

View File

@@ -32,12 +32,6 @@
#include "tf_channels.h"
#include "tf_freerdp.h"
static UINT tf_update_surfaces(RdpgfxClientContext* context)
{
WINPR_UNUSED(context);
return CHANNEL_RC_OK;
}
void tf_OnChannelConnectedEventHandler(void* context, const ChannelConnectedEventArgs* e)
{
tfContext* tf = (tfContext*)context;

View File

@@ -1151,20 +1151,16 @@ static void xf_button_map_init(xfContext* xfc)
*/
static BOOL xf_pre_connect(freerdp* instance)
{
rdpChannels* channels = NULL;
rdpSettings* settings = NULL;
rdpContext* context = NULL;
xfContext* xfc = NULL;
UINT32 maxWidth = 0;
UINT32 maxHeight = 0;
WINPR_ASSERT(instance);
context = instance->context;
xfc = (xfContext*)instance->context;
rdpContext* context = instance->context;
WINPR_ASSERT(context);
xfContext* xfc = (xfContext*)context;
settings = context->settings;
rdpSettings* settings = context->settings;
WINPR_ASSERT(settings);
if (!freerdp_settings_set_bool(settings, FreeRDP_CertificateCallbackPreferPEM, TRUE))
@@ -1176,9 +1172,6 @@ static BOOL xf_pre_connect(freerdp* instance)
return FALSE;
}
channels = context->channels;
WINPR_ASSERT(channels);
if (!freerdp_settings_set_uint32(settings, FreeRDP_OsMajorType, OSMAJORTYPE_UNIX))
return FALSE;
if (!freerdp_settings_set_uint32(settings, FreeRDP_OsMinorType, OSMINORTYPE_NATIVE_XSERVER))

View File

@@ -202,23 +202,6 @@ static BOOL requested_format_replace(RequestedFormat** ppRequestedFormat, UINT32
return TRUE;
}
static BOOL requested_format_matches(const RequestedFormat* pRequestedFormat, UINT32 formatId,
const char* formatName)
{
if (!pRequestedFormat)
return FALSE;
if (pRequestedFormat->formatToRequest != formatId)
return FALSE;
if (formatName || pRequestedFormat->formatName)
{
if (!formatName || !pRequestedFormat->formatName)
return FALSE;
if (strcmp(formatName, pRequestedFormat->formatName) != 0)
return FALSE;
}
return TRUE;
}
static void xf_cached_data_free(void* ptr)
{
xfCachedData* cached_data = ptr;
@@ -1039,22 +1022,6 @@ static void xf_cliprdr_process_requested_data(xfClipboard* clipboard, BOOL hasDa
free(pDstData);
}
static BOOL xf_add_input_flags(xfClipboard* clipboard, long mask)
{
WINPR_ASSERT(clipboard);
xfContext* xfc = clipboard->xfc;
WINPR_ASSERT(xfc);
XWindowAttributes attr = { 0 };
XGetWindowAttributes(xfc->display, xfc->drawable, &attr);
if ((attr.all_event_masks & mask) == 0)
clipboard->event_mask = attr.all_event_masks;
XSelectInput(xfc->display, xfc->drawable, attr.all_event_masks | mask);
return TRUE;
}
static BOOL xf_restore_input_flags(xfClipboard* clipboard)
{
WINPR_ASSERT(clipboard);

View File

@@ -194,20 +194,14 @@ static BOOL xf_action_script_append(xfContext* xfc, const char* buffer, size_t s
BOOL xf_event_action_script_init(xfContext* xfc)
{
wObject* obj = NULL;
const rdpSettings* settings = NULL;
WINPR_ASSERT(xfc);
settings = xfc->common.context.settings;
WINPR_ASSERT(settings);
xfc->xevents = ArrayList_New(TRUE);
if (!xfc->xevents)
return FALSE;
obj = ArrayList_Object(xfc->xevents);
wObject* obj = ArrayList_Object(xfc->xevents);
WINPR_ASSERT(obj);
obj->fnObjectNew = winpr_ObjectStringClone;
obj->fnObjectFree = winpr_ObjectStringFree;

View File

@@ -223,15 +223,11 @@ static BOOL register_raw_events(xfContext* xfc, Window window)
static BOOL register_device_events(xfContext* xfc, Window window)
{
XIEventMask mask;
XIEventMask mask = { 0 };
unsigned char mask_bytes[XIMaskLen(XI_LASTEVENT)] = { 0 };
rdpSettings* settings = NULL;
WINPR_ASSERT(xfc);
settings = xfc->common.context.settings;
WINPR_ASSERT(settings);
XISetMask(mask_bytes, XI_DeviceChanged);
XISetMask(mask_bytes, XI_HierarchyChanged);
@@ -750,8 +746,6 @@ static int xf_input_pens_unhover(xfContext* xfc)
int xf_input_event(xfContext* xfc, const XEvent* xevent, XIDeviceEvent* event, int evtype)
{
const rdpSettings* settings = NULL;
WINPR_ASSERT(xfc);
WINPR_ASSERT(xevent);
WINPR_ASSERT(event);
@@ -761,9 +755,6 @@ int xf_input_event(xfContext* xfc, const XEvent* xevent, XIDeviceEvent* event, i
*/
const Window w = xevent->xany.window;
settings = xfc->common.context.settings;
WINPR_ASSERT(settings);
xfWindow* window = xfc->window;
if (window)
{

View File

@@ -117,18 +117,14 @@ static BOOL xf_action_script_append(xfContext* xfc, const char* buffer, size_t s
static BOOL xf_keyboard_action_script_init(xfContext* xfc)
{
wObject* obj = NULL;
const rdpSettings* settings = NULL;
settings = xfc->common.context.settings;
WINPR_ASSERT(settings);
WINPR_ASSERT(xfc);
xfc->keyCombinations = ArrayList_New(TRUE);
if (!xfc->keyCombinations)
return FALSE;
obj = ArrayList_Object(xfc->keyCombinations);
wObject* obj = ArrayList_Object(xfc->keyCombinations);
WINPR_ASSERT(obj);
obj->fnObjectNew = winpr_ObjectStringClone;
obj->fnObjectFree = winpr_ObjectStringFree;

View File

@@ -173,13 +173,9 @@ void xf_rail_end_local_move(xfContext* xfc, xfAppWindow* appWindow)
unsigned int mask = 0;
Window root_window = 0;
Window child_window = 0;
rdpInput* input = NULL;
WINPR_ASSERT(xfc);
input = xfc->common.context.input;
WINPR_ASSERT(input);
if ((appWindow->local_move.direction == _NET_WM_MOVERESIZE_MOVE_KEYBOARD) ||
(appWindow->local_move.direction == _NET_WM_MOVERESIZE_SIZE_KEYBOARD))
{

View File

@@ -1664,14 +1664,6 @@ static BOOL cliprdr_file_content_changed_and_update(void* ihash, size_t hsize, c
return changed;
}
static BOOL cliprdr_file_server_content_changed_and_update(CliprdrFileContext* file,
const void* data, size_t size)
{
WINPR_ASSERT(file);
return cliprdr_file_content_changed_and_update(file->server_data_hash,
sizeof(file->server_data_hash), data, size);
}
static BOOL cliprdr_file_client_content_changed_and_update(CliprdrFileContext* file,
const void* data, size_t size)
{

View File

@@ -201,30 +201,30 @@ typedef enum
KBD_PERSIAN = 0x00050429,
KBD_US_ENGLISH_TABLE_FOR_IBM_ARABIC_238_L = 0x00050409,
KBD_GREEK_POLYTONIC = 0x00060408,
KBD_FRENCH_BEPO = 0xa000040c,
KBD_GERMAN_NEO = 0xB0000407
KBD_FRENCH_BEPO = WINPR_CXX_COMPAT_CAST(int, 0xa000040c),
KBD_GERMAN_NEO = WINPR_CXX_COMPAT_CAST(int, 0xB0000407)
} FREERDP_KBD_LAYPUT_VARIANT_ID;
/* Global Input Method Editor (IME) IDs */
typedef enum
{
KBD_CHINESE_TRADITIONAL_PHONETIC = 0xE0010404,
KBD_JAPANESE_INPUT_SYSTEM_MS_IME2002 = 0xE0010411,
KBD_KOREAN_INPUT_SYSTEM_IME_2000 = 0xE0010412,
KBD_CHINESE_SIMPLIFIED_QUANPIN = 0xE0010804,
KBD_CHINESE_TRADITIONAL_CHANGJIE = 0xE0020404,
KBD_CHINESE_SIMPLIFIED_SHUANGPIN = 0xE0020804,
KBD_CHINESE_TRADITIONAL_QUICK = 0xE0030404,
KBD_CHINESE_SIMPLIFIED_ZHENGMA = 0xE0030804,
KBD_CHINESE_TRADITIONAL_BIG5_CODE = 0xE0040404,
KBD_CHINESE_TRADITIONAL_ARRAY = 0xE0050404,
KBD_CHINESE_SIMPLIFIED_NEIMA = 0xE0050804,
KBD_CHINESE_TRADITIONAL_DAYI = 0xE0060404,
KBD_CHINESE_TRADITIONAL_UNICODE = 0xE0070404,
KBD_CHINESE_TRADITIONAL_NEW_PHONETIC = 0xE0080404,
KBD_CHINESE_TRADITIONAL_NEW_CHANGJIE = 0xE0090404,
KBD_CHINESE_TRADITIONAL_MICROSOFT_PINYIN_IME_3 = 0xE00E0804,
KBD_CHINESE_TRADITIONAL_ALPHANUMERIC = 0xE00F0404
KBD_CHINESE_TRADITIONAL_PHONETIC = WINPR_CXX_COMPAT_CAST(int, 0xE0010404),
KBD_JAPANESE_INPUT_SYSTEM_MS_IME2002 = WINPR_CXX_COMPAT_CAST(int, 0xE0010411),
KBD_KOREAN_INPUT_SYSTEM_IME_2000 = WINPR_CXX_COMPAT_CAST(int, 0xE0010412),
KBD_CHINESE_SIMPLIFIED_QUANPIN = WINPR_CXX_COMPAT_CAST(int, 0xE0010804),
KBD_CHINESE_TRADITIONAL_CHANGJIE = WINPR_CXX_COMPAT_CAST(int, 0xE0020404),
KBD_CHINESE_SIMPLIFIED_SHUANGPIN = WINPR_CXX_COMPAT_CAST(int, 0xE0020804),
KBD_CHINESE_TRADITIONAL_QUICK = WINPR_CXX_COMPAT_CAST(int, 0xE0030404),
KBD_CHINESE_SIMPLIFIED_ZHENGMA = WINPR_CXX_COMPAT_CAST(int, 0xE0030804),
KBD_CHINESE_TRADITIONAL_BIG5_CODE = WINPR_CXX_COMPAT_CAST(int, 0xE0040404),
KBD_CHINESE_TRADITIONAL_ARRAY = WINPR_CXX_COMPAT_CAST(int, 0xE0050404),
KBD_CHINESE_SIMPLIFIED_NEIMA = WINPR_CXX_COMPAT_CAST(int, 0xE0050804),
KBD_CHINESE_TRADITIONAL_DAYI = WINPR_CXX_COMPAT_CAST(int, 0xE0060404),
KBD_CHINESE_TRADITIONAL_UNICODE = WINPR_CXX_COMPAT_CAST(int, 0xE0070404),
KBD_CHINESE_TRADITIONAL_NEW_PHONETIC = WINPR_CXX_COMPAT_CAST(int, 0xE0080404),
KBD_CHINESE_TRADITIONAL_NEW_CHANGJIE = WINPR_CXX_COMPAT_CAST(int, 0xE0090404),
KBD_CHINESE_TRADITIONAL_MICROSOFT_PINYIN_IME_3 = WINPR_CXX_COMPAT_CAST(int, 0xE00E0804),
KBD_CHINESE_TRADITIONAL_ALPHANUMERIC = WINPR_CXX_COMPAT_CAST(int, 0xE00F0404)
} FREERDP_KBD_IME_ID;
/** @brief Deallocation function for a \b RDP_KEYBOARD_LAYOUT array of \b count size

View File

@@ -254,20 +254,6 @@ BOOL audio_format_compatible(const AUDIO_FORMAT* with, const AUDIO_FORMAT* what)
return TRUE;
}
static BOOL audio_format_valid(const AUDIO_FORMAT* format)
{
if (!format)
return FALSE;
if (format->nChannels == 0)
return FALSE;
if (format->nSamplesPerSec == 0)
return FALSE;
return TRUE;
}
AUDIO_FORMAT* audio_format_new(void)
{
return audio_formats_new(1);

View File

@@ -435,33 +435,6 @@ autodetect_on_connect_time_auto_detect_progress_default(rdpAutoDetect* autodetec
return autodetect->state;
}
static BOOL autodetect_send_netchar_sync(rdpAutoDetect* autodetect, RDP_TRANSPORT_TYPE transport,
UINT16 sequenceNumber)
{
wStream* s = NULL;
WINPR_ASSERT(autodetect);
WINPR_ASSERT(autodetect->context);
WINPR_ASSERT(autodetect->context->rdp);
/* Send the response PDU to the server */
s = rdp_message_channel_pdu_init(autodetect->context->rdp);
if (!s)
return FALSE;
WLog_Print(autodetect->log, WLOG_TRACE,
"sending Network Characteristics Sync PDU -> bandwidth=%" PRIu32 ", rtt=%" PRIu32 "",
autodetect->netCharBandwidth, autodetect->netCharAverageRTT);
Stream_Write_UINT8(s, 0x0E); /* headerLength (1 byte) */
Stream_Write_UINT8(s, TYPE_ID_AUTODETECT_RESPONSE); /* headerTypeId (1 byte) */
Stream_Write_UINT16(s, sequenceNumber); /* sequenceNumber (2 bytes) */
Stream_Write_UINT16(s, RDP_NETCHAR_SYNC_RESPONSE_TYPE); /* responseType (1 byte) */
Stream_Write_UINT32(s, autodetect->netCharBandwidth); /* bandwidth (4 bytes) */
Stream_Write_UINT32(s, autodetect->netCharAverageRTT); /* rtt (4 bytes) */
return rdp_send_message_channel_pdu(autodetect->context->rdp, s, SEC_AUTODETECT_RSP);
}
static BOOL autodetect_recv_rtt_measure_request(rdpAutoDetect* autodetect,
RDP_TRANSPORT_TYPE transport, wStream* s,
const AUTODETECT_REQ_PDU* autodetectReqPdu)

View File

@@ -65,12 +65,13 @@ enum LicenseRequestType
ERROR_ALERT = 0xFF
};
// #define LICENSE_PKT_CS_MASK \
// (LICENSE_INFO | NEW_LICENSE_REQUEST | PLATFORM_CHALLENGE_RESPONSE | ERROR_ALERT)
//#define LICENSE_PKT_SC_MASK \
// (LICENSE_REQUEST | PLATFORM_CHALLENGE | NEW_LICENSE | UPGRADE_LICENSE | ERROR_ALERT)
//#define LICENSE_PKT_MASK (LICENSE_PKT_CS_MASK | LICENSE_PKT_SC_MASK)
/*
#define LICENSE_PKT_CS_MASK \
(LICENSE_INFO | NEW_LICENSE_REQUEST | PLATFORM_CHALLENGE_RESPONSE | ERROR_ALERT)
#define LICENSE_PKT_SC_MASK \
(LICENSE_REQUEST | PLATFORM_CHALLENGE | NEW_LICENSE | UPGRADE_LICENSE | ERROR_ALERT)
#define LICENSE_PKT_MASK (LICENSE_PKT_CS_MASK | LICENSE_PKT_SC_MASK)
*/
#define LICENSE_PREAMBLE_LENGTH 4
/* Cryptographic Lengths */

View File

@@ -109,6 +109,7 @@ static BOOL primitives_init_optimized(primitives_t* prims)
return TRUE;
}
#if defined(HAVE_CPU_OPTIMIZED_PRIMITIVES) && defined(WITH_OPENCL)
typedef struct
{
BYTE* channels[3];
@@ -165,7 +166,6 @@ fail:
return ret;
}
#if defined(HAVE_CPU_OPTIMIZED_PRIMITIVES) && defined(WITH_OPENCL)
static BOOL primitives_YUV_benchmark_run(primitives_YUV_benchmark* bench, primitives_t* prims,
UINT64 runTime, UINT32* computations)
{

View File

@@ -41,12 +41,6 @@ static inline __m256i mm256_set_epu32(uint32_t i0, uint32_t i1, uint32_t i2, uin
(int32_t)i5, (int32_t)i6, (int32_t)i7);
}
static INLINE pstatus_t avx2_image_copy_no_overlap_convert(
BYTE* WINPR_RESTRICT pDstData, DWORD DstFormat, UINT32 nDstStep, UINT32 nXDst, UINT32 nYDst,
UINT32 nWidth, UINT32 nHeight, const BYTE* WINPR_RESTRICT pSrcData, DWORD SrcFormat,
UINT32 nSrcStep, UINT32 nXSrc, UINT32 nYSrc, const gdiPalette* WINPR_RESTRICT palette,
SSIZE_T srcVMultiplier, SSIZE_T srcVOffset, SSIZE_T dstVMultiplier, SSIZE_T dstVOffset);
static INLINE pstatus_t avx2_image_copy_bgr24_bgrx32(BYTE* WINPR_RESTRICT pDstData, UINT32 nDstStep,
UINT32 nXDst, UINT32 nYDst, UINT32 nWidth,
UINT32 nHeight,

View File

@@ -1,3 +1,6 @@
add_subdirectory(TestLibraryA)
add_subdirectory(TestLibraryB)
set(MODULE_NAME "TestLibrary")
set(MODULE_PREFIX "TEST_LIBRARY")
@@ -11,6 +14,8 @@ create_test_sourcelist(${MODULE_PREFIX}_SRCS ${${MODULE_PREFIX}_DRIVER} ${${MODU
add_executable(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})
add_dependencies(${MODULE_NAME} TestLibraryA TestLibraryB)
target_link_libraries(${MODULE_NAME} winpr)
set_target_properties(${MODULE_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${TESTING_OUTPUT_DIRECTORY}")
@@ -23,6 +28,3 @@ foreach(test ${${MODULE_PREFIX}_TESTS})
endforeach()
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "WinPR/Test")
add_subdirectory(TestLibraryA)
add_subdirectory(TestLibraryB)

View File

@@ -18,12 +18,13 @@
set(MODULE_NAME "TestLibraryA")
set(MODULE_PREFIX "TEST_LIBRARY_A")
set(${MODULE_PREFIX}_SRCS ${${MODULE_PREFIX}_SRCS} TestLibraryA.c)
add_library(${MODULE_NAME} SHARED ${${MODULE_PREFIX}_SRCS})
set(SRCS TestLibraryA.c)
add_library(${MODULE_NAME} SHARED ${SRCS})
set_target_properties(${MODULE_NAME} PROPERTIES PREFIX "")
set_target_properties(${MODULE_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${TESTING_OUTPUT_DIRECTORY}")
set_target_properties(
${MODULE_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${TESTING_OUTPUT_DIRECTORY}" RUNTIME_OUTPUT_DIRECTORY
"${TESTING_OUTPUT_DIRECTORY}"
)
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "WinPR/Test/Extra")

View File

@@ -18,12 +18,14 @@
set(MODULE_NAME "TestLibraryB")
set(MODULE_PREFIX "TEST_LIBRARY_B")
set(${MODULE_PREFIX}_SRCS ${${MODULE_PREFIX}_SRCS} TestLibraryB.c)
set(SRCS TestLibraryB.c)
add_library(${MODULE_NAME} SHARED ${${MODULE_PREFIX}_SRCS})
add_library(${MODULE_NAME} SHARED ${SRCS})
set_target_properties(${MODULE_NAME} PROPERTIES PREFIX "")
set_target_properties(${MODULE_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${TESTING_OUTPUT_DIRECTORY}")
set_target_properties(
${MODULE_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${TESTING_OUTPUT_DIRECTORY}" RUNTIME_OUTPUT_DIRECTORY
"${TESTING_OUTPUT_DIRECTORY}"
)
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "WinPR/Test/Extra")

View File

@@ -5,6 +5,7 @@
#include <winpr/tchar.h>
#include <winpr/windows.h>
#include <winpr/library.h>
#include <winpr/nt.h>
typedef int (*TEST_AB_FN)(int a, int b);
@@ -17,13 +18,16 @@ int TestLibraryGetProcAddress(int argc, char* argv[])
TEST_AB_FN pFunctionA = NULL;
TEST_AB_FN pFunctionB = NULL;
LPCSTR SharedLibraryExtension = NULL;
CHAR LibraryPath[PATHCCH_MAX_CCH];
CHAR LibraryPath[PATHCCH_MAX_CCH] = { 0 };
PCHAR p = NULL;
WINPR_UNUSED(argc);
WINPR_UNUSED(argv);
if (!GetModuleFileNameA(NULL, LibraryPath, PATHCCH_MAX_CCH))
{
printf("%s: GetModuleFilenameA failed: 0x%08" PRIX32 "\n", __func__, GetLastError());
const UINT32 err = GetLastError();
const HRESULT herr = HRESULT_FROM_WIN32(err);
printf("%s: GetModuleFilenameA failed: %s - %s [0x%08" PRIX32 "]\n", __func__,
NtStatus2Tag(herr), Win32ErrorCode2Tag(err), err);
return -1;
}
@@ -43,19 +47,28 @@ int TestLibraryGetProcAddress(int argc, char* argv[])
if (!(library = LoadLibraryA(LibraryPath)))
{
printf("%s: LoadLibraryA failure: 0x%08" PRIX32 "\n", __func__, GetLastError());
const UINT32 err = GetLastError();
const HRESULT herr = HRESULT_FROM_WIN32(err);
printf("%s: LoadLibraryA failure: %s - %s [0x%08" PRIX32 "]\n", __func__,
NtStatus2Tag(herr), Win32ErrorCode2Tag(err), err);
return -1;
}
if (!(pFunctionA = GetProcAddressAs(library, "FunctionA", TEST_AB_FN)))
{
printf("%s: GetProcAddress failure (FunctionA)\n", __func__);
const UINT32 err = GetLastError();
const HRESULT herr = HRESULT_FROM_WIN32(err);
printf("%s: GetProcAddress failure (FunctionA) %s - %s [0x%08" PRIX32 "]\n", __func__,
NtStatus2Tag(herr), Win32ErrorCode2Tag(err), err);
return -1;
}
if (!(pFunctionB = GetProcAddressAs(library, "FunctionB", TEST_AB_FN)))
{
printf("%s: GetProcAddress failure (FunctionB)\n", __func__);
const UINT32 err = GetLastError();
const HRESULT herr = HRESULT_FROM_WIN32(err);
printf("%s: GetProcAddress failure (FunctionB) %s - %s [0x%08" PRIX32 "]\n", __func__,
NtStatus2Tag(herr), Win32ErrorCode2Tag(err), err);
return -1;
}
@@ -81,7 +94,10 @@ int TestLibraryGetProcAddress(int argc, char* argv[])
if (!FreeLibrary(library))
{
printf("%s: FreeLibrary failure: 0x%08" PRIX32 "\n", __func__, GetLastError());
const UINT32 err = GetLastError();
const HRESULT herr = HRESULT_FROM_WIN32(err);
printf("%s: FreeLibrary failure: %s - %s [0x%08" PRIX32 "]\n", __func__, NtStatus2Tag(herr),
Win32ErrorCode2Tag(err), err);
return -1;
}

View File

@@ -5,18 +5,22 @@
#include <winpr/tchar.h>
#include <winpr/windows.h>
#include <winpr/library.h>
#include <winpr/nt.h>
int TestLibraryLoadLibrary(int argc, char* argv[])
{
HINSTANCE library = NULL;
LPCSTR SharedLibraryExtension = NULL;
CHAR LibraryPath[PATHCCH_MAX_CCH];
CHAR LibraryPath[PATHCCH_MAX_CCH] = { 0 };
PCHAR p = NULL;
WINPR_UNUSED(argc);
WINPR_UNUSED(argv);
if (!GetModuleFileNameA(NULL, LibraryPath, PATHCCH_MAX_CCH))
{
printf("%s: GetModuleFilenameA failed: 0x%08" PRIX32 "\n", __func__, GetLastError());
const UINT32 err = GetLastError();
const HRESULT herr = HRESULT_FROM_WIN32(err);
printf("%s: GetModuleFilenameA failed: %s - %s [0x%08" PRIX32 "]\n", __func__,
NtStatus2Tag(herr), Win32ErrorCode2Tag(err), err);
return -1;
}
@@ -37,13 +41,19 @@ int TestLibraryLoadLibrary(int argc, char* argv[])
if (!(library = LoadLibraryA(LibraryPath)))
{
printf("%s: LoadLibraryA failure: 0x%08" PRIX32 "\n", __func__, GetLastError());
const UINT32 err = GetLastError();
const HRESULT herr = HRESULT_FROM_WIN32(err);
printf("%s: LoadLibraryA failure: %s - %s [0x%08" PRIX32 "]\n", __func__,
NtStatus2Tag(herr), Win32ErrorCode2Tag(err), err);
return -1;
}
if (!FreeLibrary(library))
{
printf("%s: FreeLibrary failure: 0x%08" PRIX32 "\n", __func__, GetLastError());
const UINT32 err = GetLastError();
const HRESULT herr = HRESULT_FROM_WIN32(err);
printf("%s: FreeLibrary failure: %s - %s [0x%08" PRIX32 "]\n", __func__, NtStatus2Tag(herr),
Win32ErrorCode2Tag(err), err);
return -1;
}