diff options
-rw-r--r-- | Makefile.in | 29 | ||||
-rwxr-xr-x | run_tests.sh | 49 | ||||
-rwxr-xr-x | test/test-dir-move.sh | 14 |
3 files changed, 80 insertions, 12 deletions
diff --git a/Makefile.in b/Makefile.in index 7945598..d152cda 100644 --- a/Makefile.in +++ b/Makefile.in @@ -47,35 +47,40 @@ SHOBJS=pseudo_table.o pseudo_util.o DBOBJS=pseudo_db.o -ldl -lpthread WRAPOBJS=pseudo_wrappers.o -test: install - @echo "No tests yet." +PSEUDO=bin/pseudo +PSEUDODB=bin/pseudodb +PSEUDOLOG=bin/pseudolog -all: libpseudo.so pseudo pseudodb pseudolog + +all: libpseudo.so $(PSEUDO) $(PSEUDODB) $(PSEUDOLOG) + +test: all + @./run_tests.sh install-lib: libpseudo.so mkdir -p $(DESTDIR)$(LIBDIR) cp libpseudo*.so $(DESTDIR)$(LIBDIR) -install-bin: pseudo pseudodb pseudolog +install-bin: $(PSEUDO) $(PSEUDODB) $(PSEUDOLOG) mkdir -p $(DESTDIR)$(BINDIR) - cp pseudo pseudodb pseudolog $(DESTDIR)$(BINDIR) + cp $(PSEUDO) $(PSEUDODB) $(PSEUDOLOG) $(DESTDIR)$(BINDIR) install-data: mkdir -p $(DESTDIR)$(DATADIR) install: all install-lib install-bin install-data -pseudo: pseudo.o $(SHOBJS) $(DBOBJS) pseudo_client.o pseudo_server.o pseudo_ipc.o - $(CC) $(CFLAGS) -o pseudo \ +$(PSEUDO): pseudo.o $(SHOBJS) $(DBOBJS) pseudo_client.o pseudo_server.o pseudo_ipc.o + $(CC) $(CFLAGS) -o $(PSEUDO) \ pseudo.o pseudo_server.o pseudo_client.o pseudo_ipc.o \ $(DBOBJS) $(SHOBJS) $(DBLDFLAGS) -pseudolog: pseudolog.o $(SHOBJS) $(DBOBJS) pseudo_client.o pseudo_ipc.o - $(CC) $(CFLAGS) -o pseudolog pseudolog.o pseudo_client.o pseudo_ipc.o \ +$(PSEUDOLOG): pseudolog.o $(SHOBJS) $(DBOBJS) pseudo_client.o pseudo_ipc.o + $(CC) $(CFLAGS) -o $(PSEUDOLOG) pseudolog.o pseudo_client.o pseudo_ipc.o \ $(DBOBJS) $(SHOBJS) $(DBLDFLAGS) -pseudodb: pseudodb.o $(SHOBJS) $(DBOBJS) pseudo_ipc.o - $(CC) $(CFLAGS) -o pseudodb pseudodb.o \ +$(PSEUDODB): pseudodb.o $(SHOBJS) $(DBOBJS) pseudo_ipc.o + $(CC) $(CFLAGS) -o $(PSEUDODB) pseudodb.o \ $(DBOBJS) $(SHOBJS) $(DBLDFLAGS) pseudo_ipc.o libpseudo.so: $(WRAPOBJS) pseudo_client.o pseudo_ipc.o $(SHOBJS) @@ -110,7 +115,7 @@ offsets64: $(CC) -m64 -o offsets64 offsets.c clean: - rm -f *.o *.so pseudo pseudodb pseudolog \ + rm -f *.o *.so $(PSEUDO) $(PSEUDODB) $(PSEUDOLOG) \ pseudo_wrapfuncs.h pseudo_wrapfuncs.c \ pseudo_wrapper_table.c \ pseudo_wrapfuncs.c.old pseudo_wrapfuncs.h.old \ diff --git a/run_tests.sh b/run_tests.sh new file mode 100755 index 0000000..9915d3b --- /dev/null +++ b/run_tests.sh @@ -0,0 +1,49 @@ +#!/bin/bash +opt_verbose= + +usage() +{ + echo >&2 "usage:" + echo >&2 " run_tests [-v|--verbose]" + exit 1 +} + +for arg +do + case $arg in + --) shift; break ;; + -v | --verbose) + opt_verbose=-v + ;; + *) + usage + ;; + esac +done + +#The tests will be run on the build dir, not the installed versions +#This requires to following be set properly. +export PSEUDO_PREFIX=${PWD} +export LD_LIBRARY_PATH=".:${LD_LIBRARY_PATH}" + +num_tests=0 +num_passed_tests=0 + +for file in test/test*.sh +do + filename=${file#test/} + let num_tests++ + mkdir -p var/pseudo + ./bin/pseudo $file ${opt_verbose} + if [ "$?" -eq "0" ]; then + let num_passed_tests++ + if [ "${opt_verbose}" == "-v" ]; then + echo "${filename%.sh}: Passed." + fi + else + echo "${filename/%.sh}: Failed." + fi + rm -rf var +done +echo "${num_passed_tests}/${num_tests} test(s) passed." + diff --git a/test/test-dir-move.sh b/test/test-dir-move.sh new file mode 100755 index 0000000..37182f3 --- /dev/null +++ b/test/test-dir-move.sh @@ -0,0 +1,14 @@ +#!/bin/bash +mkdir d1 +touch d1/f1 +mv d1 d2 +fileuid=`\ls -n1 d2/f1 | awk '{ print $3 }'` +if [ "$fileuid" == "$UID" ] +then + #echo "Passed." + rm -rf d2 + exit 0 +fi +rm -rf d2 +#echo "Failed" +exit 1 |