diff options
author | Andrey Nazarov <skuller@skuller.net> | 2011-12-19 18:49:10 +0400 |
---|---|---|
committer | Andrey Nazarov <skuller@skuller.net> | 2011-12-19 18:49:10 +0400 |
commit | ca4a019a74b11aa21fea2a03c6dff3b183463aab (patch) | |
tree | 0d49344cf5d8ba97dc1a2ffe022bc36c7a1c98bb /src | |
parent | cb3e9a067b585436b9f4e3d0b8e39be294087a05 (diff) |
Add ‘printjunk’ test.
Diffstat (limited to 'src')
-rw-r--r-- | src/tests.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/tests.c b/src/tests.c index 6110eca..57692ea 100644 --- a/src/tests.c +++ b/src/tests.c @@ -86,6 +86,30 @@ static void Com_Crash_f( void ) { } } +// use twice normal print buffer size to test for overflows, etc +static void Com_PrintJunk_f( void ) { + char buf[MAXPRINTMSG*2]; + int i, count; + + // generate some junk + for (i = 0; i < sizeof(buf) - 1; i++) + buf[i] = 'a' + i % ('z' - 'a' + 1); + buf[i] = 0; + + // randomly break into words + for (i = 0; i < 64; i++) + buf[rand() % (sizeof(buf) - 1)] = ' '; + + if (Cmd_Argc() > 1) + count = atoi(Cmd_Argv(1)); + else + count = 1; + + for (i = 0; i < count; i++) + Com_Printf("%s", buf); + Com_Printf("\n"); +} + static void BSP_Test_f( void ) { void **list; char *name; @@ -261,6 +285,7 @@ void Com_InitTests( void ) { Cmd_AddCommand( "errordrop", Com_ErrorDrop_f ); Cmd_AddCommand( "freeze", Com_Freeze_f ); Cmd_AddCommand( "crash", Com_Crash_f ); + Cmd_AddCommand( "printjunk", Com_PrintJunk_f ); Cmd_AddCommand( "bsptest", BSP_Test_f ); Cmd_AddCommand( "wildtest", Com_TestWild_f ); Cmd_AddCommand( "normtest", Com_TestNorm_f ); |