diff options
author | Eric Andersen <andersen@codepoet.org> | 2000-10-04 17:39:54 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2000-10-04 17:39:54 +0000 |
commit | 8cda0a538b60604b0befc109d8aebf9cd179e2c8 (patch) | |
tree | 2e7adb36d681309a2f28e76b6e68a89eefedc561 /test/ctype | |
parent | 3259c862c11bfc2260cfbe86d823a3aea68b4e2d (diff) |
Major facelift on the test area -- the beginnings of some real testing
stuff so we can get this library into shape.
-Erik
Diffstat (limited to 'test/ctype')
-rw-r--r-- | test/ctype/.cvsignore | 4 | ||||
-rw-r--r-- | test/ctype/Makefile | 50 | ||||
-rw-r--r-- | test/ctype/ctype.c | 292 |
3 files changed, 346 insertions, 0 deletions
diff --git a/test/ctype/.cvsignore b/test/ctype/.cvsignore new file mode 100644 index 000000000..8043b8e11 --- /dev/null +++ b/test/ctype/.cvsignore @@ -0,0 +1,4 @@ +ctype +ctype.o +ctype_glibc +ctype_glibc.o diff --git a/test/ctype/Makefile b/test/ctype/Makefile new file mode 100644 index 000000000..90594d863 --- /dev/null +++ b/test/ctype/Makefile @@ -0,0 +1,50 @@ +TOPDIR=../../ +include $(TOPDIR)Rules.make + +# Check if 'ls -sh' works or not +LSFLAGS = $(shell if ls -sh >/dev/null 2>&1; \ + then echo "-sh"; else echo "-s" ; fi) + +XCFLAGS = -Wall -Os -fomit-frame-pointer -fno-builtin -nostdinc \ + -I$(TOPDIR)include -I/usr/include/linux +XLDFLAGS = -nostdlib -s -gc-sections +EXTRA_LIBS=$(TOPDIR)libc.a + +YCFLAGS = -Wall -Os -fomit-frame-pointer +YLDFLAGS = -s --static + +# Allow alternative stripping tools to be used... +ifndef $(STRIPTOOL) + STRIPTOOL = strip +endif +STRIP = $(STRIPTOOL) --remove-section=.note --remove-section=.comment $@ + +TARGETS=ctype ctype_glibc + +all: $(TARGETS) + +ctype: ctype.c ../testsuite.h Makefile $(TOPDIR)libc.a + -@ echo "-------" + -@ echo " " + -@ echo "Testing ctype functions: " + -@ echo " " + $(CC) $(XCFLAGS) -c $< -o $@.o + $(CC) $(XLDFLAGS) $@.o -o $@ $(EXTRA_LIBS) + -./$@ + -@ echo " " + +ctype_glibc: ctype.c ../testsuite.h Makefile $(TOPDIR)libc.a + -@ echo "-------" + -@ echo " " + -@ echo "Testing ctype functions: " + -@ echo " " + $(CC) $(YCFLAGS) -c $< -o $@.o + $(CC) $(YLDFLAGS) --static $@.o -o $@ + -./$@ + -./$@ + -@ echo " " + +clean: + rm -f *.[oa] *~ core $(TARGETS) + + diff --git a/test/ctype/ctype.c b/test/ctype/ctype.c new file mode 100644 index 000000000..7be8c0a79 --- /dev/null +++ b/test/ctype/ctype.c @@ -0,0 +1,292 @@ +/* vi: set sw=4 ts=4: */ +/* + * Test application for functions defined in ctype.h + * + * Copyright (C) 2000 by Lineo, inc. + * Written by Erik Andersen <andersen@lineo.com>, <andersee@debian.org> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +#include <stdio.h> +#include <stdlib.h> +#include <stdarg.h> +#include <ctype.h> +#include "../testsuite.h" + +#define TRUE 0 + +int main( int argc, char **argv) +{ + int i, c; + + + printf( "Testing functions defined in ctype.h\n"); + + + /* isalnum() */ + { + int buffer[]={ '1', '4', 'a', 'z', 'A', 'Z', '5', -1}; + for(i=0; buffer[i]!=-1; i++) { + c = buffer[i]; + TEST_SUCCESS( isalnum(c)==TRUE, + "isalnum(%c)", c); + } + } + { + int buffer[]={ 2, 128, 254, '\n', -1}; + for(i=0; buffer[i]!=-1; i++) { + c = buffer[i]; + TEST_SUCCESS( isalnum(c)!=TRUE, + "!isalnum(%d)", c); + } + } + + + + /* isalpha() */ + { + int buffer[]={ 'a', 'z', 'A', 'Z', -1}; + for(i=0; buffer[i]!=-1; i++) { + c = buffer[i]; + TEST_SUCCESS( isalpha(c)==TRUE, + "isalpha(%c)", c); + } + } + { + int buffer[]={ 2, 63, 128, 254, '\n', -1}; + for(i=0; buffer[i]!=-1; i++) { + c = buffer[i]; + TEST_SUCCESS( isalpha(c)!=TRUE, + "!isalpha(%d)", c); + } + } + + + + /* isascii() */ + { + int buffer[]={ 'a', 'z', 'A', 'Z', '\n', -1}; + for(i=0; buffer[i]!=-1; i++) { + c = buffer[i]; + TEST_SUCCESS( isascii(c)==TRUE, + "isascii(%d)", c); + } + } + { + int buffer[]={ 128, 254, -1}; + for(i=0; buffer[i]!=-1; i++) { + c = buffer[i]; + TEST_SUCCESS( isascii(c)!=TRUE, + "!isascii(%d)", c); + } + } + + + /* iscntrl() */ + { + int buffer[]={ 0x7F, 6, '\t', '\n', 0x7F, -1}; + for(i=0; buffer[i]!=-1; i++) { + c = buffer[i]; + TEST_SUCCESS( iscntrl(c)==TRUE, + "iscntrl(%d)", c); + } + } + { + int buffer[]={ 63, 128, 254, -1}; + for(i=0; buffer[i]!=-1; i++) { + c = buffer[i]; + TEST_SUCCESS( iscntrl(c)!=TRUE, + "!iscntrl(%d)", c); + } + } + + + /* isdigit() */ + { + int buffer[]={ '1', '5', '7', '9', -1}; + for(i=0; buffer[i]!=-1; i++) { + c = buffer[i]; + TEST_SUCCESS( isdigit(c)==TRUE, + "isdigit(%c)", c); + } + } + { + int buffer[]={ 2, 'a', 'z', 'A', 'Z', 63, 128, 254, '\n', -1}; + for(i=0; buffer[i]!=-1; i++) { + c = buffer[i]; + TEST_SUCCESS( isdigit(c)!=TRUE, + "!isdigit(%d)", c); + } + } + + + + /* isgraph() */ + { + int buffer[]={ ')', '~', '9', -1}; + for(i=0; buffer[i]!=-1; i++) { + c = buffer[i]; + TEST_SUCCESS( isgraph(c)==TRUE, + "isgraph(%d)", c); + } + } + { + int buffer[]={ 9, ' ', '\t', '\n', 200, 0x7F, -1}; + for(i=0; buffer[i]!=-1; i++) { + c = buffer[i]; + TEST_SUCCESS( isgraph(c)!=TRUE, + "!isgraph(%d)", c); + } + } + + + /* islower() */ + { + int buffer[]={ 'a', 'g', 'z', -1}; + for(i=0; buffer[i]!=-1; i++) { + c = buffer[i]; + TEST_SUCCESS( islower(c)==TRUE, + "islower(%c)", c); + } + } + { + int buffer[]={ 9, 'A', 'Z', 128, 254, ' ', '\t', '\n', 0x7F, -1}; + for(i=0; buffer[i]!=-1; i++) { + c = buffer[i]; + TEST_SUCCESS( islower(c)!=TRUE, + "!islower(%d)", c); + } + } + + + /* isprint() */ + { + int buffer[]={ ' ', ')', '~', '9', -1}; + for(i=0; buffer[i]!=-1; i++) { + c = buffer[i]; + TEST_SUCCESS( isprint(c)==TRUE, + "isprint(%c)", c); + } + } + { + int buffer[]={ '\b', '\t', '\n', 9, 128, 254, 200, 0x7F, -1}; + for(i=0; buffer[i]!=-1; i++) { + c = buffer[i]; + TEST_SUCCESS( isprint(c)!=TRUE, + "!isprint(%d)", c); + } + } + + + /* ispunct() */ + { + int buffer[]={ '.', '#', '@', ';', -1}; + for(i=0; buffer[i]!=-1; i++) { + c = buffer[i]; + TEST_SUCCESS( ispunct(c)==TRUE, + "ispunct(%c)", c); + } + } + { + int buffer[]={ 2, 'a', 'Z', '1', 128, 254, '\n', -1}; + for(i=0; buffer[i]!=-1; i++) { + c = buffer[i]; + TEST_SUCCESS( ispunct(c)!=TRUE, + "!ispunct(%d)", c); + } + } + + + /* isspace() */ + { + int buffer[]={ ' ', '\t', '\r', '\v', '\n', -1}; + for(i=0; buffer[i]!=-1; i++) { + c = buffer[i]; + TEST_SUCCESS( isspace(c)==TRUE, + "isspace(%d)", c); + } + } + { + int buffer[]={ 2, 'a', 'Z', '1', 128, 254, -1}; + for(i=0; buffer[i]!=-1; i++) { + c = buffer[i]; + TEST_SUCCESS( isspace(c)!=TRUE, + "!isspace(%d)", c); + } + } + + + /* isupper() */ + { + int buffer[]={ 'A', 'G', 'Z', -1}; + for(i=0; buffer[i]!=-1; i++) { + c = buffer[i]; + TEST_SUCCESS( isupper(c)==TRUE, + "isupper(%c)", c); + } + } + { + int buffer[]={ 2, 'a', 'z', '1', 128, 254, -1}; + for(i=0; buffer[i]!=-1; i++) { + c = buffer[i]; + TEST_SUCCESS( isupper(c)!=TRUE, + "!isupper(%d)", c); + } + } + + + + /* isxdigit() */ + { + int buffer[]={ 'f', 'A', '1', '8', -1}; + for(i=0; buffer[i]!=-1; i++) { + c = buffer[i]; + TEST_SUCCESS( isxdigit(c)==TRUE, + "isxdigit(%c)", c); + } + } + { + int buffer[]={ 2, 'g', 'G', 'x', '\n', -1}; + for(i=0; buffer[i]!=-1; i++) { + c = buffer[i]; + TEST_SUCCESS( isxdigit(c)!=TRUE, + "!isxdigit(%d)", c); + } + } + + + /* tolower() */ + c='A'; + TEST_NUMERIC_OUTPUT( tolower(c), 'a', "tolower(%c)=%c", c, tolower(c)); + c='a'; + TEST_NUMERIC_OUTPUT( tolower(c), 'a', "tolower(%c)=%c", c, tolower(c)); + c='#'; + TEST_NUMERIC_OUTPUT( tolower(c), c, "tolower(%c)=%c", c, tolower(c)); + + /* toupper() */ + c='a'; + TEST_NUMERIC_OUTPUT( toupper(c), 'A', "toupper(%c)=%c", c, toupper(c)); + c='A'; + TEST_NUMERIC_OUTPUT( toupper(c), 'A', "toupper(%c)=%c", c, toupper(c)); + c='#'; + TEST_NUMERIC_OUTPUT( toupper(c), c, "toupper(%c)=%c", c, toupper(c)); + + + printf( "Finished testing ctype.h\n"); + + stop_testing(); +} |