summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrey Nazarov <skuller@skuller.net>2011-12-19 18:49:10 +0400
committerAndrey Nazarov <skuller@skuller.net>2011-12-19 18:49:10 +0400
commitca4a019a74b11aa21fea2a03c6dff3b183463aab (patch)
tree0d49344cf5d8ba97dc1a2ffe022bc36c7a1c98bb
parentcb3e9a067b585436b9f4e3d0b8e39be294087a05 (diff)
Add ‘printjunk’ test.
-rw-r--r--src/tests.c25
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 );