summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@parabola.nu>2018-09-03 16:24:09 -0400
committerLuke Shumaker <lukeshu@parabola.nu>2018-09-03 17:15:17 -0400
commit736d6c83418f2d31e44265a118319dd21ae203e1 (patch)
tree77c091a793d71845cf159e78ec375e35113f84c1
parentd2d314b17bcd6ba9c212cdd5b1fd175ea6e91344 (diff)
test: db-import-pkg: Add some move and remove tests [ci-skip]
-rw-r--r--test/cases/db-import-pkg.bats64
1 files changed, 61 insertions, 3 deletions
diff --git a/test/cases/db-import-pkg.bats b/test/cases/db-import-pkg.bats
index d071b76..af4f269 100644
--- a/test/cases/db-import-pkg.bats
+++ b/test/cases/db-import-pkg.bats
@@ -30,9 +30,11 @@ setup() {
rsync --daemon --config "${TMP}/rsyncd.conf")
# Set up rsync contents
- mkdir -p -- "${TMP}/rsyncd/archlinux/core/os/x86_64"
+ mkdir -p -- "${TMP}"/rsyncd/archlinux/{core,testing}/os/x86_64
touch -- "${TMP}/rsyncd/archlinux/core/os/x86_64/core.db.tar.gz"
ln -s core.db.tar.gz "${TMP}/rsyncd/archlinux/core/os/x86_64/core.db"
+ touch -- "${TMP}/rsyncd/archlinux/testing/os/x86_64/testing.db.tar.gz"
+ ln -s testing.db.tar.gz "${TMP}/rsyncd/archlinux/testing/os/x86_64/testing.db"
mkdir -p -- "${TMP}/rsyncd/archlinux"/{pool,sources}/{packages,community}
date +%s > "${TMP}/rsyncd/archlinux/lastupdate"
date +%s > "${TMP}/rsyncd/archlinux/lastsync"
@@ -54,7 +56,7 @@ setup() {
cat <<-eot >"${TMP}/config.local.packages"
source_testconfig() { local STAGING; source ${DBSCRIPTS_CONFIG@Q}; }; source_testconfig
source ../config.local.packages
- ARCHTAGS=('core-x86_64')
+ ARCHTAGS=('core-x86_64' 'testing-x86_64')
ARCHMIRROR=rsync://localhost:${rsyncport@Q}/rsyncd/archlinux/
eot
cat <<-eot >"${TMP}/config.local.community"
@@ -100,6 +102,8 @@ setup() {
ln -s core.db.tar.gz "${TMP}/ftp/core/os/x86_64/core.db"
ln -s core.db.tar.gz "${TMP}/ftp/core/os/i686/core.db"
ln -s core.db.tar.gz "${TMP}/ftp/core/os/armv7h/core.db"
+ touch -- "${TMP}/ftp/testing/os/x86_64/testing.db.tar.gz"
+ ln -s testing.db.tar.gz "${TMP}/ftp/testing/os/x86_64/testing.db"
mkdir -p -- "${TMP}/ftp"/{pool,sources}/{packages,community,archlinux32,alarm}
date +%s > "${TMP}/ftp/lastupdate"
date +%s > "${TMP}/ftp/lastsync"
@@ -139,7 +143,7 @@ __db-import-pkg() {
return $ret
}
-# releaseImportedPackage PKGBASE ARCH DBFILE [POOLDIR]
+# __releaseImportedPackage PKGBASE ARCH DBFILE [POOLDIR]
#
# This is different from common.bash:releasePackage because
# - it doesn't mess with VCS
@@ -314,6 +318,60 @@ __doesNotExist() {
__isLinkTo "$TMP/ftp/core/os/armv7h/pkg-any-a-1-1-any.pkg.tar.xz" "$TMP/ftp/pool/packages/pkg-any-a-1-1-any.pkg.tar.xz"
}
+@test "import removes dropped packages" {
+ __releaseImportedPackage pkg-simple-c x86_64 "$TMP/rsyncd/archlinux/core/os/x86_64/core.db.tar.gz" "$TMP/rsyncd/archlinux/pool/packages"
+
+ DBSCRIPTS_CONFIG="${TMP}/config.local.packages" __db-import-pkg
+
+ __isLinkTo "$TMP/ftp/core/os/x86_64/pkg-simple-c-1-1-x86_64.pkg.tar.xz" "$TMP/ftp/pool/packages/pkg-simple-c-1-1-x86_64.pkg.tar.xz"
+ bsdtar xfO "$TMP/ftp/core/os/x86_64/core.db.tar.gz" pkg-simple-c-1-1/desc
+
+ repo-remove -q "$TMP/rsyncd/archlinux/core/os/x86_64/core.db.tar.gz" pkg-simple-c
+
+ DBSCRIPTS_CONFIG="${TMP}/config.local.packages" __db-import-pkg
+
+ if bsdtar xfO "$TMP/ftp/core/os/x86_64/core.db.tar.gz" pkg-simple-c-1-1/desc; then
+ return 1
+ fi
+}
+
+@test "import removes blacklisted packages" {
+ __releaseImportedPackage pkg-simple-c x86_64 "$TMP/rsyncd/archlinux/core/os/x86_64/core.db.tar.gz" "$TMP/rsyncd/archlinux/pool/packages"
+
+ DBSCRIPTS_CONFIG="${TMP}/config.local.packages" __db-import-pkg
+
+ __isLinkTo "$TMP/ftp/core/os/x86_64/pkg-simple-c-1-1-x86_64.pkg.tar.xz" "$TMP/ftp/pool/packages/pkg-simple-c-1-1-x86_64.pkg.tar.xz"
+ bsdtar xfO "$TMP/ftp/core/os/x86_64/core.db.tar.gz" pkg-simple-c-1-1/desc >/dev/null
+
+ echo 'pkg-simple-c::::' >> "$TMP/httpd/blacklist.txt"
+
+ DBSCRIPTS_CONFIG="${TMP}/config.local.packages" __db-import-pkg
+
+ if bsdtar xfO "$TMP/ftp/core/os/x86_64/core.db.tar.gz" pkg-simple-c-1-1/desc >/dev/null; then
+ return 1
+ fi
+}
+
+@test "import moves packages" {
+ __releaseImportedPackage pkg-simple-c x86_64 "$TMP/rsyncd/archlinux/testing/os/x86_64/testing.db.tar.gz" "$TMP/rsyncd/archlinux/pool/packages"
+
+ DBSCRIPTS_CONFIG="${TMP}/config.local.packages" __db-import-pkg
+
+ __isLinkTo "$TMP/ftp/testing/os/x86_64/pkg-simple-c-1-1-x86_64.pkg.tar.xz" "$TMP/ftp/pool/packages/pkg-simple-c-1-1-x86_64.pkg.tar.xz"
+ bsdtar xfO "$TMP/ftp/testing/os/x86_64/testing.db.tar.gz" pkg-simple-c-1-1/desc >/dev/null
+
+ repo-remove -q "$TMP/rsyncd/archlinux/testing/os/x86_64/testing.db.tar.gz" pkg-simple-c
+ __releaseImportedPackage pkg-simple-c x86_64 "$TMP/rsyncd/archlinux/core/os/x86_64/core.db.tar.gz" "$TMP/rsyncd/archlinux/pool/packages"
+
+ DBSCRIPTS_CONFIG="${TMP}/config.local.packages" __db-import-pkg
+
+ __isLinkTo "$TMP/ftp/core/os/x86_64/pkg-simple-c-1-1-x86_64.pkg.tar.xz" "$TMP/ftp/pool/packages/pkg-simple-c-1-1-x86_64.pkg.tar.xz"
+ bsdtar xfO "$TMP/ftp/core/os/x86_64/core.db.tar.gz" pkg-simple-c-1-1/desc >/dev/null
+ if bsdtar xfO "$TMP/ftp/testing/os/x86_64/testing.db.tar.gz" pkg-simple-c-1-1/desc >/dev/null; then
+ return 1
+ fi
+}
+
@test "import arch=any packages with sub-pkgrel" {
# This is modeled after the situation with 'asp' and 'asp32'