mirror of
https://github.com/mudler/luet.git
synced 2025-06-29 00:37:53 +00:00
- Adds upgrade --universe and upgrade --universe --clean. It will attempt to bring the system as much close as the content available in the repositories. It differs from a standard upgrade which checks directly that what is pulled in doesn't conflict with the system. In this new way, we just query the SAT solver to decide that on our behalf. - Add uninstall --full-clean. It uses only the SAT solver to uninstall the package and it will drop as many packages as required (including revdeps of packages too.
126 lines
4.5 KiB
Bash
Executable File
126 lines
4.5 KiB
Bash
Executable File
#!/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/upgrade_integration" --destination $tmpdir/testbuild --compression gzip test/b-1.0
|
|
buildst=$?
|
|
assertTrue 'create package B 1.0' "[ -e '$tmpdir/testbuild/b-test-1.0.package.tar.gz' ]"
|
|
assertEquals 'builds successfully' "$buildst" "0"
|
|
|
|
luet build --tree "$ROOT_DIR/tests/fixtures/upgrade_integration" --destination $tmpdir/testbuild --compression gzip test/b-1.1
|
|
buildst=$?
|
|
assertEquals 'builds successfully' "$buildst" "0"
|
|
assertTrue 'create package B 1.1' "[ -e '$tmpdir/testbuild/b-test-1.1.package.tar.gz' ]"
|
|
|
|
luet build --tree "$ROOT_DIR/tests/fixtures/upgrade_integration" --destination $tmpdir/testbuild --compression gzip test/a-1.0
|
|
buildst=$?
|
|
assertEquals 'builds successfully' "$buildst" "0"
|
|
assertTrue 'create package A 1.0' "[ -e '$tmpdir/testbuild/a-test-1.0.package.tar.gz' ]"
|
|
|
|
luet build --tree "$ROOT_DIR/tests/fixtures/upgrade_integration" --destination $tmpdir/testbuild --compression gzip test/a-1.1
|
|
buildst=$?
|
|
assertEquals 'builds successfully' "$buildst" "0"
|
|
|
|
assertTrue 'create package A 1.1' "[ -e '$tmpdir/testbuild/a-test-1.1.package.tar.gz' ]"
|
|
|
|
luet build --tree "$ROOT_DIR/tests/fixtures/upgrade_integration" --destination $tmpdir/testbuild --compression gzip test/a-1.2
|
|
buildst=$?
|
|
assertEquals 'builds successfully' "$buildst" "0"
|
|
|
|
assertTrue 'create package A 1.2' "[ -e '$tmpdir/testbuild/a-test-1.2.package.tar.gz' ]"
|
|
|
|
|
|
luet build --tree "$ROOT_DIR/tests/fixtures/upgrade_integration" --destination $tmpdir/testbuild --compression gzip test/c-1.0
|
|
buildst=$?
|
|
assertEquals 'builds successfully' "$buildst" "0"
|
|
assertTrue 'create package C 1.0' "[ -e '$tmpdir/testbuild/c-test-1.0.package.tar.gz' ]"
|
|
|
|
}
|
|
|
|
testRepo() {
|
|
assertTrue 'no repository' "[ ! -e '$tmpdir/testbuild/repository.yaml' ]"
|
|
luet create-repo --tree "$ROOT_DIR/tests/fixtures/upgrade_integration" \
|
|
--output $tmpdir/testbuild \
|
|
--packages $tmpdir/testbuild \
|
|
--name "test" \
|
|
--descr "Test Repo" \
|
|
--urls $tmpdir/testrootfs \
|
|
--type http
|
|
|
|
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"
|
|
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 --config $tmpdir/luet.yaml test/b-1.0
|
|
installst=$?
|
|
assertEquals 'install test successfully' "$installst" "0"
|
|
assertTrue 'package installed B' "[ -e '$tmpdir/testrootfs/test5' ]"
|
|
|
|
luet install --config $tmpdir/luet.yaml test/a-1.0
|
|
assertTrue 'package installed A' "[ -e '$tmpdir/testrootfs/testaa' ]"
|
|
installst=$?
|
|
assertEquals 'install test successfully' "$installst" "0"
|
|
|
|
luet install --config $tmpdir/luet.yaml test/a-1.1
|
|
assertTrue 'package installed A' "[ -e '$tmpdir/testrootfs/testaa' ]"
|
|
installst=$?
|
|
assertEquals 'install test successfully' "$installst" "0"
|
|
assertTrue 'package keeps old A' "[ -e '$tmpdir/testrootfs/testaa' ]"
|
|
assertTrue 'package new A was not installed' "[ ! -e '$tmpdir/testrootfs/testlatest' ]"
|
|
|
|
luet install --config $tmpdir/luet.yaml test/c-1.0
|
|
installst=$?
|
|
assertEquals 'install test successfully' "$installst" "0"
|
|
assertTrue 'package installed C' "[ -e '$tmpdir/testrootfs/c' ]"
|
|
}
|
|
|
|
testUpgrade() {
|
|
upgrade=$(luet --config $tmpdir/luet.yaml upgrade)
|
|
installst=$?
|
|
echo "$upgrade"
|
|
assertEquals 'install test successfully' "$installst" "0"
|
|
assertTrue 'package uninstalled B' "[ ! -e '$tmpdir/testrootfs/test5' ]"
|
|
assertTrue 'package installed B' "[ -e '$tmpdir/testrootfs/newc' ]"
|
|
assertTrue 'package uninstalled A' "[ ! -e '$tmpdir/testrootfs/testaa' ]"
|
|
assertTrue 'package installed new A' "[ -e '$tmpdir/testrootfs/testlatest' ]"
|
|
assertNotContains 'does not contain test/c-1.0' "$upgrade" 'test/c-1.0'
|
|
assertNotContains 'does not attempt to download test/c-1.0' "$upgrade" 'test/c-1.0 downloaded'
|
|
}
|
|
|
|
# Load shUnit2.
|
|
. "$ROOT_DIR/tests/integration/shunit2"/shunit2
|
|
|