summaryrefslogtreecommitdiffstats
path: root/test/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'test/Makefile')
-rw-r--r--test/Makefile59
1 files changed, 59 insertions, 0 deletions
diff --git a/test/Makefile b/test/Makefile
new file mode 100644
index 0000000..23f3183
--- /dev/null
+++ b/test/Makefile
@@ -0,0 +1,59 @@
+
+repos := repo1 repo2
+
+tmproot := /tmp/apk-test
+testroot = $(tmproot)/$(basename $@)
+
+SUDO := sudo
+APK := ../src/apk --keys-dir /etc/apk/keys
+#SYSREPO ?= http://alpinelinux.org/cgi-bin/dl.cgi/edge/main
+SYSREPO ?= http://192.168.8.4/main
+
+LD_LIBRARY_PATH = ../src
+export LD_LIBRARY_PATH SYSREPO
+
+all: tests
+
+$(repos):
+ @echo "Building $@"
+ @rm -f repos.out
+ @cd $@ &&\
+ for i in */APKBUILD; do\
+ ( cd $${i%/*} && \
+ PKGDEST="$$PWD/.." abuild -R ) >> ../repos.out 2>&1 || exit 1;\
+ done
+ @cd $@ &&\
+ ( apk index -o APKINDEX.tar.gz *.apk &&\
+ abuild-sign APKINDEX.tar.gz ) >> ../repos.out 2>&1
+
+
+clean:
+ $(SUDO) rm -rf $(addsuffix /*.apk,$(repos)) $(tmproot) *.ok *.out *.stamp
+
+
+repos: repos.stamp
+
+repos.stamp: $(repos)
+ @touch $@
+
+
+%.ok: %.sh
+ @echo -n "$<"; \
+ rm -rf "$(testroot)" ;\
+ mkdir -p "$(testroot)"; \
+ if ! APK="$(APK)" ROOT="$(testroot)" SYSREPO="$(SYSREPO)" sh -e $< > $(basename $@).out 2>&1; then\
+ echo " FAIL";\
+ exit 1;\
+ fi ;\
+ echo " OK" ;\
+ $(SUDO) rm -rf $(testroot); \
+ touch $@
+
+tests: repos.stamp
+ @echo "== Testing `$(APK) --version` =="
+ @for i in test*.sh; do \
+ rm -f $${i%.sh}.ok ;\
+ $(SUDO) $(MAKE) --no-print-directory $${i%.sh}.ok SYSREPO=$(SYSREPO); \
+ done
+
+.PHONY: $(repos)