Add integration test for qlearning solver

This commit is contained in:
Ettore Di Giacinto
2020-02-12 13:58:28 +01:00
parent a756c802f9
commit d7d05de9fe
14 changed files with 167 additions and 4 deletions

8
tests/fixtures/qlearning/a/build.yaml vendored Normal file
View File

@@ -0,0 +1,8 @@
prelude:
- echo a > /aprelude
steps:
- echo a > /a
requires:
- category: "test"
name: "b"
version: "1.0"

View File

@@ -0,0 +1,8 @@
category: "test"
name: "a"
version: "1.0"
requires:
- category: "test"
name: "b"
version: "1.0"

5
tests/fixtures/qlearning/b/build.yaml vendored Normal file
View File

@@ -0,0 +1,5 @@
image: "alpine"
prelude:
- echo b > /bprelude
steps:
- echo b > /b

View File

@@ -0,0 +1,7 @@
category: "test"
name: "b"
version: "1.0"
conflicts:
- category: "test"
name: "c"
version: "1.0"

5
tests/fixtures/qlearning/c/build.yaml vendored Normal file
View File

@@ -0,0 +1,5 @@
image: "alpine"
prelude:
- echo c > /cprelude
steps:
- echo c > /c

View File

@@ -0,0 +1,3 @@
category: "test"
name: "c"
version: "1.0"

5
tests/fixtures/qlearning/d/build.yaml vendored Normal file
View File

@@ -0,0 +1,5 @@
image: "alpine"
prelude:
- echo d > /dprelude
steps:
- echo d > /d

View File

@@ -0,0 +1,3 @@
category: "test"
name: "d"
version: "1.0"

9
tests/fixtures/qlearning/e/build.yaml vendored Normal file
View File

@@ -0,0 +1,9 @@
prelude:
- echo e > /eprelude
steps:
- echo e > /e
requires:
- category: "test"
name: "b"
version: "1.0"

View File

@@ -0,0 +1,8 @@
category: "test"
name: "e"
version: "1.0"
requires:
- category: "test"
name: "b"
version: "1.0"

5
tests/fixtures/qlearning/f/build.yaml vendored Normal file
View File

@@ -0,0 +1,5 @@
prelude:
- echo f > /eprelude
steps:
- echo f > /f
image: "alpine"

View File

@@ -0,0 +1,3 @@
category: "test"
name: "f"
version: "1.0"

View File

@@ -0,0 +1,94 @@
#!/bin/bash
export LUET_NOLOCK=true
oneTimeSetUp() {
export tmpdir="$(mktemp -d)"
}
oneTimeTearDown() {
rm -rf "$tmpdir"
}
testBuild() {
mkdir $tmpdir/testbuild
luet build --all --tree "$ROOT_DIR/tests/fixtures/qlearning" --destination $tmpdir/testbuild --compression gzip
buildst=$?
assertEquals 'builds successfully' "$buildst" "0"
assertTrue 'create package dep B' "[ -e '$tmpdir/testbuild/b-test-1.0.package.tar.gz' ]"
assertTrue 'create package' "[ -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/qlearning" \
--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"
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/c
#luet install --config $tmpdir/luet.yaml test/c-1.0 > /dev/null
installst=$?
assertEquals 'install test successfully' "$installst" "0"
assertTrue 'package C installed' "[ -e '$tmpdir/testrootfs/c' ]"
}
testFullInstall() {
output=$(luet install --config $tmpdir/luet.yaml test/d test/f test/e test/a)
installst=$?
assertEquals 'cannot install' "$installst" "1"
assertTrue 'package D installed' "[ ! -e '$tmpdir/testrootfs/d' ]"
assertTrue 'package F installed' "[ ! -e '$tmpdir/testrootfs/f' ]"
}
testInstallAgain() {
output=$(luet install --solver-type qlearning --config $tmpdir/luet.yaml test/d test/f test/e test/a)
installst=$?
assertEquals 'install test successfully' "$installst" "0"
assertNotContains 'contains warning' "$output" 'Filtering out'
assertTrue 'package D installed' "[ -e '$tmpdir/testrootfs/d' ]"
assertTrue 'package F installed' "[ -e '$tmpdir/testrootfs/f' ]"
assertTrue 'package E not installed' "[ ! -e '$tmpdir/testrootfs/e' ]"
assertTrue 'package A not installed' "[ ! -e '$tmpdir/testrootfs/a' ]"
}
testCleanup() {
luet cleanup --config $tmpdir/luet.yaml
installst=$?
assertEquals 'install test successfully' "$installst" "0"
assertTrue 'package installed' "[ ! -e '$tmpdir/testrootfs/packages/c-test-1.0.package.tar.gz' ]"
}
# Load shUnit2.
. "$ROOT_DIR/tests/integration/shunit2"/shunit2

View File

@@ -11,7 +11,7 @@ popd
export PATH=$ROOT_DIR/tests/integration/bin/:$PATH
"$ROOT_DIR/tests/integration/01_simple.sh"
"$ROOT_DIR/tests/integration/01_simple_gzip.sh"
"$ROOT_DIR/tests/integration/02_create_repo_from_config.sh"
for script in $(ls "$ROOT_DIR/tests/integration/" | grep '^[0-9]*_.*.sh'); do
echo "Executing script '$script'."
$ROOT_DIR/tests/integration/$script
done