Skip to content

Commit

Permalink
Add test for file conflicts on upgrade of the same package
Browse files Browse the repository at this point in the history
This allows to be certain that we don't raise a conflict error while
upgrading the same package
  • Loading branch information
mudler committed Aug 9, 2021
1 parent ff092db commit b7ac1e0
Show file tree
Hide file tree
Showing 3 changed files with 91 additions and 0 deletions.
6 changes: 6 additions & 0 deletions tests/fixtures/nofileconflicts_upgrade/noconflict/build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
image: "alpine"
prelude:
- mkdir /foo
steps:
- echo conflict > /foo/test1
package_dir: /foo
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
packages:
- category: "test1"
name: "noconflict"
version: "1.0"
- category: "test1"
name: "noconflict"
version: "1.1"
78 changes: 78 additions & 0 deletions tests/integration/32_nofileconflicts_upgrade.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
#!/bin/bash

export LUET_NOLOCK=true

oneTimeSetUp() {
export tmpdir="$(mktemp -d)"
}

oneTimeTearDown() {
rm -rf "$tmpdir"
}

testBuild() {
mkdir $tmpdir/testbuild
luet build --tree "$ROOT_DIR/tests/fixtures/nofileconflicts_upgrade" --destination $tmpdir/testbuild --compression gzip --all
buildst=$?
assertEquals 'builds successfully' "$buildst" "0"
assertTrue 'create packages' "[ -e '$tmpdir/testbuild/noconflict-test1-1.0.package.tar.gz' ]"
assertTrue 'create packages' "[ -e '$tmpdir/testbuild/noconflict-test1-1.1.package.tar.gz' ]"
}

testRepo() {
assertTrue 'no repository' "[ ! -e '$tmpdir/testbuild/repository.yaml' ]"
luet create-repo --tree "$ROOT_DIR/tests/fixtures/nofileconflicts_upgrade" \
--output $tmpdir/testbuild \
--packages $tmpdir/testbuild \
--name "test" \
--descr "Test Repo" \
--urls $tmpdir/testrootfs \
--type disk > /dev/null

createst=$?
assertEquals 'create repo successfully' "$createst" "0"
assertTrue 'create repository' "[ -e '$tmpdir/testbuild/repository.yaml' ]"
}

testConfig() {
mkdir $tmpdir/testrootfs
cat <<EOF > $tmpdir/luet.yaml
general:
debug: true
system:
rootfs: $tmpdir/testrootfs
database_path: "/"
database_engine: "boltdb"
config_from_host: true
repositories:
- name: "main"
type: "disk"
enable: true
urls:
- "$tmpdir/testbuild"
EOF
luet config --config $tmpdir/luet.yaml
res=$?
assertEquals 'config test successfully' "$res" "0"
}

testInstall() {
luet install -y --config $tmpdir/luet.yaml test1/[email protected]
installst=$?
#assertTrue 'package installed' "[ -e '$tmpdir/testrootfs/c' ]"
}

testUpgrade() {
out=$(luet upgrade -y --config $tmpdir/luet.yaml)
installst=$?
assertEquals 'install test succeeded' "$installst" "0"
assertNotContains 'does find conflicts' "$out" "Error: file conflict found: file conflict between packages to be installed"

installed=$(luet --config $tmpdir/luet.yaml search --installed)
assertContains 'does upgrade' "$installed" "test1/noconflict-1.1"

}

# Load shUnit2.
. "$ROOT_DIR/tests/integration/shunit2"/shunit2

0 comments on commit b7ac1e0

Please sign in to comment.