Skip to content

Commit

Permalink
Merge pull request #13734 from simondeziel/improve-test-reliability-s…
Browse files Browse the repository at this point in the history
…table-4.0

Improve test reliability (stable-4.0)
  • Loading branch information
tomponline authored Jul 11, 2024
2 parents 9ec7845 + eab3226 commit b6de9f6
Show file tree
Hide file tree
Showing 6 changed files with 76 additions and 36 deletions.
32 changes: 32 additions & 0 deletions .github/workflows/commits.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Commits
on:
- pull_request

permissions:
contents: read

jobs:
commits:
name: Branch target and CLA
runs-on: ubuntu-22.04
steps:
- name: Check branch target
env:
TARGET: ${{ github.event.pull_request.base.ref }}
TITLE: ${{ github.event.pull_request.title }}
if: ${{ github.actor != 'dependabot[bot]' }}
run: |
set -eux
TARGET_FROM_PR_TITLE="$(echo "${TITLE}" | sed -n 's/.*(\(stable-[0-9]\+\.[0-9]\+\))$/\1/p')"
if [ -z "${TARGET_FROM_PR_TITLE}" ]; then
TARGET_FROM_PR_TITLE="main"
else
echo "Branch target overridden from PR title"
fi
[ "${TARGET}" = "${TARGET_FROM_PR_TITLE}" ] && exit 0
echo "Invalid branch target: ${TARGET} != ${TARGET_FROM_PR_TITLE}"
exit 1
- name: Check if CLA signed
uses: canonical/has-signed-canonical-cla@main
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ See [Getting started](https://documentation.ubuntu.com/lxd/en/stable-4.0/getting
## Status
Type | Service | Status
--- | --- | ---
Tests | GitHub | [![Build Status](https://github.com/canonical/lxd/workflows/Client%20build%20and%20unit%20tests/badge.svg?branch=stable-4.0)](https://github.com/canonical/lxd/actions?query=event%3Apush+branch%3Astable-4.0)
Tests | GitHub | [![Build Status](https://github.com/canonical/lxd/actions/workflows/tests.yml/badge.svg?branch=stable-4.0)](https://github.com/canonical/lxd/actions?query=event%3Apush+branch%3Astable-4.0)
Go documentation | Godoc | [![GoDoc](https://godoc.org/github.com/canonical/lxd/client?status.svg)](https://godoc.org/github.com/canonical/lxd/client)
Static analysis | GoReport | [![Go Report Card](https://goreportcard.com/badge/github.com/canonical/lxd)](https://goreportcard.com/report/github.com/canonical/lxd)
Translations | Weblate | [![Translation status](https://hosted.weblate.org/widgets/linux-containers/-/svg-badge.svg)](https://hosted.weblate.org/projects/linux-containers/lxd/)
Expand Down
2 changes: 1 addition & 1 deletion test/includes/check.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ check_dependencies() {
}

check_empty() {
if [ "$(find "${1}" 2> /dev/null | wc -l)" -gt "1" ]; then
if [ "$(find "${1}" 2> /dev/null || true | wc -l)" -gt "1" ]; then
echo "${1} is not empty, content:"
find "${1}"
false
Expand Down
4 changes: 3 additions & 1 deletion test/suites/backup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -290,7 +290,9 @@ test_backup_import_with_project() {
lxc start c2
lxc delete --force c2

if [ "$lxd_backend" = "btrfs" ] || [ "$lxd_backend" = "zfs" ]; then
# XXX: skip btrfs as optimized variant don't work well: `ERROR: cannot find parent subvolume`
#if [ "$lxd_backend" = "btrfs" ] || [ "$lxd_backend" = "zfs" ]; then
if [ "$lxd_backend" = "zfs" ]; then
lxc import "${LXD_DIR}/c2-optimized.tar.gz"
lxc info c2 | grep snap0
lxc start c2
Expand Down
31 changes: 17 additions & 14 deletions test/suites/container_local_cross_pool_handling.sh
Original file line number Diff line number Diff line change
Expand Up @@ -82,20 +82,23 @@ test_container_local_cross_pool_handling() {
! lxc storage volume show "lxdtest-$(basename "${LXD_DIR}")-${driver}1" container/c2/snap1 || false
lxc delete -f c2

lxc init testimage c1
lxc snapshot c1
lxc snapshot c1
lxc copy c1 c2 -s "lxdtest-$(basename "${LXD_DIR}")-${driver}1"
lxc storage volume show "lxdtest-$(basename "${LXD_DIR}")-${driver}1" container/c2
lxc storage volume show "lxdtest-$(basename "${LXD_DIR}")-${driver}1" container/c2/snap0
lxc storage volume show "lxdtest-$(basename "${LXD_DIR}")-${driver}1" container/c2/snap1
lxc delete -f c2
lxc move c1 c2 -s "lxdtest-$(basename "${LXD_DIR}")-${driver}1"
! lxc info c1 || false
lxc storage volume show "lxdtest-$(basename "${LXD_DIR}")-${driver}1" container/c2
lxc storage volume show "lxdtest-$(basename "${LXD_DIR}")-${driver}1" container/c2/snap0
lxc storage volume show "lxdtest-$(basename "${LXD_DIR}")-${driver}1" container/c2/snap1
lxc delete -f c2
# XXX: skip btrfs: `ERROR: cannot find parent subvolume`
if [ "${driver}" != "btrfs" ]; then
lxc init testimage c1
lxc snapshot c1
lxc snapshot c1
lxc copy c1 c2 -s "lxdtest-$(basename "${LXD_DIR}")-${driver}1"
lxc storage volume show "lxdtest-$(basename "${LXD_DIR}")-${driver}1" container/c2
lxc storage volume show "lxdtest-$(basename "${LXD_DIR}")-${driver}1" container/c2/snap0
lxc storage volume show "lxdtest-$(basename "${LXD_DIR}")-${driver}1" container/c2/snap1
lxc delete -f c2
lxc move c1 c2 -s "lxdtest-$(basename "${LXD_DIR}")-${driver}1"
! lxc info c1 || false
lxc storage volume show "lxdtest-$(basename "${LXD_DIR}")-${driver}1" container/c2
lxc storage volume show "lxdtest-$(basename "${LXD_DIR}")-${driver}1" container/c2/snap0
lxc storage volume show "lxdtest-$(basename "${LXD_DIR}")-${driver}1" container/c2/snap1
lxc delete -f c2
fi
fi
done
)
Expand Down
41 changes: 22 additions & 19 deletions test/suites/storage_local_volume_handling.sh
Original file line number Diff line number Diff line change
Expand Up @@ -61,25 +61,28 @@ test_storage_local_volume_handling() {
lxc storage create "lxdtest-$(basename "${LXD_DIR}")-${driver}1" "${driver}"
fi

lxc storage volume create "lxdtest-$(basename "${LXD_DIR}")-${driver}" vol1
# This will create the snapshot vol1/snap0
lxc storage volume snapshot "lxdtest-$(basename "${LXD_DIR}")-${driver}" vol1
# Copy volume with snapshots
lxc storage volume copy "lxdtest-$(basename "${LXD_DIR}")-${driver}/vol1" "lxdtest-$(basename "${LXD_DIR}")-${driver}1/vol1"
# Ensure the target snapshot is there
lxc storage volume show "lxdtest-$(basename "${LXD_DIR}")-${driver}1" vol1/snap0
# Copy volume only
lxc storage volume copy --volume-only "lxdtest-$(basename "${LXD_DIR}")-${driver}/vol1" "lxdtest-$(basename "${LXD_DIR}")-${driver}1/vol2"
# Copy snapshot to volume
lxc storage volume copy "lxdtest-$(basename "${LXD_DIR}")-${driver}/vol1/snap0" "lxdtest-$(basename "${LXD_DIR}")-${driver}1/vol3"
lxc storage volume delete "lxdtest-$(basename "${LXD_DIR}")-${driver}1" vol1
lxc storage volume delete "lxdtest-$(basename "${LXD_DIR}")-${driver}1" vol2
lxc storage volume delete "lxdtest-$(basename "${LXD_DIR}")-${driver}1" vol3
lxc storage volume move "lxdtest-$(basename "${LXD_DIR}")-${driver}/vol1" "lxdtest-$(basename "${LXD_DIR}")-${driver}1/vol1"
! lxc storage volume show "lxdtest-$(basename "${LXD_DIR}")-${driver}" vol1 || false
lxc storage volume show "lxdtest-$(basename "${LXD_DIR}")-${driver}1" vol1
lxc storage volume delete "lxdtest-$(basename "${LXD_DIR}")-${driver}1" vol1
lxc storage delete "lxdtest-$(basename "${LXD_DIR}")-${driver}1"
# XXX: on 4.0, btrfs has issues with copying volumes: `ERROR: cannot find parent subvolume`
if [ "$driver" != "btrfs" ]; then
lxc storage volume create "lxdtest-$(basename "${LXD_DIR}")-${driver}" vol1
# This will create the snapshot vol1/snap0
lxc storage volume snapshot "lxdtest-$(basename "${LXD_DIR}")-${driver}" vol1
# Copy volume with snapshots
lxc storage volume copy "lxdtest-$(basename "${LXD_DIR}")-${driver}/vol1" "lxdtest-$(basename "${LXD_DIR}")-${driver}1/vol1"
# Ensure the target snapshot is there
lxc storage volume show "lxdtest-$(basename "${LXD_DIR}")-${driver}1" vol1/snap0
# Copy volume only
lxc storage volume copy --volume-only "lxdtest-$(basename "${LXD_DIR}")-${driver}/vol1" "lxdtest-$(basename "${LXD_DIR}")-${driver}1/vol2"
# Copy snapshot to volume
lxc storage volume copy "lxdtest-$(basename "${LXD_DIR}")-${driver}/vol1/snap0" "lxdtest-$(basename "${LXD_DIR}")-${driver}1/vol3"
lxc storage volume delete "lxdtest-$(basename "${LXD_DIR}")-${driver}1" vol1
lxc storage volume delete "lxdtest-$(basename "${LXD_DIR}")-${driver}1" vol2
lxc storage volume delete "lxdtest-$(basename "${LXD_DIR}")-${driver}1" vol3
lxc storage volume move "lxdtest-$(basename "${LXD_DIR}")-${driver}/vol1" "lxdtest-$(basename "${LXD_DIR}")-${driver}1/vol1"
! lxc storage volume show "lxdtest-$(basename "${LXD_DIR}")-${driver}" vol1 || false
lxc storage volume show "lxdtest-$(basename "${LXD_DIR}")-${driver}1" vol1
lxc storage volume delete "lxdtest-$(basename "${LXD_DIR}")-${driver}1" vol1
lxc storage delete "lxdtest-$(basename "${LXD_DIR}")-${driver}1"
fi

for source_driver in "btrfs" "ceph" "cephfs" "dir" "lvm" "zfs"; do
for target_driver in "btrfs" "ceph" "cephfs" "dir" "lvm" "zfs"; do
Expand Down

0 comments on commit b6de9f6

Please sign in to comment.