mirror of
https://github.com/shadps4-emu/ext-SDL.git
synced 2024-11-23 10:09:48 +00:00
Replaced test framework random code with SDL random functions
This commit is contained in:
parent
96f2f23240
commit
a938e2b979
@ -375,7 +375,6 @@
|
||||
<ClInclude Include="..\..\include\SDL3\SDL_test_log.h" />
|
||||
<ClInclude Include="..\..\include\SDL3\SDL_test_md5.h" />
|
||||
<ClInclude Include="..\..\include\SDL3\SDL_test_memory.h" />
|
||||
<ClInclude Include="..\..\include\SDL3\SDL_test_random.h" />
|
||||
<ClInclude Include="..\..\include\SDL3\SDL_thread.h" />
|
||||
<ClInclude Include="..\..\include\SDL3\SDL_time.h" />
|
||||
<ClInclude Include="..\..\include\SDL3\SDL_timer.h" />
|
||||
|
@ -295,7 +295,6 @@
|
||||
<ClInclude Include="..\..\include\SDL3\SDL_test_log.h" />
|
||||
<ClInclude Include="..\..\include\SDL3\SDL_test_md5.h" />
|
||||
<ClInclude Include="..\..\include\SDL3\SDL_test_memory.h" />
|
||||
<ClInclude Include="..\..\include\SDL3\SDL_test_random.h" />
|
||||
<ClInclude Include="..\..\include\SDL3\SDL_thread.h" />
|
||||
<ClInclude Include="..\..\include\SDL3\SDL_timer.h" />
|
||||
<ClInclude Include="..\..\include\SDL3\SDL_touch.h" />
|
||||
|
@ -195,7 +195,6 @@
|
||||
<ClCompile Include="..\..\src\test\SDL_test_log.c" />
|
||||
<ClCompile Include="..\..\src\test\SDL_test_md5.c" />
|
||||
<ClCompile Include="..\..\src\test\SDL_test_memory.c" />
|
||||
<ClCompile Include="..\..\src\test\SDL_test_random.c" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
|
@ -294,7 +294,6 @@
|
||||
<ClCompile Include="..\..\src\test\SDL_test_log.c" />
|
||||
<ClCompile Include="..\..\src\test\SDL_test_md5.c" />
|
||||
<ClCompile Include="..\..\src\test\SDL_test_memory.c" />
|
||||
<ClCompile Include="..\..\src\test\SDL_test_random.c" />
|
||||
<ClCompile Include="..\..\test\main.cpp">
|
||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</CompileAsWinRT>
|
||||
<CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</CompileAsWinRT>
|
||||
|
@ -75,9 +75,6 @@
|
||||
<ClCompile Include="..\..\src\test\SDL_test_memory.c">
|
||||
<Filter>Common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\test\SDL_test_random.c">
|
||||
<Filter>Common</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\..\src\main\winrt\SDL3-WinRTResource_BlankCursor.cur" />
|
||||
|
@ -300,7 +300,6 @@
|
||||
<ClInclude Include="..\..\include\SDL3\SDL_test_log.h" />
|
||||
<ClInclude Include="..\..\include\SDL3\SDL_test_md5.h" />
|
||||
<ClInclude Include="..\..\include\SDL3\SDL_test_memory.h" />
|
||||
<ClInclude Include="..\..\include\SDL3\SDL_test_random.h" />
|
||||
<ClInclude Include="..\..\include\SDL3\SDL_thread.h" />
|
||||
<ClInclude Include="..\..\include\SDL3\SDL_time.h" />
|
||||
<ClInclude Include="..\..\include\SDL3\SDL_timer.h" />
|
||||
|
@ -399,9 +399,6 @@
|
||||
<ClInclude Include="..\..\include\SDL3\SDL_test_md5.h">
|
||||
<Filter>API Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\SDL3\SDL_test_random.h">
|
||||
<Filter>API Headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\include\SDL3\SDL_thread.h">
|
||||
<Filter>API Headers</Filter>
|
||||
</ClInclude>
|
||||
|
@ -163,9 +163,8 @@
|
||||
<ClCompile Include="..\..\src\test\SDL_test_log.c" />
|
||||
<ClCompile Include="..\..\src\test\SDL_test_md5.c" />
|
||||
<ClCompile Include="..\..\src\test\SDL_test_memory.c" />
|
||||
<ClCompile Include="..\..\src\test\SDL_test_random.c" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
</Project>
|
||||
|
@ -116,7 +116,6 @@
|
||||
DB166D9916A1D1A500A1396C /* SDL_test_harness.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166D8A16A1D1A500A1396C /* SDL_test_harness.c */; };
|
||||
DB166D9F16A1D1A500A1396C /* SDL_test_log.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166D9016A1D1A500A1396C /* SDL_test_log.c */; };
|
||||
DB166DA016A1D1A500A1396C /* SDL_test_md5.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166D9116A1D1A500A1396C /* SDL_test_md5.c */; };
|
||||
DB166DA116A1D1A500A1396C /* SDL_test_random.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166D9216A1D1A500A1396C /* SDL_test_random.c */; };
|
||||
DB166DD716A1D37800A1396C /* testmessage.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166CBD16A1C74100A1396C /* testmessage.c */; };
|
||||
DB166DDB16A1D42F00A1396C /* icon.bmp in CopyFiles */ = {isa = PBXBuildFile; fileRef = 00794E5D09D20839003FC8A1 /* icon.bmp */; };
|
||||
DB166DF016A1D52500A1396C /* testrelative.c in Sources */ = {isa = PBXBuildFile; fileRef = DB166CBF16A1C74100A1396C /* testrelative.c */; };
|
||||
@ -1315,7 +1314,6 @@
|
||||
DB166D8A16A1D1A500A1396C /* SDL_test_harness.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_harness.c; sourceTree = "<group>"; };
|
||||
DB166D9016A1D1A500A1396C /* SDL_test_log.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_log.c; sourceTree = "<group>"; };
|
||||
DB166D9116A1D1A500A1396C /* SDL_test_md5.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_md5.c; sourceTree = "<group>"; };
|
||||
DB166D9216A1D1A500A1396C /* SDL_test_random.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_test_random.c; sourceTree = "<group>"; };
|
||||
DB166DD516A1D36A00A1396C /* testmessage.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testmessage.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
DB166DEE16A1D50C00A1396C /* testrelative.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testrelative.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
DB166E0516A1D57C00A1396C /* testrendercopyex.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testrendercopyex.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
@ -1935,7 +1933,6 @@
|
||||
DB166D9016A1D1A500A1396C /* SDL_test_log.c */,
|
||||
DB166D9116A1D1A500A1396C /* SDL_test_md5.c */,
|
||||
AAF02FF41F90089800B9A9FB /* SDL_test_memory.c */,
|
||||
DB166D9216A1D1A500A1396C /* SDL_test_random.c */,
|
||||
);
|
||||
name = SDL_Test;
|
||||
path = ../../src/test;
|
||||
@ -3308,7 +3305,6 @@
|
||||
DB166D9F16A1D1A500A1396C /* SDL_test_log.c in Sources */,
|
||||
DB166DA016A1D1A500A1396C /* SDL_test_md5.c in Sources */,
|
||||
AAF02FFA1F90092700B9A9FB /* SDL_test_memory.c in Sources */,
|
||||
DB166DA116A1D1A500A1396C /* SDL_test_random.c in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
@ -41,7 +41,6 @@
|
||||
#include <SDL3/SDL_test_log.h>
|
||||
#include <SDL3/SDL_test_md5.h>
|
||||
#include <SDL3/SDL_test_memory.h>
|
||||
#include <SDL3/SDL_test_random.h>
|
||||
|
||||
#include <SDL3/SDL_begin_code.h>
|
||||
/* Set up for C function definitions, even when using C++ */
|
||||
|
@ -1,112 +0,0 @@
|
||||
/*
|
||||
Simple DirectMedia Layer
|
||||
Copyright (C) 1997-2024 Sam Lantinga <slouken@libsdl.org>
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely, subject to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be misrepresented; you must not
|
||||
claim that you wrote the original software. If you use this software
|
||||
in a product, an acknowledgment in the product documentation would be
|
||||
appreciated but is not required.
|
||||
2. Altered source versions must be plainly marked as such, and must not be
|
||||
misrepresented as being the original software.
|
||||
3. This notice may not be removed or altered from any source distribution.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file SDL_test_random.h
|
||||
*
|
||||
* Random number generator related function of SDL test framework.
|
||||
*
|
||||
* This code is a part of the SDL test library, not the main SDL library.
|
||||
*/
|
||||
|
||||
/*
|
||||
|
||||
A "32-bit Multiply with carry random number generator. Very fast.
|
||||
Includes a list of recommended multipliers.
|
||||
|
||||
multiply-with-carry generator: x(n) = a*x(n-1) + carry mod 2^32.
|
||||
period: (a*2^31)-1
|
||||
|
||||
*/
|
||||
|
||||
#ifndef SDL_test_random_h_
|
||||
#define SDL_test_random_h_
|
||||
|
||||
#include <SDL3/SDL_begin_code.h>
|
||||
/* Set up for C function definitions, even when using C++ */
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* --- Definitions */
|
||||
|
||||
/*
|
||||
* Macros that return a random number in a specific format.
|
||||
*/
|
||||
#define SDLTest_RandomInt(c) ((int)SDLTest_Random(c))
|
||||
|
||||
/*
|
||||
* Context structure for the random number generator state.
|
||||
*/
|
||||
typedef struct SDLTest_RandomContext {
|
||||
unsigned int a;
|
||||
unsigned int x;
|
||||
unsigned int c;
|
||||
unsigned int ah;
|
||||
unsigned int al;
|
||||
} SDLTest_RandomContext;
|
||||
|
||||
|
||||
/* --- Function prototypes */
|
||||
|
||||
/**
|
||||
* Initialize random number generator with two integers.
|
||||
*
|
||||
* Note: The random sequence of numbers returned by ...Random() is the
|
||||
* same for the same two integers and has a period of 2^31.
|
||||
*
|
||||
* \param rndContext pointer to context structure
|
||||
* \param xi integer that defines the random sequence
|
||||
* \param ci integer that defines the random sequence
|
||||
*
|
||||
*/
|
||||
void SDLTest_RandomInit(SDLTest_RandomContext *rndContext, unsigned int xi, unsigned int ci);
|
||||
|
||||
/**
|
||||
* Initialize random number generator based on current system time.
|
||||
*
|
||||
* \param rndContext pointer to context structure
|
||||
*
|
||||
*/
|
||||
void SDLTest_RandomInitTime(SDLTest_RandomContext *rndContext);
|
||||
|
||||
|
||||
/**
|
||||
* Initialize random number generator based on current system time.
|
||||
*
|
||||
* Note: ...RandomInit() or ...RandomInitTime() must have been called
|
||||
* before using this function.
|
||||
*
|
||||
* \param rndContext pointer to context structure
|
||||
*
|
||||
* \returns a random number (32bit unsigned integer)
|
||||
*
|
||||
*/
|
||||
unsigned int SDLTest_Random(SDLTest_RandomContext *rndContext);
|
||||
|
||||
|
||||
/* Ends C function definitions when using C++ */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#include <SDL3/SDL_close_code.h>
|
||||
|
||||
#endif /* SDL_test_random_h_ */
|
@ -37,7 +37,7 @@ static int fuzzerInvocationCounter = 0;
|
||||
/**
|
||||
* Context for shared random number generator
|
||||
*/
|
||||
static SDLTest_RandomContext rndContext;
|
||||
static Uint64 rndContext;
|
||||
|
||||
/*
|
||||
* Note: doxygen documentation markup for functions is in the header file.
|
||||
@ -45,10 +45,7 @@ static SDLTest_RandomContext rndContext;
|
||||
|
||||
void SDLTest_FuzzerInit(Uint64 execKey)
|
||||
{
|
||||
Uint32 a = (execKey >> 32) & 0x00000000FFFFFFFF;
|
||||
Uint32 b = execKey & 0x00000000FFFFFFFF;
|
||||
SDL_memset((void *)&rndContext, 0, sizeof(SDLTest_RandomContext));
|
||||
SDLTest_RandomInit(&rndContext, a, b);
|
||||
rndContext = execKey;
|
||||
fuzzerInvocationCounter = 0;
|
||||
}
|
||||
|
||||
@ -61,42 +58,42 @@ Uint8 SDLTest_RandomUint8(void)
|
||||
{
|
||||
fuzzerInvocationCounter++;
|
||||
|
||||
return (Uint8)SDLTest_RandomInt(&rndContext) & 0x000000FF;
|
||||
return (Uint8)SDL_rand_r(&rndContext, SDL_MAX_UINT8 + 1);
|
||||
}
|
||||
|
||||
Sint8 SDLTest_RandomSint8(void)
|
||||
{
|
||||
fuzzerInvocationCounter++;
|
||||
|
||||
return (Sint8)SDLTest_RandomInt(&rndContext) & 0x000000FF;
|
||||
return (Sint8)SDL_rand_r(&rndContext, SDL_MAX_UINT8 + 1) ;
|
||||
}
|
||||
|
||||
Uint16 SDLTest_RandomUint16(void)
|
||||
{
|
||||
fuzzerInvocationCounter++;
|
||||
|
||||
return (Uint16)SDLTest_RandomInt(&rndContext) & 0x0000FFFF;
|
||||
return (Uint16)SDL_rand_r(&rndContext, SDL_MAX_UINT16 + 1);
|
||||
}
|
||||
|
||||
Sint16 SDLTest_RandomSint16(void)
|
||||
{
|
||||
fuzzerInvocationCounter++;
|
||||
|
||||
return (Sint16)SDLTest_RandomInt(&rndContext) & 0x0000FFFF;
|
||||
return (Sint16)SDL_rand_r(&rndContext, SDL_MAX_UINT16 + 1);
|
||||
}
|
||||
|
||||
Sint32 SDLTest_RandomSint32(void)
|
||||
{
|
||||
fuzzerInvocationCounter++;
|
||||
|
||||
return (Sint32)SDLTest_RandomInt(&rndContext);
|
||||
return (Sint32)SDL_rand_bits_r(&rndContext);
|
||||
}
|
||||
|
||||
Uint32 SDLTest_RandomUint32(void)
|
||||
{
|
||||
fuzzerInvocationCounter++;
|
||||
|
||||
return (Uint32)SDLTest_RandomInt(&rndContext);
|
||||
return (Uint32)SDL_rand_bits_r(&rndContext);
|
||||
}
|
||||
|
||||
Uint64 SDLTest_RandomUint64(void)
|
||||
@ -110,8 +107,8 @@ Uint64 SDLTest_RandomUint64(void)
|
||||
|
||||
fuzzerInvocationCounter++;
|
||||
|
||||
value.v32[0] = SDLTest_RandomSint32();
|
||||
value.v32[1] = SDLTest_RandomSint32();
|
||||
value.v32[0] = SDLTest_RandomUint32();
|
||||
value.v32[1] = SDLTest_RandomUint32();
|
||||
|
||||
return value.v64;
|
||||
}
|
||||
@ -127,8 +124,8 @@ Sint64 SDLTest_RandomSint64(void)
|
||||
|
||||
fuzzerInvocationCounter++;
|
||||
|
||||
value.v32[0] = SDLTest_RandomSint32();
|
||||
value.v32[1] = SDLTest_RandomSint32();
|
||||
value.v32[0] = SDLTest_RandomUint32();
|
||||
value.v32[1] = SDLTest_RandomUint32();
|
||||
|
||||
return (Sint64)value.v64;
|
||||
}
|
||||
@ -432,7 +429,7 @@ SDLTest_RandomDouble(void)
|
||||
double s = 1.0;
|
||||
do {
|
||||
s /= UINT_MAX + 1.0;
|
||||
r += (double)SDLTest_RandomInt(&rndContext) * s;
|
||||
r += (double)SDLTest_RandomSint32() * s;
|
||||
} while (s > DBL_EPSILON);
|
||||
|
||||
fuzzerInvocationCounter++;
|
||||
|
@ -63,7 +63,7 @@ static Uint32 SDLTest_TestCaseTimeout = 3600;
|
||||
char *SDLTest_GenerateRunSeed(const int length)
|
||||
{
|
||||
char *seed = NULL;
|
||||
SDLTest_RandomContext randomContext;
|
||||
Uint64 randomContext = SDL_GetPerformanceCounter();
|
||||
int counter;
|
||||
|
||||
/* Sanity check input */
|
||||
@ -80,10 +80,8 @@ char *SDLTest_GenerateRunSeed(const int length)
|
||||
}
|
||||
|
||||
/* Generate a random string of alphanumeric characters */
|
||||
SDLTest_RandomInitTime(&randomContext);
|
||||
for (counter = 0; counter < length; counter++) {
|
||||
unsigned int number = SDLTest_Random(&randomContext);
|
||||
char ch = (char)(number % (91 - 48)) + 48;
|
||||
char ch = (char)(SDL_rand_r(&randomContext, (91 - 48) + 1) + 48);
|
||||
if (ch >= 58 && ch <= 64) {
|
||||
ch = 65;
|
||||
}
|
||||
|
@ -1,98 +0,0 @@
|
||||
/*
|
||||
Simple DirectMedia Layer
|
||||
Copyright (C) 1997-2024 Sam Lantinga <slouken@libsdl.org>
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely, subject to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be misrepresented; you must not
|
||||
claim that you wrote the original software. If you use this software
|
||||
in a product, an acknowledgment in the product documentation would be
|
||||
appreciated but is not required.
|
||||
2. Altered source versions must be plainly marked as such, and must not be
|
||||
misrepresented as being the original software.
|
||||
3. This notice may not be removed or altered from any source distribution.
|
||||
*/
|
||||
|
||||
/*
|
||||
|
||||
A portable "32-bit Multiply with carry" random number generator.
|
||||
|
||||
Used by the fuzzer component.
|
||||
Original source code contributed by A. Schiffler for GSOC project.
|
||||
|
||||
*/
|
||||
#include <SDL3/SDL_test.h>
|
||||
|
||||
#include <stdlib.h> /* Needed for srand() and rand() */
|
||||
#include <time.h> /* Needed for time() */
|
||||
|
||||
/* Initialize random number generator with two integer variables */
|
||||
|
||||
void SDLTest_RandomInit(SDLTest_RandomContext *rndContext, unsigned int xi, unsigned int ci)
|
||||
{
|
||||
if (!rndContext) {
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* Choose a value for 'a' from this list
|
||||
* 1791398085 1929682203 1683268614 1965537969 1675393560
|
||||
* 1967773755 1517746329 1447497129 1655692410 1606218150
|
||||
* 2051013963 1075433238 1557985959 1781943330 1893513180
|
||||
* 1631296680 2131995753 2083801278 1873196400 1554115554
|
||||
*/
|
||||
rndContext->a = 1655692410;
|
||||
rndContext->x = 30903;
|
||||
rndContext->c = 0;
|
||||
if (xi != 0) {
|
||||
rndContext->x = xi;
|
||||
}
|
||||
rndContext->c = ci;
|
||||
rndContext->ah = rndContext->a >> 16;
|
||||
rndContext->al = rndContext->a & 65535;
|
||||
}
|
||||
|
||||
/* Initialize random number generator from system time */
|
||||
|
||||
void SDLTest_RandomInitTime(SDLTest_RandomContext *rndContext)
|
||||
{
|
||||
int a, b;
|
||||
|
||||
if (!rndContext) {
|
||||
return;
|
||||
}
|
||||
|
||||
srand((unsigned int)time(NULL));
|
||||
a = rand();
|
||||
srand((unsigned int)SDL_GetPerformanceCounter());
|
||||
b = rand();
|
||||
SDLTest_RandomInit(rndContext, a, b);
|
||||
}
|
||||
|
||||
/* Returns random numbers */
|
||||
|
||||
unsigned int SDLTest_Random(SDLTest_RandomContext *rndContext)
|
||||
{
|
||||
unsigned int xh, xl;
|
||||
|
||||
if (!rndContext) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
xh = rndContext->x >> 16;
|
||||
xl = rndContext->x & 65535;
|
||||
rndContext->x = rndContext->x * rndContext->a + rndContext->c;
|
||||
rndContext->c =
|
||||
xh * rndContext->ah + ((xh * rndContext->al) >> 16) +
|
||||
((xl * rndContext->ah) >> 16);
|
||||
if (xl * rndContext->al >= (~rndContext->c + 1)) {
|
||||
rndContext->c++;
|
||||
}
|
||||
return rndContext->x;
|
||||
}
|
@ -67,12 +67,10 @@ int main(int argc, char *argv[])
|
||||
static const int itervals[] = { SDL_arraysize(nums), 12 };
|
||||
int i;
|
||||
int iteration;
|
||||
SDLTest_RandomContext rndctx;
|
||||
SDLTest_CommonState *state;
|
||||
Uint64 seed = 0;
|
||||
int seed_seen = 0;
|
||||
|
||||
SDL_zero(rndctx);
|
||||
|
||||
/* Initialize test framework */
|
||||
state = SDLTest_CommonCreateState(argv, 0);
|
||||
if (!state) {
|
||||
@ -86,7 +84,6 @@ int main(int argc, char *argv[])
|
||||
consumed = SDLTest_CommonArg(state, i);
|
||||
if (!consumed) {
|
||||
if (!seed_seen) {
|
||||
Uint64 seed = 0;
|
||||
char *endptr = NULL;
|
||||
|
||||
seed = SDL_strtoull(argv[i], &endptr, 0);
|
||||
@ -97,11 +94,6 @@ int main(int argc, char *argv[])
|
||||
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Invalid seed. Use a decimal or hexadecimal number.\n");
|
||||
return 1;
|
||||
}
|
||||
if (seed <= ((Uint64)0xffffffff)) {
|
||||
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Seed must be equal or greater than 0x100000000.\n");
|
||||
return 1;
|
||||
}
|
||||
SDLTest_RandomInit(&rndctx, (unsigned int)(seed >> 32), (unsigned int)(seed & 0xffffffff));
|
||||
}
|
||||
}
|
||||
if (consumed <= 0) {
|
||||
@ -114,9 +106,9 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
|
||||
if (!seed_seen) {
|
||||
SDLTest_RandomInitTime(&rndctx);
|
||||
seed = SDL_GetPerformanceCounter();
|
||||
}
|
||||
SDL_Log("Using random seed 0x%08x%08x\n", rndctx.x, rndctx.c);
|
||||
SDL_Log("Using random seed 0x%" SDL_PRIx64 "\n", seed);
|
||||
|
||||
for (iteration = 0; iteration < SDL_arraysize(itervals); iteration++) {
|
||||
const int arraylen = itervals[iteration];
|
||||
@ -138,7 +130,7 @@ int main(int argc, char *argv[])
|
||||
test_sort("reverse sorted", nums, arraylen);
|
||||
|
||||
for (i = 0; i < arraylen; i++) {
|
||||
nums[i] = SDLTest_RandomInt(&rndctx);
|
||||
nums[i] = SDL_rand_r(&seed, SDL_MAX_SINT32);
|
||||
}
|
||||
test_sort("random sorted", nums, arraylen);
|
||||
}
|
||||
|
@ -11,9 +11,6 @@
|
||||
*/
|
||||
/* Simple program: Move N sprites around on the screen as fast as possible */
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <time.h>
|
||||
|
||||
#define SDL_MAIN_USE_CALLBACKS 1
|
||||
#include <SDL3/SDL_test.h>
|
||||
#include <SDL3/SDL_test_common.h>
|
||||
@ -558,7 +555,7 @@ int SDL_AppInit(void **appstate, int argc, char *argv[])
|
||||
seed = (Uint64)iterations;
|
||||
} else {
|
||||
/* Pseudo-random seed generated from the time */
|
||||
seed = (Uint64)time(NULL);
|
||||
seed = SDL_GetPerformanceCounter();
|
||||
}
|
||||
SDLTest_FuzzerInit(seed);
|
||||
for (i = 0; i < num_sprites; ++i) {
|
||||
|
Loading…
Reference in New Issue
Block a user