diff options
author | Luke Shumaker <lukeshu@parabola.nu> | 2018-09-03 16:24:09 -0400 |
---|---|---|
committer | Luke Shumaker <lukeshu@parabola.nu> | 2018-09-03 17:15:17 -0400 |
commit | 736d6c83418f2d31e44265a118319dd21ae203e1 (patch) | |
tree | 77c091a793d71845cf159e78ec375e35113f84c1 | |
parent | d2d314b17bcd6ba9c212cdd5b1fd175ea6e91344 (diff) |
test: db-import-pkg: Add some move and remove tests [ci-skip]
-rw-r--r-- | test/cases/db-import-pkg.bats | 64 |
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' |