set -e
-build_path=$(pwd)
-while [ "${build_path}" != "/" -a ! -e "${build_path}/.git" ]; do
- build_path=$(dirname ${build_path})
-done
-if [ ! -e "${build_path}/.git" ]; then
- echo "Not inside git directory" 1>&2
- exit 1
+if [ -n "${BUILD_BASE_DIR}" ]; then
+ build_path="${BUILD_BASE_DIR}"
+else
+ build_path=$(git rev-parse --show-toplevel)
fi
+if [ -z "${build_path}" ]; then
+ echo "Failed to find build base path"
+ exit 1
+fi
+export build_path
# Save the configuration files in tmp.
save_config ()
all: test_nss libsubid_zzz.so
-test_nss: test_nss.c ../../../lib/nss.c
- gcc -c -I../../../lib/ -I../../.. -o test_nss.o test_nss.c
- gcc -o test_nss test_nss.o ../../../lib/.libs/libshadow.a -ldl
+BASE_TEST_DIR ?= $(shell git rev-parse --show-toplevel)
+basedir := $(BASE_TEST_DIR)
+
+test_nss: test_nss.c $(basedir)/lib/nss.c
+ gcc -c -I$(basedir)/lib/ -I$(basedir)-o test_nss.o test_nss.c
+ gcc -o test_nss test_nss.o $(basedir)/lib/.libs/libshadow.a -ldl
libsubid_zzz.so: libsubid_zzz.c
- gcc -c -I../../../lib/ -I../../.. -I../../../libsubid libsubid_zzz.c
- gcc -L../../../libsubid -shared -o libsubid_zzz.so libsubid_zzz.o ../../../lib/.libs/libshadow.a -ldl
+ gcc -c -I$(basedir)/lib/ -I$(basedir) -I$(basedir)/libsubid libsubid_zzz.c
+ gcc -L$(basedir)/libsubid -shared -o libsubid_zzz.so libsubid_zzz.o $(basedir)/lib/.libs/libshadow.a -ldl
clean:
rm -f *.o *.so test_nss
make
-export LD_LIBRARY_PATH=.:../../../lib/.libs:$LD_LIBRARY_PATH
+export LD_LIBRARY_PATH=.:${build_path}/lib/.libs:$LD_LIBRARY_PATH
./test_nss 1
./test_nss 2
umount /etc/nsswitch.conf
}
trap cleanup1 EXIT HUP INT TERM
-../../../src/check_subid_range user1 u 100000 65535
+${build_path}/src/check_subid_range user1 u 100000 65535
if [ $? -ne 0 ]; then
exit 1
fi
-../../../src/check_subid_range user2 u 100000 65535
+${build_path}/src/check_subid_range user2 u 100000 65535
if [ $? -eq 0 ]; then
exit 1
fi
-../../../src/check_subid_range unknown u 100000 65535
+${build_path}/src/check_subid_range unknown u 100000 65535
if [ $? -eq 0 ]; then
exit 1
fi
-../../../src/check_subid_range error u 100000 65535
+${build_path}/src/check_subid_range error u 100000 65535
if [ $? -eq 0 ]; then
exit 1
fi
-../../../src/check_subid_range user1 u 1000 65535
+${build_path}/src/check_subid_range user1 u 1000 65535
if [ $? -eq 0 ]; then
exit 1
fi
umount /etc/nsswitch.conf
}
trap cleanup2 EXIT HUP INT TERM
-../../../src/check_subid_range user1 u 100000 65535
+${build_path}/src/check_subid_range user1 u 100000 65535
if [ $? -eq 0 ]; then
exit 1
fi