summaryrefslogtreecommitdiffstats
path: root/test/runTest
diff options
context:
space:
mode:
Diffstat (limited to 'test/runTest')
-rwxr-xr-xtest/runTest628
1 files changed, 13 insertions, 615 deletions
diff --git a/test/runTest b/test/runTest
index 0fcdf18..b8713d8 100755
--- a/test/runTest
+++ b/test/runTest
@@ -1,617 +1,15 @@
#!/bin/bash
-curdir=$(readlink -e $(dirname $0))
-. "${curdir}/lib/common.inc"
-
-#
-# self test
-#
-
-testPackages() {
- # TODO: namcap -r depends fails with i686 packages
- find "${pkgdir}" -name "*${PKGEXT}" -exec namcap -e depends {} + || fail 'namcap failed'
-}
-
-
-#
-# db-update
-#
-
-testAddSimplePackages() {
- local arches=('i686' 'x86_64')
- local pkgs=('pkg-simple-a' 'pkg-simple-b')
- local pkgbase
- local arch
-
- for pkgbase in ${pkgs[@]}; do
- for arch in ${arches[@]}; do
- releasePackage extra ${pkgbase} ${arch}
- done
- done
-
- ../db-update
-
- for pkgbase in ${pkgs[@]}; do
- for arch in ${arches[@]}; do
- checkPackage extra ${pkgbase}-1-1-${arch}.pkg.tar.xz ${arch}
- done
- done
-}
-
-testAddSingleSimplePackage() {
- releasePackage extra 'pkg-simple-a' 'i686'
- ../db-update
- checkPackage extra 'pkg-simple-a-1-1-i686.pkg.tar.xz' 'i686'
-}
-
-testAddAnyPackages() {
- local pkgs=('pkg-any-a' 'pkg-any-b')
- local pkgbase
-
- for pkgbase in ${pkgs[@]}; do
- releasePackage extra ${pkgbase} any
- done
-
- ../db-update
-
- for pkgbase in ${pkgs[@]}; do
- checkAnyPackage extra ${pkgbase}-1-1-any.pkg.tar.xz
- done
-}
-
-testAddSplitPackages() {
- local arches=('i686' 'x86_64')
- local pkgs=('pkg-split-a' 'pkg-split-b')
- local pkg
- local pkgbase
- local arch
-
- for pkgbase in ${pkgs[@]}; do
- for arch in ${arches[@]}; do
- releasePackage extra ${pkgbase} ${arch}
- done
- done
-
- ../db-update
-
- for pkgbase in ${pkgs[@]}; do
- for arch in ${arches[@]}; do
- for pkg in "${pkgdir}/${pkgbase}"/*-${arch}.pkg.tar.*; do
- checkPackage extra $(basename ${pkg}) ${arch}
- done
- done
- done
-}
-
-testUpdateAnyPackage() {
- releasePackage extra pkg-any-a any
- ../db-update
-
- pushd "${TMP}/svn-packages-copy/pkg-any-a/trunk/" >/dev/null
- sed 's/pkgrel=1/pkgrel=2/g' -i PKGBUILD
- svn commit -q -m"update pkg to pkgrel=2" >/dev/null
- extra-i686-build >/dev/null 2>&1
- mv pkg-any-a-1-2-any.pkg.tar.xz "${pkgdir}/pkg-any-a/"
- popd >/dev/null
-
- releasePackage extra pkg-any-a any
- ../db-update
-
- checkAnyPackage extra pkg-any-a-1-2-any.pkg.tar.xz any
-
- rm -f "${pkgdir}/pkg-any-a/pkg-any-a-1-2-any.pkg.tar.xz"
-}
-
-testUpdateAnyPackageToDifferentRepositoriesAtOnce() {
- releasePackage extra pkg-any-a any
-
- pushd "${TMP}/svn-packages-copy/pkg-any-a/trunk/" >/dev/null
- sed 's/pkgrel=1/pkgrel=2/g' -i PKGBUILD
- svn commit -q -m"update pkg to pkgrel=2" >/dev/null
- extra-i686-build >/dev/null 2>&1
- mv pkg-any-a-1-2-any.pkg.tar.xz "${pkgdir}/pkg-any-a/"
- popd >/dev/null
-
- releasePackage testing pkg-any-a any
-
- ../db-update
-
- checkAnyPackage extra pkg-any-a-1-1-any.pkg.tar.xz any
- checkAnyPackage testing pkg-any-a-1-2-any.pkg.tar.xz any
-
- rm -f "${pkgdir}/pkg-any-a/pkg-any-a-1-2-any.pkg.tar.xz"
-}
-
-testUpdateSameAnyPackageToDifferentRepositories() {
- releasePackage extra pkg-any-a any
- ../db-update
- checkAnyPackage extra pkg-any-a-1-1-any.pkg.tar.xz any
-
- releasePackage testing pkg-any-a any
- ../db-update >/dev/null 2>&1 && (fail 'Adding an existing package to another repository should fail'; return 1)
-
- local arch
- for arch in i686 x86_64; do
- ( [ -r "${FTP_BASE}/${repo}/os/${arch}/${repo}${DBEXT%.tar.*}" ] \
- && bsdtar -xf "${FTP_BASE}/${repo}/os/${arch}/${repo}${DBEXT%.tar.*}" -O | grep -q ${pkgbase}) \
- && fail "${pkgbase} should not be in ${repo}/os/${arch}/${repo}${DBEXT%.tar.*}"
- done
-}
-
-#
-# db-remove
-#
-
-testRemovePackages() {
- local arches=('i686' 'x86_64')
- local pkgs=('pkg-simple-a' 'pkg-simple-b' 'pkg-split-a' 'pkg-split-b')
- local pkgbase
- local arch
-
- for pkgbase in ${pkgs[@]}; do
- for arch in ${arches[@]}; do
- releasePackage extra ${pkgbase} ${arch}
- done
- done
-
- ../db-update
-
- for pkgbase in ${pkgs[@]}; do
- for arch in ${arches[@]}; do
- ../db-remove ${pkgbase} extra ${arch}
- done
- done
-
- for pkgbase in ${pkgs[@]}; do
- for arch in ${arches[@]}; do
- checkRemovedPackage extra ${pkgbase} ${arch}
- done
- done
-}
-
-testRemoveAnyPackages() {
- local pkgs=('pkg-any-a' 'pkg-any-b')
- local pkgbase
-
- for pkgbase in ${pkgs[@]}; do
- releasePackage extra ${pkgbase} any
- done
-
- ../db-update
-
- for pkgbase in ${pkgs[@]}; do
- ../db-remove ${pkgbase} extra any
- done
-
- for pkgbase in ${pkgs[@]}; do
- checkRemovedAnyPackage extra ${pkgbase}
- done
-}
-
-
-#
-# db-move
-#
-
-testMoveSimplePackages() {
- local arches=('i686' 'x86_64')
- local pkgs=('pkg-simple-a' 'pkg-simple-b')
- local pkgbase
- local arch
-
- for pkgbase in ${pkgs[@]}; do
- for arch in ${arches[@]}; do
- releasePackage testing ${pkgbase} ${arch}
- done
- done
-
- ../db-update
-
- ../db-move testing extra pkg-simple-a
-
- for arch in ${arches[@]}; do
- checkPackage extra pkg-simple-a-1-1-${arch}.pkg.tar.xz ${arch}
- checkRemovedPackage testing pkg-simple-a-1-1-${arch}.pkg.tar.xz ${arch}
-
- checkPackage testing pkg-simple-b-1-1-${arch}.pkg.tar.xz ${arch}
- done
-}
-
-testMoveAnyPackages() {
- local pkgs=('pkg-any-a' 'pkg-any-b')
- local pkgbase
-
- for pkgbase in ${pkgs[@]}; do
- releasePackage testing ${pkgbase} any
- done
-
- ../db-update
- ../db-move testing extra pkg-any-a
-
- checkAnyPackage extra pkg-any-a-1-1-any.pkg.tar.xz
- checkRemovedAnyPackage testing pkg-any-a
- checkAnyPackage testing pkg-any-b-1-1-any.pkg.tar.xz
-}
-
-testMoveSplitPackages() {
- local arches=('i686' 'x86_64')
- local pkgs=('pkg-split-a' 'pkg-split-b')
- local pkg
- local pkgbase
- local arch
-
- for pkgbase in ${pkgs[@]}; do
- for arch in ${arches[@]}; do
- releasePackage testing ${pkgbase} ${arch}
- done
- done
-
- ../db-update
- ../db-move testing extra pkg-split-a
-
- for arch in ${arches[@]}; do
- for pkg in "${pkgdir}/pkg-split-a"/*-${arch}.pkg.tar.*; do
- checkPackage extra $(basename ${pkg}) ${arch}
- done
- done
- for arch in ${arches[@]}; do
- for pkg in "${pkgdir}/pkg-split-b"/*-${arch}.pkg.tar.*; do
- checkPackage testing $(basename ${pkg}) ${arch}
- done
- done
-
- checkRemovedAnyPackage testing pkg-split-a
-}
-
-
-#
-# testing2x
-#
-
-testTesting2xAnyPackage() {
- releasePackage core pkg-any-a any
- ../db-update
-
- pushd "${TMP}/svn-packages-copy/pkg-any-a/trunk/" >/dev/null
- sed 's/pkgrel=1/pkgrel=2/g' -i PKGBUILD
- svn commit -q -m"update pkg to pkgrel=2" >/dev/null
- extra-i686-build >/dev/null 2>&1
- mv pkg-any-a-1-2-any.pkg.tar.xz "${pkgdir}/pkg-any-a/"
- popd >/dev/null
-
- releasePackage testing pkg-any-a any
- ../db-update
- rm -f "${pkgdir}/pkg-any-a/pkg-any-a-1-2-any.pkg.tar.xz"
-
- ../testing2x pkg-any-a
-
- checkAnyPackage core pkg-any-a-1-2-any.pkg.tar.xz any
- checkRemovedAnyPackage testing pkg-any-a
-}
-
-
-#
-# ftpdir-cleanup
-#
-
-testCleanupSimplePackages() {
- local arches=('i686' 'x86_64')
- local pkgs=('pkg-simple-a' 'pkg-simple-b')
- local pkgbase
- local arch
-
- for pkgbase in ${pkgs[@]}; do
- for arch in ${arches[@]}; do
- releasePackage extra ${pkgbase} ${arch}
- done
- done
-
- ../db-update
-
- for arch in ${arches[@]}; do
- ../db-remove pkg-simple-a extra ${arch}
- done
-
- ../cron-jobs/ftpdir-cleanup >/dev/null
-
- for arch in ${arches[@]}; do
- local pkg1="pkg-simple-a-1-1-${arch}.pkg.tar.xz"
- checkRemovedPackage extra 'pkg-simple-a' ${arch}
- [ -f "${FTP_BASE}/${PKGPOOL}/${pkg1}" ] && fail "${PKGPOOL}/${pkg1} found"
- [ -f "${FTP_BASE}/${repo}/os/${arch}/${pkg1}" ] && fail "${repo}/os/${arch}/${pkg1} found"
-
- local pkg2="pkg-simple-b-1-1-${arch}.pkg.tar.xz"
- checkPackage extra ${pkg2} ${arch}
- done
-}
-
-testCleanupAnyPackages() {
- local pkgs=('pkg-any-a' 'pkg-any-b')
- local pkgbase
- local arch='any'
-
- for pkgbase in ${pkgs[@]}; do
- releasePackage extra ${pkgbase} any
- done
-
- ../db-update
- ../db-remove pkg-any-a extra any
- ../cron-jobs/ftpdir-cleanup >/dev/null
-
- local pkg1='pkg-any-a-1-1-any.pkg.tar.xz'
- checkRemovedAnyPackage extra 'pkg-any-a'
- [ -f "${FTP_BASE}/${PKGPOOL}/${pkg1}" ] && fail "${PKGPOOL}/${pkg1} found"
- [ -f "${FTP_BASE}/${repo}/os/${arch}/${pkg1}" ] && fail "${repo}/os/${arch}/${pkg1} found"
-
- local pkg2="pkg-any-b-1-1-${arch}.pkg.tar.xz"
- checkAnyPackage extra ${pkg2}
-}
-
-testCleanupSplitPackages() {
- local arches=('i686' 'x86_64')
- local pkgs=('pkg-split-a' 'pkg-split-b')
- local pkg
- local pkgbase
- local arch
-
- for pkgbase in ${pkgs[@]}; do
- for arch in ${arches[@]}; do
- releasePackage extra ${pkgbase} ${arch}
- done
- done
-
- ../db-update
-
- for arch in ${arches[@]}; do
- ../db-remove ${pkgs[0]} extra ${arch}
- done
-
- ../cron-jobs/ftpdir-cleanup >/dev/null
-
- for arch in ${arches[@]}; do
- for pkg in "${pkgdir}/${pkgs[0]}"/*-${arch}.pkg.tar.*; do
- checkRemovedPackage extra ${pkgs[0]} ${arch}
- [ -f "${FTP_BASE}/${PKGPOOL}/${pkg}" ] && fail "${PKGPOOL}/${pkg} found"
- [ -f "${FTP_BASE}/${repo}/os/${arch}/${pkg}" ] && fail "${repo}/os/${arch}/${pkg} found"
- done
-
- for pkg in "${pkgdir}/${pkgs[1]}"/*-${arch}.pkg.tar.*; do
- checkPackage extra $(basename ${pkg}) ${arch}
- done
- done
-}
-
-#
-# transition tests
-#
-
-testMovePackagesWithoutPool() {
- local arches=('i686' 'x86_64')
- local pkgs=('pkg-simple-a' 'pkg-simple-b' 'pkg-split-a' 'pkg-split-b')
- local pkgbase
- local arch
- local pkg
- local old
-
- for pkgbase in ${pkgs[@]}; do
- for arch in ${arches[@]}; do
- releasePackage testing ${pkgbase} ${arch}
- done
- done
-
- ../db-update
-
- # transform two packages to old style layout
- for arch in ${arches[@]}; do
- for old in 0 2; do
- for pkg in "${pkgdir}/${pkgs[${old}]}"/*-${arch}.pkg.tar.*; do
- pkg=$(basename $pkg)
- mv -f "${FTP_BASE}/${PKGPOOL}/${pkg}" "${FTP_BASE}/testing/os/${arch}/${pkg}"
- done
- done
- done
-
- ../cron-jobs/ftpdir-cleanup >/dev/null
-
- ../db-move testing extra ${pkgs[@]}
-
- ../cron-jobs/ftpdir-cleanup >/dev/null
-
- for pkgbase in ${pkgs[@]}; do
- for arch in ${arches[@]}; do
- for pkg in "${pkgdir}/${pkgbase}"/*-${arch}.pkg.tar.*; do
- checkPackage extra $(basename ${pkg}) ${arch}
- done
- checkRemovedPackage testing ${pkgbase} ${arch}
- done
- done
-}
-
-testUpdateAnyPackageWithoutPool() {
- local pkgname='pkg-any-a'
- local pkg1='pkg-any-a-1-1-any.pkg.tar.xz'
- local pkg2='pkg-any-a-1-2-any.pkg.tar.xz'
- local arch
-
-
- releasePackage extra pkg-any-a any
- ../db-update
- # transform two packages to old style layout
- mv -f "${FTP_BASE}/${PKGPOOL}/${pkg1}" "${FTP_BASE}/extra/os/any"
- for arch in i686 x86_64; do
- ln -sf "../any/${pkg1}" "${FTP_BASE}/extra/os/${arch}"
- done
-
- pushd "${TMP}/svn-packages-copy/${pkgname}/trunk/" >/dev/null
- sed 's/pkgrel=1/pkgrel=2/g' -i PKGBUILD
- svn commit -q -m"update pkg to pkgrel=2" >/dev/null
- extra-i686-build >/dev/null 2>&1
- mv "${pkg2}" "${pkgdir}/${pkgname}/"
- popd >/dev/null
-
- releasePackage extra ${pkgname} any
- ../db-update
- rm -f "${pkgdir}/${pkgname}/${pkg2}"
-
- ../cron-jobs/ftpdir-cleanup >/dev/null
-
- checkAnyPackage extra "${pkg2}"
-
- [ -f "${FTP_BASE}/${PKGPOOL}/${pkg1}" ] && fail "${PKGPOOL}/${pkg1} found"
- for arch in any i686 x86_64; do
- [ -f "${FTP_BASE}/extra/os/${arch}/${pkg1}" ] && fail "extra/os/${arch}/${pkg1} found"
- done
-}
-
-testMoveAnyPackagesWithoutPool() {
- local pkgs=('pkg-any-a' 'pkg-any-b')
- local pkgbase
- local arch
- local pkg
-
- for pkgbase in ${pkgs[@]}; do
- releasePackage testing ${pkgbase} any
- done
-
- ../db-update
-
- # transform a package to old style layout
- for pkg in "${pkgdir}/${pkgs[0]}"/*-any.pkg.tar.*; do
- pkg=$(basename $pkg)
- mv -f "${FTP_BASE}/${PKGPOOL}/${pkg}" "${FTP_BASE}/testing/os/any/${pkg}"
- for arch in i686 x86_64; do
- ln -sf "../any/${pkg}" "${FTP_BASE}/testing/os/${arch}/${pkg}"
- done
- done
-
- ../cron-jobs/ftpdir-cleanup >/dev/null
-
- ../db-move testing extra ${pkgs[@]}
-
- ../cron-jobs/ftpdir-cleanup >/dev/null
-
- for pkgbase in ${pkgs[@]}; do
- for pkg in "${pkgdir}/${pkgbase}"/*-any.pkg.tar.*; do
- checkAnyPackage extra $(basename ${pkg})
- done
- checkRemovedAnyPackage testing ${pkgbase}
- done
-
- for pkg in "${pkgdir}/${pkgs[0]}"/*-any.pkg.tar.*; do
- pkg=$(basename $pkg)
- for arch in any i686 x86_64; do
- [ -f "${FTP_BASE}/testing/os/${arch}/${pkg}" ] && fail "testing/os/${arch}/${pkg} found"
- done
- done
-}
-
-testUpdateSameAnyPackageToDifferentRepositoriesWithoutPool() {
- local pkg
- local arch
-
- releasePackage extra pkg-any-a any
- ../db-update
-
- # transform a package to old style layout
- for pkg in "${pkgdir}/pkg-any-a"/*-any.pkg.tar.*; do
- pkg=$(basename $pkg)
- mv -f "${FTP_BASE}/${PKGPOOL}/${pkg}" "${FTP_BASE}/extra/os/any/${pkg}"
- for arch in i686 x86_64; do
- ln -sf "../any/${pkg}" "${FTP_BASE}/extra/os/${arch}/${pkg}"
- done
- done
-
- releasePackage testing pkg-any-a any
- ../db-update >/dev/null 2>&1 && (fail 'Adding an existing package to another repository should fail'; return 1)
-
- for arch in i686 x86_64; do
- ( [ -r "${FTP_BASE}/testing/os/${arch}/testing${DBEXT%.tar.*}" ] \
- && bsdtar -xf "${FTP_BASE}/testing/os/${arch}/testing${DBEXT%.tar.*}" -O | grep -q pkg-any-a) \
- && fail "pkg-any-a should not be in testing/os/${arch}/testing${DBEXT%.tar.*}"
- done
-}
-
-#
-#sourceballs tests
-#
-
-testSourceballs() {
- local arches=('i686' 'x86_64')
- local pkgs=('pkg-simple-a' 'pkg-simple-b')
- local pkgbase
- local arch
-
- for pkgbase in ${pkgs[@]}; do
- for arch in ${arches[@]}; do
- releasePackage extra ${pkgbase} ${arch}
- done
- done
- ../db-update
-
- ../cron-jobs/sourceballs
- for pkgbase in ${pkgs[@]}; do
- [ ! -r ${FTP_BASE}/${SRCPOOL}/${pkgbase}-*${SRCEXT} ] && fail "source package not found!"
- done
-}
-
-testAnySourceballs() {
- local pkgs=('pkg-any-a' 'pkg-any-b')
- local pkgbase
-
- for pkgbase in ${pkgs[@]}; do
- releasePackage extra ${pkgbase} any
- done
- ../db-update
-
- ../cron-jobs/sourceballs
- for pkgbase in ${pkgs[@]}; do
- [ ! -r ${FTP_BASE}/${SRCPOOL}/${pkgbase}-*${SRCEXT} ] && fail "source package not found!"
- done
-}
-
-testSplitSourceballs() {
- local arches=('i686' 'x86_64')
- local pkgs=('pkg-split-a' 'pkg-split-b')
- local pkg
- local pkgbase
- local arch
-
- for pkgbase in ${pkgs[@]}; do
- for arch in ${arches[@]}; do
- releasePackage extra ${pkgbase} ${arch}
- done
- done
-
- ../db-update
-
- ../cron-jobs/sourceballs
- for pkgbase in ${pkgs[@]}; do
- [ ! -r ${FTP_BASE}/${SRCPOOL}/${pkgbase}-*${SRCEXT} ] && fail "source package not found!"
- done
-}
-
-testSourceballsCleanup() {
- local arches=('i686' 'x86_64')
- local pkgs=('pkg-simple-a' 'pkg-simple-b')
- local pkgbase
- local arch
-
- for pkgbase in ${pkgs[@]}; do
- for arch in ${arches[@]}; do
- releasePackage extra ${pkgbase} ${arch}
- done
- done
- ../db-update
- ../cron-jobs/sourceballs
-
- for arch in ${arches[@]}; do
- ../db-remove pkg-simple-a extra ${arch}
- done
- ../cron-jobs/ftpdir-cleanup >/dev/null
-
- ../cron-jobs/sourceballs
- [ -r ${FTP_BASE}/${SRCPOOL}/pkg-simple-a-*${SRCEXT} ] && fail "source package was not removed!"
- [ ! -r ${FTP_BASE}/${SRCPOOL}/pkg-simple-b-*${SRCEXT} ] && fail "source package not found!"
-}
-
-. "${curdir}/lib/shunit2"
+. "$(dirname ${BASH_SOURCE[0]})/lib/common.inc"
+
+for t in "$(dirname ${BASH_SOURCE[0]})/test.d/"*.sh; do
+ l=$(basename ${t} .sh)
+ if [ -x ${t} ]; then
+ msg "Running test '${l}'"
+ ${t}
+ [ $? -ne 0 ] && die "Test '${l}' failed"
+ echo -e "\n\n\n"
+ else
+ warning "Skipping test ${l}"
+ fi
+done