[warnings] replace rand() function use

This commit is contained in:
akallabeth 2024-08-29 16:27:12 +02:00
parent bd637c6cd1
commit ba9897f8b7
No known key found for this signature in database
GPG Key ID: A49454A3FC909FD5
9 changed files with 92 additions and 16 deletions

View File

@ -5757,7 +5757,7 @@ static BOOL FuzzPlanar(void)
", nDstHeight=%" PRIu32 ", nDstStep=%" PRIu32 ", total size=%" PRIuz "\n", ", nDstHeight=%" PRIu32 ", nDstStep=%" PRIu32 ", total size=%" PRIuz "\n",
FreeRDPGetColorFormatName(DstFormat), nXDst, nYDst, nDstWidth, nDstHeight, nDstStep, FreeRDPGetColorFormatName(DstFormat), nXDst, nYDst, nDstWidth, nDstHeight, nDstStep,
sizeof(dstData)); sizeof(dstData));
freerdp_planar_switch_bgr(planar, rand() % 2); freerdp_planar_switch_bgr(planar, prand(2) % 2);
planar_decompress(planar, data, dataSize, prand(4096), prand(4096), dstData, DstFormat, planar_decompress(planar, data, dataSize, prand(4096), prand(4096), dstData, DstFormat,
nDstStep, nXDst, nYDst, nDstWidth, nDstHeight, prand(2)); nDstStep, nXDst, nYDst, nDstWidth, nDstHeight, prand(2));
} }

View File

@ -7,6 +7,7 @@
#include <freerdp/gdi/bitmap.h> #include <freerdp/gdi/bitmap.h>
#include <winpr/crt.h> #include <winpr/crt.h>
#include <winpr/crypto.h>
#include "line.h" #include "line.h"
#include "brush.h" #include "brush.h"
@ -324,6 +325,13 @@ fail:
return rc; return rc;
} }
static BYTE prand(void)
{
BYTE tmp = 0;
winpr_RAND(&tmp, sizeof(tmp));
return tmp;
}
static BOOL test_gdi_GetPixel(void) static BOOL test_gdi_GetPixel(void)
{ {
BOOL rc = TRUE; BOOL rc = TRUE;
@ -360,7 +368,7 @@ static BOOL test_gdi_GetPixel(void)
{ {
UINT32 pixel = 0; UINT32 pixel = 0;
const UINT32 color = const UINT32 color =
FreeRDPGetColor(hBitmap->format, rand(), rand(), rand(), rand()); FreeRDPGetColor(hBitmap->format, prand(), prand(), prand(), prand());
FreeRDPWriteColor(&hBitmap->data[i * hBitmap->scanline + j * bpp], hBitmap->format, FreeRDPWriteColor(&hBitmap->data[i * hBitmap->scanline + j * bpp], hBitmap->format,
color); color);
pixel = gdi_GetPixel(hdc, j, i); pixel = gdi_GetPixel(hdc, j, i);
@ -412,7 +420,7 @@ static BOOL test_gdi_SetPixel(void)
{ {
UINT32 pixel = 0; UINT32 pixel = 0;
const UINT32 color = const UINT32 color =
FreeRDPGetColor(hBitmap->format, rand(), rand(), rand(), rand()); FreeRDPGetColor(hBitmap->format, prand(), prand(), prand(), prand());
gdi_SetPixel(hdc, j, i, color); gdi_SetPixel(hdc, j, i, color);
pixel = FreeRDPReadColor(&hBitmap->data[i * hBitmap->scanline + j * bpp], pixel = FreeRDPReadColor(&hBitmap->data[i * hBitmap->scanline + j * bpp],
hBitmap->format); hBitmap->format);

View File

@ -687,6 +687,15 @@ static BOOL compare_yuv420(BYTE** planesA, BYTE** planesB, UINT32 width, UINT32
return rc; return rc;
} }
static UINT32 prand(UINT32 max)
{
UINT32 tmp = 0;
if (max <= 1)
return 1;
winpr_RAND(&tmp, sizeof(tmp));
return tmp % (max - 1) + 1;
}
static BOOL TestPrimitiveRgbToLumaChroma(primitives_t* prims, prim_size_t roi, UINT32 version) static BOOL TestPrimitiveRgbToLumaChroma(primitives_t* prims, prim_size_t roi, UINT32 version)
{ {
BOOL res = FALSE; BOOL res = FALSE;
@ -772,10 +781,10 @@ static BOOL TestPrimitiveRgbToLumaChroma(primitives_t* prims, prim_size_t roi, U
for (UINT32 x = 0; x < roi.width; x++) for (UINT32 x = 0; x < roi.width; x++)
{ {
#if 1 #if 1
line[x * 4 + 0] = rand(); line[x * 4 + 0] = prand(UINT8_MAX);
line[x * 4 + 1] = rand(); line[x * 4 + 1] = prand(UINT8_MAX);
line[x * 4 + 2] = rand(); line[x * 4 + 2] = prand(UINT8_MAX);
line[x * 4 + 3] = rand(); line[x * 4 + 3] = prand(UINT8_MAX);
#else #else
line[x * 4 + 0] = (y * roi.width + x) * 16 + 5; line[x * 4 + 0] = (y * roi.width + x) * 16 + 5;
line[x * 4 + 1] = (y * roi.width + x) * 16 + 7; line[x * 4 + 1] = (y * roi.width + x) * 16 + 7;

View File

@ -19,6 +19,7 @@
*/ */
#include <winpr/crt.h> #include <winpr/crt.h>
#include <winpr/crypto.h>
#include <winpr/wlog.h> #include <winpr/wlog.h>
#include <winpr/synch.h> #include <winpr/synch.h>
#include <winpr/thread.h> #include <winpr/thread.h>
@ -31,6 +32,15 @@ static int status = 0;
static LONG* pLoopCount = NULL; static LONG* pLoopCount = NULL;
static BOOL bStopTest = FALSE; static BOOL bStopTest = FALSE;
static UINT32 prand(UINT32 max)
{
UINT32 tmp = 0;
if (max <= 1)
return 1;
winpr_RAND(&tmp, sizeof(tmp));
return tmp % (max - 1) + 1;
}
static DWORD WINAPI test_error_thread(LPVOID arg) static DWORD WINAPI test_error_thread(LPVOID arg)
{ {
int id = 0; int id = 0;
@ -41,7 +51,7 @@ static DWORD WINAPI test_error_thread(LPVOID arg)
do do
{ {
dwErrorSet = (DWORD)abs(rand()) + 1; dwErrorSet = prand(UINT32_MAX - 1) + 1;
SetLastError(dwErrorSet); SetLastError(dwErrorSet);
if ((dwErrorGet = GetLastError()) != dwErrorSet) if ((dwErrorGet = GetLastError()) != dwErrorSet)
{ {

View File

@ -3,9 +3,19 @@
#include <time.h> #include <time.h>
#include <winpr/crt.h> #include <winpr/crt.h>
#include <winpr/crypto.h>
#include <winpr/file.h> #include <winpr/file.h>
#include <winpr/path.h> #include <winpr/path.h>
static UINT32 prand(UINT32 max)
{
UINT32 tmp = 0;
if (max <= 1)
return 1;
winpr_RAND(&tmp, sizeof(tmp));
return tmp % (max - 1) + 1;
}
int TestPathMakePath(int argc, char* argv[]) int TestPathMakePath(int argc, char* argv[])
{ {
size_t baseLen = 0; size_t baseLen = 0;
@ -26,11 +36,10 @@ int TestPathMakePath(int argc, char* argv[])
} }
baseLen = strlen(base); baseLen = strlen(base);
srand(time(NULL));
for (int x = 0; x < 5; x++) for (int x = 0; x < 5; x++)
{ {
(void)sprintf_s(tmp, ARRAYSIZE(tmp), "%08X", rand()); (void)sprintf_s(tmp, ARRAYSIZE(tmp), "%08" PRIX32, prand(UINT32_MAX));
path = GetCombinedPath(base, tmp); path = GetCombinedPath(base, tmp);
free(base); free(base);

View File

@ -1,5 +1,6 @@
#include <winpr/crt.h> #include <winpr/crt.h>
#include <winpr/crypto.h>
#include <winpr/synch.h> #include <winpr/synch.h>
#include <winpr/thread.h> #include <winpr/thread.h>
#include <winpr/interlocked.h> #include <winpr/interlocked.h>
@ -22,6 +23,15 @@ struct test_params
DWORD flags; DWORD flags;
}; };
static UINT32 prand(UINT32 max)
{
UINT32 tmp = 0;
if (max <= 1)
return 1;
winpr_RAND(&tmp, sizeof(tmp));
return tmp % (max - 1) + 1;
}
static DWORD WINAPI test_synch_barrier_thread(LPVOID lpParam) static DWORD WINAPI test_synch_barrier_thread(LPVOID lpParam)
{ {
BOOL status = FALSE; BOOL status = FALSE;
@ -43,7 +53,7 @@ static DWORD WINAPI test_synch_barrier_thread(LPVOID lpParam)
for (DWORD i = 0; i < p->loops && gErrorCount == 0; i++) for (DWORD i = 0; i < p->loops && gErrorCount == 0; i++)
{ {
/* simulate different execution times before the barrier */ /* simulate different execution times before the barrier */
Sleep(1 + abs((rand() % MAX_SLEEP_MS))); Sleep(1 + prand(MAX_SLEEP_MS));
status = EnterSynchronizationBarrier(&gBarrier, p->flags); status = EnterSynchronizationBarrier(&gBarrier, p->flags);
// printf("Thread #%03u status: %s\n", tnum, status ? "TRUE" : "FALSE"); // printf("Thread #%03u status: %s\n", tnum, status ? "TRUE" : "FALSE");

View File

@ -1,6 +1,7 @@
#include <stdio.h> #include <stdio.h>
#include <winpr/crt.h> #include <winpr/crt.h>
#include <winpr/crypto.h>
#include <winpr/windows.h> #include <winpr/windows.h>
#include <winpr/synch.h> #include <winpr/synch.h>
#include <winpr/sysinfo.h> #include <winpr/sysinfo.h>
@ -40,6 +41,15 @@ static BOOL TestSynchCritical_TriggerAndCheckRaceCondition(HANDLE OwningThread,
return TRUE; return TRUE;
} }
static UINT32 prand(UINT32 max)
{
UINT32 tmp = 0;
if (max <= 1)
return 1;
winpr_RAND(&tmp, sizeof(tmp));
return tmp % (max - 1) + 1;
}
/* this thread function shall increment the global dwTestValue until the PBOOL passsed in arg is /* this thread function shall increment the global dwTestValue until the PBOOL passsed in arg is
* FALSE */ * FALSE */
static DWORD WINAPI TestSynchCritical_Test1(LPVOID arg) static DWORD WINAPI TestSynchCritical_Test1(LPVOID arg)
@ -59,14 +69,14 @@ static DWORD WINAPI TestSynchCritical_Test1(LPVOID arg)
return 1; return 1;
/* add some random recursion level */ /* add some random recursion level */
int j = rand() % 5; UINT32 j = prand(5);
for (int i = 0; i < j; i++) for (UINT32 i = 0; i < j; i++)
{ {
if (!TestSynchCritical_TriggerAndCheckRaceCondition(hThread, rc++)) if (!TestSynchCritical_TriggerAndCheckRaceCondition(hThread, rc++))
return 2; return 2;
EnterCriticalSection(&critical); EnterCriticalSection(&critical);
} }
for (int i = 0; i < j; i++) for (UINT32 i = 0; i < j; i++)
{ {
if (!TestSynchCritical_TriggerAndCheckRaceCondition(hThread, rc--)) if (!TestSynchCritical_TriggerAndCheckRaceCondition(hThread, rc--))
return 2; return 2;

View File

@ -1,5 +1,6 @@
#include <stdio.h> #include <stdio.h>
#include <winpr/crt.h> #include <winpr/crt.h>
#include <winpr/crypto.h>
#include <winpr/synch.h> #include <winpr/synch.h>
#include <winpr/thread.h> #include <winpr/thread.h>
#include <winpr/interlocked.h> #include <winpr/interlocked.h>
@ -15,6 +16,15 @@ static LONG* pTestThreadFunctionCalls = NULL;
static LONG* pTestOnceFunctionCalls = NULL; static LONG* pTestOnceFunctionCalls = NULL;
static LONG* pInitOnceExecuteOnceCalls = NULL; static LONG* pInitOnceExecuteOnceCalls = NULL;
static UINT32 prand(UINT32 max)
{
UINT32 tmp = 0;
if (max <= 1)
return 1;
winpr_RAND(&tmp, sizeof(tmp));
return tmp % (max - 1) + 1;
}
static BOOL CALLBACK TestOnceFunction(PINIT_ONCE once, PVOID param, PVOID* context) static BOOL CALLBACK TestOnceFunction(PINIT_ONCE once, PVOID param, PVOID* context)
{ {
LONG calls = InterlockedIncrement(pTestOnceFunctionCalls) - 1; LONG calls = InterlockedIncrement(pTestOnceFunctionCalls) - 1;
@ -24,7 +34,7 @@ static BOOL CALLBACK TestOnceFunction(PINIT_ONCE once, PVOID param, PVOID* conte
WINPR_UNUSED(context); WINPR_UNUSED(context);
/* simulate execution time */ /* simulate execution time */
Sleep(30 + rand() % 40); Sleep(30 + prand(40));
if (calls < TEST_NUM_FAILURES) if (calls < TEST_NUM_FAILURES)
{ {

View File

@ -2,14 +2,24 @@
#include <stdlib.h> #include <stdlib.h>
#include <winpr/crt.h> #include <winpr/crt.h>
#include <winpr/crypto.h>
#include <winpr/synch.h> #include <winpr/synch.h>
#include <winpr/thread.h> #include <winpr/thread.h>
#define THREADS 8 #define THREADS 8
static UINT32 prand(UINT32 max)
{
UINT32 tmp = 0;
if (max <= 1)
return 1;
winpr_RAND(&tmp, sizeof(tmp));
return tmp % (max - 1) + 1;
}
static DWORD WINAPI test_thread(LPVOID arg) static DWORD WINAPI test_thread(LPVOID arg)
{ {
long timeout = 50 + (rand() % 100); UINT32 timeout = 50 + prand(100);
WINPR_UNUSED(arg); WINPR_UNUSED(arg);
Sleep(timeout); Sleep(timeout);
ExitThread(0); ExitThread(0);