From 339c08d89f48aa405499c38d7d55cd482ad567f2 Mon Sep 17 00:00:00 2001 From: Alibek Omarov Date: Thu, 13 Apr 2023 19:56:31 +0300 Subject: [PATCH] public: add basic test for our strcpy, strcmp and strcat functions --- public/tests/test_strings.c | 42 +++++++++++++++++++++++++++++++++++++ public/wscript | 14 +++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 public/tests/test_strings.c diff --git a/public/tests/test_strings.c b/public/tests/test_strings.c new file mode 100644 index 00000000..2f741239 --- /dev/null +++ b/public/tests/test_strings.c @@ -0,0 +1,42 @@ +#include +#include "crtlib.h" + +int Test_Strcpycatcmp( void ) +{ + char buf[] = "meowmeowmeow", buf2[] = "barkbark"; + char dst[64]; + + if( Q_strncpy( dst, buf, sizeof( dst )) != sizeof( buf ) - 1 ) + return 1; + + if( Q_strcmp( dst, buf )) + return 2; + + if( Q_strcpy( dst, buf ) != sizeof( buf ) - 1 ) + return 3; + + if( Q_strcmp( dst, buf )) + return 4; + + if( !Q_strcmp( dst, buf2 )) + return 5; + + if( Q_strncat( dst, buf2, sizeof( dst )) != sizeof( buf ) + sizeof( buf2 ) - 2 ) + return 6; + + if( Q_strcmp( dst, "meowmeowmeowbarkbark" )) + return 7; + + if( Q_strncmp( dst, buf, sizeof( buf ) - 1 )) + return 8; + + return 0; +} + +int main( void ) +{ + if( Test_Strcpycatcmp( )) + return EXIT_FAILURE; + + return EXIT_SUCCESS; +} diff --git a/public/wscript b/public/wscript index cc20f0c5..6af14af2 100644 --- a/public/wscript +++ b/public/wscript @@ -22,3 +22,17 @@ def build(bld): features = 'c', use = 'sdk_includes', subsystem = bld.env.MSVC_SUBSYSTEM) + + if bld.env.TESTS: + tests = { + 'strings': 'tests/test_strings.c', + } + + for i in tests: + bld.program(features = 'test', + source = tests[i], + target = 'test_%s' % i, + use = 'public', + rpath = '$ORIGIN', + subsystem = bld.env.CONSOLE_SUBSYSTEM, + install_path = None)