test: initial testsuite
parent
ec6359732d
commit
83d859286d
|
@ -0,0 +1,4 @@
|
||||||
|
src
|
||||||
|
pkg
|
||||||
|
*.apk
|
||||||
|
*.tar.gz
|
|
@ -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)
|
|
@ -0,0 +1,38 @@
|
||||||
|
# Contributor:
|
||||||
|
# Maintainer:
|
||||||
|
pkgname=test-a
|
||||||
|
pkgver=1.0
|
||||||
|
pkgrel=0
|
||||||
|
pkgdesc="Package A for apk-tools testsuite"
|
||||||
|
url="http://alpinelinux.org"
|
||||||
|
license="GPL"
|
||||||
|
depends=
|
||||||
|
makedepends=
|
||||||
|
install=
|
||||||
|
subpackages=
|
||||||
|
source=""
|
||||||
|
|
||||||
|
# append extra dependencies to -dev subpackage
|
||||||
|
# remove if not used.
|
||||||
|
# depends_dev="somepackage-dev"
|
||||||
|
|
||||||
|
_builddir="$srcdir"/$pkgname-$pkgver
|
||||||
|
|
||||||
|
prepare() {
|
||||||
|
mkdir -p "$_builddir"
|
||||||
|
}
|
||||||
|
|
||||||
|
build() {
|
||||||
|
cd "$_builddir"
|
||||||
|
cat > $pkgname << __EOF__
|
||||||
|
#!/bin/sh
|
||||||
|
echo "hello from $pkgname-$pkgver"
|
||||||
|
__EOF__
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cd "$_builddir"
|
||||||
|
install -Dm755 $pkgname "$pkgdir"/usr/bin/$pkgname
|
||||||
|
}
|
||||||
|
|
||||||
|
md5sums="" #generate with 'abuild checksum'
|
|
@ -0,0 +1,38 @@
|
||||||
|
# Contributor:
|
||||||
|
# Maintainer:
|
||||||
|
pkgname=test-b
|
||||||
|
pkgver=1.0
|
||||||
|
pkgrel=0
|
||||||
|
pkgdesc="Package A for apk-tools testsuite"
|
||||||
|
url="http://alpinelinux.org"
|
||||||
|
license="GPL"
|
||||||
|
depends=test-a
|
||||||
|
makedepends=
|
||||||
|
install=
|
||||||
|
subpackages=
|
||||||
|
source=""
|
||||||
|
|
||||||
|
# append extra dependencies to -dev subpackage
|
||||||
|
# remove if not used.
|
||||||
|
# depends_dev="somepackage-dev"
|
||||||
|
|
||||||
|
_builddir="$srcdir"/$pkgname-$pkgver
|
||||||
|
|
||||||
|
prepare() {
|
||||||
|
mkdir -p "$_builddir"
|
||||||
|
}
|
||||||
|
|
||||||
|
build() {
|
||||||
|
cd "$_builddir"
|
||||||
|
cat > $pkgname << __EOF__
|
||||||
|
#!/bin/sh
|
||||||
|
echo "hello from $pkgname-$pkgver"
|
||||||
|
__EOF__
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cd "$_builddir"
|
||||||
|
install -Dm755 $pkgname "$pkgdir"/usr/bin/$pkgname
|
||||||
|
}
|
||||||
|
|
||||||
|
md5sums="" #generate with 'abuild checksum'
|
|
@ -0,0 +1,38 @@
|
||||||
|
# Contributor:
|
||||||
|
# Maintainer:
|
||||||
|
pkgname=test-c
|
||||||
|
pkgver=1.0
|
||||||
|
pkgrel=0
|
||||||
|
pkgdesc="Package C for apk-tools testsuite - pre-install"
|
||||||
|
url="http://alpinelinux.org"
|
||||||
|
license="GPL"
|
||||||
|
depends=
|
||||||
|
makedepends=
|
||||||
|
install="test-c.pre-install"
|
||||||
|
subpackages=
|
||||||
|
source=""
|
||||||
|
|
||||||
|
# append extra dependencies to -dev subpackage
|
||||||
|
# remove if not used.
|
||||||
|
# depends_dev="somepackage-dev"
|
||||||
|
|
||||||
|
_builddir="$srcdir"/$pkgname-$pkgver
|
||||||
|
|
||||||
|
prepare() {
|
||||||
|
mkdir -p "$_builddir"
|
||||||
|
}
|
||||||
|
|
||||||
|
build() {
|
||||||
|
cd "$_builddir"
|
||||||
|
cat > $pkgname << __EOF__
|
||||||
|
#!/bin/sh
|
||||||
|
echo "hello from $pkgname-$pkgver"
|
||||||
|
__EOF__
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cd "$_builddir"
|
||||||
|
install -Dm755 $pkgname "$pkgdir"/usr/bin/$pkgname
|
||||||
|
}
|
||||||
|
|
||||||
|
md5sums="" #generate with 'abuild checksum'
|
|
@ -0,0 +1,14 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
echo "$@" > /pre-install
|
||||||
|
|
||||||
|
if [ -n "$WAS_EXPORTED" ]; then
|
||||||
|
touch /was-exported
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f /should-fail ]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
# Contributor:
|
||||||
|
# Maintainer:
|
||||||
|
pkgname=test-d
|
||||||
|
pkgver=1.0
|
||||||
|
pkgrel=0
|
||||||
|
pkgdesc="Package D for apk-tools testsuite - post-install"
|
||||||
|
url="http://alpinelinux.org"
|
||||||
|
license="GPL"
|
||||||
|
depends=
|
||||||
|
makedepends=
|
||||||
|
install="$pkgname.post-install"
|
||||||
|
subpackages=
|
||||||
|
source=""
|
||||||
|
|
||||||
|
# append extra dependencies to -dev subpackage
|
||||||
|
# remove if not used.
|
||||||
|
# depends_dev="somepackage-dev"
|
||||||
|
|
||||||
|
_builddir="$srcdir"/$pkgname-$pkgver
|
||||||
|
|
||||||
|
prepare() {
|
||||||
|
mkdir -p "$_builddir"
|
||||||
|
}
|
||||||
|
|
||||||
|
build() {
|
||||||
|
cd "$_builddir"
|
||||||
|
cat > $pkgname << __EOF__
|
||||||
|
#!/bin/sh
|
||||||
|
echo "hello from $pkgname-$pkgver"
|
||||||
|
__EOF__
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cd "$_builddir"
|
||||||
|
install -Dm755 $pkgname "$pkgdir"/usr/bin/$pkgname
|
||||||
|
}
|
||||||
|
|
||||||
|
md5sums="" #generate with 'abuild checksum'
|
|
@ -0,0 +1,14 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
echo "$@" > /post-install
|
||||||
|
|
||||||
|
if [ -n "$WAS_EXPORTED" ]; then
|
||||||
|
touch /was-exported
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f /should-fail ]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
# Contributor:
|
||||||
|
# Maintainer:
|
||||||
|
pkgname=test-a
|
||||||
|
pkgver=1.1
|
||||||
|
pkgrel=0
|
||||||
|
pkgdesc="Package A for apk-tools testsuite"
|
||||||
|
url="http://alpinelinux.org"
|
||||||
|
license="GPL"
|
||||||
|
depends=
|
||||||
|
makedepends=
|
||||||
|
install=
|
||||||
|
subpackages=
|
||||||
|
source=""
|
||||||
|
|
||||||
|
_builddir="$srcdir"/$pkgname-$pkgver
|
||||||
|
prepare() {
|
||||||
|
mkdir -p "$_builddir"
|
||||||
|
}
|
||||||
|
|
||||||
|
build() {
|
||||||
|
cd "$_builddir"
|
||||||
|
cat > $pkgname << __EOF__
|
||||||
|
#!/bin/sh
|
||||||
|
echo "hello from $pkgname-$pkgver"
|
||||||
|
__EOF__
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cd "$_builddir"
|
||||||
|
install -Dm755 $pkgname "$pkgdir"/usr/bin/$pkgname
|
||||||
|
}
|
||||||
|
|
||||||
|
md5sums="" #generate with 'abuild checksum'
|
|
@ -0,0 +1,38 @@
|
||||||
|
# Contributor:
|
||||||
|
# Maintainer:
|
||||||
|
pkgname=test-b
|
||||||
|
pkgver=1.0
|
||||||
|
pkgrel=0
|
||||||
|
pkgdesc="Package A for apk-tools testsuite"
|
||||||
|
url="http://alpinelinux.org"
|
||||||
|
license="GPL"
|
||||||
|
depends=test-a
|
||||||
|
makedepends=
|
||||||
|
install=
|
||||||
|
subpackages=
|
||||||
|
source=""
|
||||||
|
|
||||||
|
# append extra dependencies to -dev subpackage
|
||||||
|
# remove if not used.
|
||||||
|
# depends_dev="somepackage-dev"
|
||||||
|
|
||||||
|
_builddir="$srcdir"/$pkgname-$pkgver
|
||||||
|
|
||||||
|
prepare() {
|
||||||
|
mkdir -p "$_builddir"
|
||||||
|
}
|
||||||
|
|
||||||
|
build() {
|
||||||
|
cd "$_builddir"
|
||||||
|
cat > $pkgname << __EOF__
|
||||||
|
#!/bin/sh
|
||||||
|
echo "hello from $pkgname-$pkgver"
|
||||||
|
__EOF__
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cd "$_builddir"
|
||||||
|
install -Dm755 $pkgname "$pkgdir"/usr/bin/$pkgname
|
||||||
|
}
|
||||||
|
|
||||||
|
md5sums="" #generate with 'abuild checksum'
|
|
@ -0,0 +1,15 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# desc: test if basic add/del/upgrade works
|
||||||
|
|
||||||
|
$APK add --root $ROOT --initdb --repository $PWD/repo1 test-a
|
||||||
|
|
||||||
|
test "$($ROOT/usr/bin/test-a)" = "hello from test-a-1.0"
|
||||||
|
|
||||||
|
$APK upgrade --root $ROOT --repository $PWD/repo2
|
||||||
|
|
||||||
|
test "$($ROOT/usr/bin/test-a)" = "hello from test-a-1.1"
|
||||||
|
|
||||||
|
$APK del --root $ROOT test-a
|
||||||
|
|
||||||
|
[ -x "$ROOT/usr/bin/test-a" ] || true
|
|
@ -0,0 +1,23 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# desc: test if dependencies works
|
||||||
|
|
||||||
|
# test-b depends on test-a
|
||||||
|
$APK add --root $ROOT --initdb --repository $PWD/repo1 test-b
|
||||||
|
|
||||||
|
# check if test-a was installed
|
||||||
|
test "$($ROOT/usr/bin/test-a)" = "hello from test-a-1.0"
|
||||||
|
|
||||||
|
# run an upgrade
|
||||||
|
$APK upgrade --root $ROOT --repository $PWD/repo2
|
||||||
|
|
||||||
|
# test if test-a was upgraded
|
||||||
|
test "$($ROOT/usr/bin/test-a)" = "hello from test-a-1.1"
|
||||||
|
|
||||||
|
# remove test-b
|
||||||
|
$APK del --root $ROOT test-b
|
||||||
|
|
||||||
|
# test if the dependency was removed too
|
||||||
|
if [ -x "$ROOT/usr/bin/test-a" ]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
|
@ -0,0 +1,12 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# desc: test successful pre-install
|
||||||
|
|
||||||
|
$APK add --root $ROOT --initdb --repository $PWD/repo1 --repository $SYSREPO \
|
||||||
|
-U test-c
|
||||||
|
|
||||||
|
# check that package was installed
|
||||||
|
$APK info --root $ROOT -e test-c
|
||||||
|
|
||||||
|
# check if pre-install was executed
|
||||||
|
test -f $ROOT/pre-install
|
|
@ -0,0 +1,17 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# desc: test failing pre-install
|
||||||
|
|
||||||
|
# pre-install script will fail if should-fail file exists
|
||||||
|
mkdir -p "$ROOT"
|
||||||
|
touch "$ROOT"/should-fail
|
||||||
|
|
||||||
|
! $APK add --root $ROOT --initdb --repository $PWD/repo1 --repository $SYSREPO \
|
||||||
|
-U test-c
|
||||||
|
|
||||||
|
# check that pre-install was executed
|
||||||
|
test -f $ROOT/pre-install
|
||||||
|
|
||||||
|
# check that package was not installed
|
||||||
|
! $APK info --root $ROOT -e test-c
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# desc: test post-install script
|
||||||
|
|
||||||
|
$APK add --root $ROOT --initdb -U --repository $PWD/repo1 \
|
||||||
|
--repository $SYSREPO test-d
|
||||||
|
|
||||||
|
test -f "$ROOT"/post-install
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# desc: test triggers in kernel package
|
||||||
|
|
||||||
|
$APK add --root $ROOT --initdb -U --repository $PWD/repo1 \
|
||||||
|
--repository $SYSREPO linux-grsec
|
||||||
|
|
||||||
|
test -L "$ROOT"/boot/vmlinuz-grsec
|
||||||
|
|
||||||
|
test -L "$ROOT"/boot/initramfs-grsec
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# desc: test triggers in busybox package
|
||||||
|
|
||||||
|
# we had a bug that caused apk fix --reinstall to segfault every second time
|
||||||
|
|
||||||
|
$APK add --root $ROOT --initdb -U --repository $PWD/repo1 \
|
||||||
|
--repository $SYSREPO busybox
|
||||||
|
|
||||||
|
for i in 0 1 2 3; do
|
||||||
|
# delete wget symlink
|
||||||
|
rm -f "$ROOT"/usr/bin/wget
|
||||||
|
|
||||||
|
# re-install so we run the trigger again
|
||||||
|
$APK fix --root $ROOT --repository $SYSREPO --reinstall busybox
|
||||||
|
|
||||||
|
# verify wget symlink is there
|
||||||
|
test -L "$ROOT"/usr/bin/wget
|
||||||
|
done
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue