From 9fefff9edf56028429f681809208715a1011db20 Mon Sep 17 00:00:00 2001 From: Andrew Kesterson Date: Sun, 27 Mar 2016 12:42:42 -0700 Subject: [PATCH] Add tests for stdlib --- tests/stdlib_isalnum.c | 19 +++++++++++++++++++ tests/stdlib_isalnum.deps | 1 + tests/stdlib_isdigit.c | 19 +++++++++++++++++++ tests/stdlib_isdigit.deps | 1 + tests/stdlib_isupper.deps | 1 + tests/stdlib_isupper_islower.c | 27 +++++++++++++++++++++++++++ tests/stdlib_isupper_islower.deps | 1 + tests/stdlib_isxdigit.c | 19 +++++++++++++++++++ tests/stdlib_isxdigit.deps | 1 + tests/test.sh | 4 ++-- 10 files changed, 91 insertions(+), 2 deletions(-) create mode 100644 tests/stdlib_isalnum.c create mode 100644 tests/stdlib_isalnum.deps create mode 100644 tests/stdlib_isdigit.c create mode 100644 tests/stdlib_isdigit.deps create mode 100644 tests/stdlib_isupper.deps create mode 100644 tests/stdlib_isupper_islower.c create mode 100644 tests/stdlib_isupper_islower.deps create mode 100644 tests/stdlib_isxdigit.c create mode 100644 tests/stdlib_isxdigit.deps diff --git a/tests/stdlib_isalnum.c b/tests/stdlib_isalnum.c new file mode 100644 index 0000000..33ee1fa --- /dev/null +++ b/tests/stdlib_isalnum.c @@ -0,0 +1,19 @@ +#include "stdlib.h" + +#define NULL 0x00 + +int main(void) +{ + const char *postest = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + const char *negtest = "~!@#$%^&*()_+{}|[]\\:\";'<>?,./`/*-."; + char *ptr = NULL; + + for ( ptr = (char *)postest; *ptr != '\0' ; ptr++ ) { + if ( isalnum((int)*ptr) != 1 ) return (int)(ptr - postest); + } + for ( ptr = (char *)negtest; *ptr != '\0' ; ptr++ ) { + if ( islower((int)*ptr) != 0 ) return (int)(100 + (ptr - negtest)); + } + + return 0; +} diff --git a/tests/stdlib_isalnum.deps b/tests/stdlib_isalnum.deps new file mode 100644 index 0000000..3b89510 --- /dev/null +++ b/tests/stdlib_isalnum.deps @@ -0,0 +1 @@ +stdlib diff --git a/tests/stdlib_isdigit.c b/tests/stdlib_isdigit.c new file mode 100644 index 0000000..c7793fd --- /dev/null +++ b/tests/stdlib_isdigit.c @@ -0,0 +1,19 @@ +#include "stdlib.h" + +#define NULL 0x00 + +int main(void) +{ + if ( isdigit((int)'0') != 1 ) return 1; + if ( isdigit((int)'1') != 1 ) return 2; + if ( isdigit((int)'2') != 1 ) return 3; + if ( isdigit((int)'3') != 1 ) return 4; + if ( isdigit((int)'4') != 1 ) return 5; + if ( isdigit((int)'5') != 1 ) return 6; + if ( isdigit((int)'6') != 1 ) return 7; + if ( isdigit((int)'7') != 1 ) return 8; + if ( isdigit((int)'8') != 1 ) return 9; + if ( isdigit((int)'9') != 1 ) return 10; + if ( isdigit((int)'a') != 0 ) return 11; + return 0; +} diff --git a/tests/stdlib_isdigit.deps b/tests/stdlib_isdigit.deps new file mode 100644 index 0000000..3b89510 --- /dev/null +++ b/tests/stdlib_isdigit.deps @@ -0,0 +1 @@ +stdlib diff --git a/tests/stdlib_isupper.deps b/tests/stdlib_isupper.deps new file mode 100644 index 0000000..3b89510 --- /dev/null +++ b/tests/stdlib_isupper.deps @@ -0,0 +1 @@ +stdlib diff --git a/tests/stdlib_isupper_islower.c b/tests/stdlib_isupper_islower.c new file mode 100644 index 0000000..3117219 --- /dev/null +++ b/tests/stdlib_isupper_islower.c @@ -0,0 +1,27 @@ +#include "stdlib.h" + +#define NULL 0x00 + +int main(void) +{ + const char *uptest = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + const char *lowtest = "abcdefghijklmnopqrstuvwcyz"; + char *ptr = NULL; + + for ( ptr = (char *)uptest; *ptr != '\0' ; ptr++ ) { + if ( isupper((int)*ptr) != 1 ) return (int)(ptr - uptest); + } + for ( ptr = (char *)lowtest; *ptr != '\0' ; ptr++ ) { + if ( isupper((int)*ptr) != 0 ) return (int)(26 + (ptr - lowtest)); + } + + + for ( ptr = (char *)lowtest; *ptr != '\0' ; ptr++ ) { + if ( islower((int)*ptr) != 1 ) return (int)(52 + (ptr - uptest)); + } + for ( ptr = (char *)uptest; *ptr != '\0' ; ptr++ ) { + if ( islower((int)*ptr) != 0 ) return (int)(78 + (ptr - lowtest)); + } + + return 0; +} diff --git a/tests/stdlib_isupper_islower.deps b/tests/stdlib_isupper_islower.deps new file mode 100644 index 0000000..3b89510 --- /dev/null +++ b/tests/stdlib_isupper_islower.deps @@ -0,0 +1 @@ +stdlib diff --git a/tests/stdlib_isxdigit.c b/tests/stdlib_isxdigit.c new file mode 100644 index 0000000..f1d08f9 --- /dev/null +++ b/tests/stdlib_isxdigit.c @@ -0,0 +1,19 @@ +#include "stdlib.h" + +#define NULL 0x00 + +int main(void) +{ + const char *postest = "ABCDEFabcdef0123456789"; + const char *negtest = "GHIJKLMNOPQRSTUVWXYZghijklmnopqrstuvwxyz~!@#$%^&*()_+{}|[]\\:\";'<>?,./`/*-."; + char *ptr = NULL; + + for ( ptr = (char *)postest; *ptr != '\0' ; ptr++ ) { + if ( isxdigit((int)*ptr) != 1 ) return (int)(ptr - postest); + } + for ( ptr = (char *)negtest; *ptr != '\0' ; ptr++ ) { + if ( isxdigit((int)*ptr) != 0 ) return (int)(100 + (ptr - negtest)); + } + + return 0; +} diff --git a/tests/stdlib_isxdigit.deps b/tests/stdlib_isxdigit.deps new file mode 100644 index 0000000..3b89510 --- /dev/null +++ b/tests/stdlib_isxdigit.deps @@ -0,0 +1 @@ +stdlib diff --git a/tests/test.sh b/tests/test.sh index aa03562..9d8d312 100644 --- a/tests/test.sh +++ b/tests/test.sh @@ -1,8 +1,8 @@ #!/bin/bash -for file in *.c +for testfile in *.c do - filebase=$(basename $file | sed 's/\.c$//') + filebase=$(basename $testfile | sed 's/\.c$//') compile_def=$(cat <&2 ; test -e ${filebase}.elf ; set +e