Skip to content

Commit

Permalink
Include test cases from former pulp-ostree issues
Browse files Browse the repository at this point in the history
closes pulp#59
  • Loading branch information
lubosmj committed Nov 16, 2023
1 parent 4f3e01d commit 0bdf9b6
Show file tree
Hide file tree
Showing 7 changed files with 140 additions and 1 deletion.
4 changes: 3 additions & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,10 @@ jobs:
image_tag: "3.24"
pulp_api_root: "/relocated/djnd/"
- python: "3.10"
image_tag: "3.23"
image_tag: "3.35"
lower_bounds: true
- python: "3.11"
image_tag: "latest"
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v3
Expand Down
1 change: 1 addition & 0 deletions CHANGES/59.misc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Added more tests to verify the functionality of importing child commits.
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
#!/bin/sh

# shellcheck source=tests/scripts/config.source
. "$(dirname "$(dirname "$(realpath "$0")")")/config.source"

cleanup() {
pulp ostree repository destroy --name "cli_test_ostree_repository_import_all_only" || true
pulp ostree distribution destroy --name "cli_test_ostree_distro_import_all_only" || true
pulp orphan cleanup || true
}
trap cleanup EXIT

# workflow fixed in 2.2, https://github.com/pulp/pulp_ostree/issues/279
if pulp debug has-plugin --name "ostree" --min-version "2.2.0"
then
workdir=$(mktemp -d)
cd "${workdir}"

# prepare pulp
expect_succ pulp ostree repository create --name "cli_test_ostree_repository_import_all_only"
expect_succ pulp ostree distribution create --name "cli_test_ostree_distro_import_all_only" \
--repository "cli_test_ostree_repository_import_all_only" \
--base-path "cli_test_ostree_distro_import_all_only"

BASE_URL=$(echo "$OUTPUT" | jq -r ".base_url")

# first commit
mkdir "${workdir}/first"
cd "${workdir}/first"
ostree --repo="${workdir}/first/repo" init --mode=archive
mkdir "${workdir}/first/files"
echo "one" > files/file.txt
commit=$(
ostree commit --repo "${workdir}/first/repo" --branch ostree-main "${workdir}/first/files/"
)

cd "${workdir}/first"
tar czvf repo.tar "repo/"

# first upload
expect_succ pulp ostree repository import-all --name "cli_test_ostree_repository_import_all_only" \
--file "repo.tar" \
--repository_name "repo"

# second commit
mkdir "${workdir}/second"
cd "${workdir}/second"
mkdir files
echo "two" > files/file2.txt
ostree --repo="${workdir}/second/repo" init --mode=archive
ostree commit --repo repo --branch ostree-main files/ --parent="${commit}"
tar czvf repo.tar repo/

# second upload
echo "Uploading and importing second repo"
expect_succ pulp ostree repository import-all --name "cli_test_ostree_repository_import_all_only" \
--file "repo.tar" \
--repository_name "repo"

# local remote repo
ostree --repo="${workdir}/rremote" init
ostree --repo="${workdir}/rremote" remote add --no-gpg-verify iot "$BASE_URL"
expect_succ ostree --repo="${workdir}/rremote" remote refs iot
expect_succ ostree --repo="${workdir}/rremote" remote summary iot
expect_succ ostree --repo="${workdir}/rremote" pull iot ostree-main
fi
70 changes: 70 additions & 0 deletions tests/scripts/pulp_ostree/test_importing_two_refs.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
#!/bin/sh

# shellcheck source=tests/scripts/config.source
. "$(dirname "$(dirname "$(realpath "$0")")")/config.source"

cleanup() {
pulp ostree repository destroy --name "cli_test_ostree_repository_two_refs" || true
pulp ostree distribution destroy --name "cli_test_ostree_distro_two_refs" || true
pulp orphan cleanup || true
}
trap cleanup EXIT

# workflow fixed in 2.2, https://github.com/pulp/pulp_ostree/issues/277
if pulp debug has-plugin --name "ostree" --min-version "2.2.0"
then
workdir=$(mktemp -d)
cd "${workdir}"

# prepare pulp
expect_succ pulp ostree repository create --name "cli_test_ostree_repository_two_refs"
expect_succ pulp ostree distribution create --name "cli_test_ostree_distro_two_refs" \
--repository "cli_test_ostree_repository_two_refs" \
--base-path "cli_test_ostree_distro_two_refs"

BASE_URL=$(echo "$OUTPUT" | jq -r ".base_url")

# first commit
mkdir "${workdir}/first"
cd "${workdir}/first"
ostree --repo="${workdir}/first/repo" init --mode=archive
mkdir "${workdir}/first/files"
echo "one" > files/file.txt
ostree commit --repo "${workdir}/first/repo" --branch first "${workdir}/first/files/"

cd "${workdir}/first"
tar czvf repo.tar "repo/"

# first upload
expect_succ pulp ostree repository import-all \
--name "cli_test_ostree_repository_two_refs" \
--file "repo.tar" \
--repository_name "repo"

# local remote repo
ostree --repo="${workdir}/rremote" init
ostree --repo="${workdir}/rremote" remote add --no-gpg-verify iot "$BASE_URL"
expect_succ ostree --repo="${workdir}/rremote" remote refs iot
expect_succ ostree --repo="${workdir}/rremote" remote summary iot

# second commit
mkdir "${workdir}/second"
cd "${workdir}/second"
mkdir files
echo "two" > files/file2.txt
ostree --repo="${workdir}/second/repo" init --mode=archive
ostree commit --repo repo --branch second files/
tar czvf repo.tar repo/

# second upload
expect_succ pulp ostree repository import-all \
--name "cli_test_ostree_repository_two_refs" \
--file "repo.tar" \
--repository_name "repo"

# fetch refs
expect_succ ostree --repo="${workdir}/rremote" remote refs iot
expect_succ ostree --repo="${workdir}/rremote" remote summary iot
expect_succ ostree --repo="${workdir}/rremote" pull iot second
expect_succ ostree --repo="${workdir}/rremote" pull iot first
fi

0 comments on commit 0bdf9b6

Please sign in to comment.