diff --git a/tests/vmcheck/test-layering-basic.sh b/tests/vmcheck/test-layering-basic-1.sh similarity index 69% rename from tests/vmcheck/test-layering-basic.sh rename to tests/vmcheck/test-layering-basic-1.sh index 82ac6875..32bae52e 100755 --- a/tests/vmcheck/test-layering-basic.sh +++ b/tests/vmcheck/test-layering-basic-1.sh @@ -163,66 +163,3 @@ vm_assert_status_jq '.deployments|length == 2' vm_rpmostree cleanup -pr vm_assert_status_jq '.deployments|length == 1' echo "ok cleanup" - -# install foo and make sure it was imported -vm_rpmostree install foo | tee output.txt -assert_file_has_content output.txt '^Importing (1/1)' - -# upgrade with same foo in repos --> shouldn't re-import -vm_cmd ostree commit -b vmcheck --tree=ref=vmcheck -vm_rpmostree upgrade | tee output.txt -assert_not_file_has_content output.txt '^Importing (' - -# upgrade with different foo in repos --> should re-import -c1=$(sha256sum ${test_tmpdir}/yumrepo/packages/x86_64/foo-1.0-1.x86_64.rpm) -vm_build_rpm foo -c2=$(sha256sum ${test_tmpdir}/yumrepo/packages/x86_64/foo-1.0-1.x86_64.rpm) -if cmp -s c1 c2; then - assert_not_reached "RPM rebuild yielded same SHA256" -fi -vm_rpmostree upgrade | tee output.txt -assert_file_has_content output.txt '^Importing (1/1)' -echo "ok invalidate pkgcache from RPM chksum" - -# make sure installing in /boot translates to /usr/lib/ostree-boot -efidir=/boot/EFI/efi/fedora -vm_build_rpm test-boot \ - files "${efidir}/*" \ - install "mkdir -p %{buildroot}/${efidir}/fonts && echo grubenv > %{buildroot}/${efidir}/grubenv && echo unicode > %{buildroot}/${efidir}/fonts/unicode.pf2" -vm_rpmostree install test-boot -vm_reboot -vm_cmd cat /usr/lib/ostree-boot/EFI/efi/fedora/grubenv > grubenv.txt -assert_file_has_content grubenv.txt grubenv -vm_cmd cat /usr/lib/ostree-boot/EFI/efi/fedora/fonts/unicode.pf2 > unicode.txt -assert_file_has_content unicode.txt unicode -echo "ok failed installed in /boot" - -# there should be a couple of pkgs already installed from the tests up above, -# though let's add our own to be self-contained -vm_build_rpm test-pkgcache-migrate-pkg1 -vm_build_rpm test-pkgcache-migrate-pkg2 -vm_rpmostree install test-pkgcache-migrate-pkg{1,2} - -# jury-rig a pkgcache of the olden days -OLD_PKGCACHE_DIR=/ostree/repo/extensions/rpmostree/pkgcache -vm_cmd test -L ${OLD_PKGCACHE_DIR} -vm_cmd rm ${OLD_PKGCACHE_DIR} -vm_cmd mkdir ${OLD_PKGCACHE_DIR} -vm_cmd ostree init --repo ${OLD_PKGCACHE_DIR} --mode=bare -vm_cmd ostree pull-local --repo ${OLD_PKGCACHE_DIR} /ostree/repo \ - rpmostree/pkg/test-pkgcache-migrate-pkg{1,2}/1.0-1.x86__64 -vm_cmd ostree commit -b vmcheck --tree=ref=vmcheck -cursor=$(vm_get_journal_cursor) -vm_rpmostree upgrade | tee output.txt -vm_wait_content_after_cursor $cursor 'migrated 2 cached packages' -assert_file_has_content output.txt "Migrating pkgcache" -for ref in rpmostree/pkg/test-pkgcache-migrate-pkg{1,2}/1.0-1.x86__64; do - vm_cmd ostree show $ref -done -vm_cmd test -L ${OLD_PKGCACHE_DIR} -echo "ok migrate pkgcache" - -vm_cmd ostree show --print-metadata-key rpmostree.rpmdb.pkglist \ - $(vm_get_deployment_info 0 checksum) > pkglist.txt -assert_file_has_content pkglist.txt 'test-pkgcache-migrate-pkg' -echo "ok layered pkglist" diff --git a/tests/vmcheck/test-layering-basic-2.sh b/tests/vmcheck/test-layering-basic-2.sh new file mode 100755 index 00000000..3301e5d7 --- /dev/null +++ b/tests/vmcheck/test-layering-basic-2.sh @@ -0,0 +1,90 @@ +#!/bin/bash +# +# Copyright (C) 2018 Red Hat, Inc. +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the +# Free Software Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + +set -euo pipefail + +. ${commondir}/libtest.sh +. ${commondir}/libvm.sh + +set -x + +# install foo and make sure it was imported +vm_build_rpm foo +vm_rpmostree install foo | tee output.txt +assert_file_has_content output.txt '^Importing (1/1)' + +# upgrade with same foo in repos --> shouldn't re-import +vm_cmd ostree commit -b vmcheck --tree=ref=vmcheck +vm_rpmostree upgrade | tee output.txt +assert_not_file_has_content output.txt '^Importing (' +echo "ok reuse cached pkg" + +# upgrade with different foo in repos --> should re-import +c1=$(sha256sum ${test_tmpdir}/yumrepo/packages/x86_64/foo-1.0-1.x86_64.rpm) +vm_build_rpm foo +c2=$(sha256sum ${test_tmpdir}/yumrepo/packages/x86_64/foo-1.0-1.x86_64.rpm) +if cmp -s c1 c2; then + assert_not_reached "RPM rebuild yielded same SHA256" +fi +vm_rpmostree upgrade | tee output.txt +assert_file_has_content output.txt '^Importing (1/1)' +echo "ok invalidate pkgcache from RPM chksum" + +# make sure installing in /boot translates to /usr/lib/ostree-boot +efidir=/boot/EFI/efi/fedora +vm_build_rpm test-boot \ + files "${efidir}/*" \ + install "mkdir -p %{buildroot}/${efidir}/fonts && echo grubenv > %{buildroot}/${efidir}/grubenv && echo unicode > %{buildroot}/${efidir}/fonts/unicode.pf2" +vm_rpmostree install test-boot +vm_reboot +vm_cmd cat /usr/lib/ostree-boot/EFI/efi/fedora/grubenv > grubenv.txt +assert_file_has_content grubenv.txt grubenv +vm_cmd cat /usr/lib/ostree-boot/EFI/efi/fedora/fonts/unicode.pf2 > unicode.txt +assert_file_has_content unicode.txt unicode +echo "ok failed installed in /boot" + +# there should be a couple of pkgs already installed from the tests up above, +# though let's add our own to be self-contained +vm_build_rpm test-pkgcache-migrate-pkg1 +vm_build_rpm test-pkgcache-migrate-pkg2 +vm_rpmostree install test-pkgcache-migrate-pkg{1,2} + +# jury-rig a pkgcache of the olden days +OLD_PKGCACHE_DIR=/ostree/repo/extensions/rpmostree/pkgcache +vm_cmd test -L ${OLD_PKGCACHE_DIR} +vm_cmd rm ${OLD_PKGCACHE_DIR} +vm_cmd mkdir ${OLD_PKGCACHE_DIR} +vm_cmd ostree init --repo ${OLD_PKGCACHE_DIR} --mode=bare +vm_cmd ostree pull-local --repo ${OLD_PKGCACHE_DIR} /ostree/repo \ + rpmostree/pkg/test-pkgcache-migrate-pkg{1,2}/1.0-1.x86__64 +vm_cmd ostree commit -b vmcheck --tree=ref=vmcheck +cursor=$(vm_get_journal_cursor) +vm_rpmostree upgrade | tee output.txt +vm_wait_content_after_cursor $cursor 'migrated 2 cached packages' +assert_file_has_content output.txt "Migrating pkgcache" +for ref in rpmostree/pkg/test-pkgcache-migrate-pkg{1,2}/1.0-1.x86__64; do + vm_cmd ostree show $ref +done +vm_cmd test -L ${OLD_PKGCACHE_DIR} +echo "ok migrate pkgcache" + +vm_cmd ostree show --print-metadata-key rpmostree.rpmdb.pkglist \ + $(vm_get_deployment_info 0 checksum) > pkglist.txt +assert_file_has_content pkglist.txt 'test-pkgcache-migrate-pkg' +echo "ok layered pkglist"