SUBDIRS="dirent inet stdio string stdlib time"

TESTPROGRAMS="adjtime alarm argv asctime atexit atfile bsearch byteswap calloc confstr empty fadvise flush fputc ffs fnmatch ftruncate ftw fwrite getaddrinfo getenv getdelim getgrnam gethostbyaddr gethostbyname gethostbyname_r getmntent getopt getpwnam getservbyname getservbyport getusershell glob grent hasmntopt hello iconv if_nameindex ltostr malloc-debugger math md5_testharness memccpy memchr memcmp memrchr memusage mktime mmap_test pipe printf printftest protoent prototypes putenv pwent rand48 readdir regex select sendfile servent setjmp siglist sigsetjmp speed spent sprintf sscanf stdarg strcasecmp strcmp strncat strncpy strptime strrchr strstr strtol sysconf sysenter ungetc utime waitpid"

STDIN="read1"
PASS="getpass" 

CWD=`pwd`

for d in $SUBDIRS; do
 echo Entering directory $d
 cd $d && ./runtests.sh
 cd "$CWD" || exit 1
done


for p in $TESTPROGRAMS; do
echo "---";echo testing $p;echo "---"
 ./$p ||  ( echo TESTCASE $p exited non-zero 1>&2 ; sleep 5 )
done 

./asprintf foobar  ||  ( echo TESTCASE asprintf exited non-zero 1>&2 ; sleep 5 )
./cycles strncpy ||  ( echo TESTCASE cycles exited non-zero 1>&2 ; sleep 5 )

for p in $STDIN;do
echo "---";echo testing $p;echo "---"
echo foobar | ./$p || ( echo TESTCASE $p exited non-zero 1>&2 ; sleep 5)
done

for p in $PASS;do
 echo "---";echo testing $p;echo "---"
 echo if you are not prompted for input it is broken
 sleep 2
 echo foobar | ./$p || ( echo TESTCASE $p exited non-zero 1>&2 ; sleep 5)
done


