Skip to content

Commit 129493a

Browse files
Add rollback test definition files for LoL testing
We can fake the failed upgrade by setting the rollback.sh script to exit with 1 and setting the specific uefi variables. Signed-off-by: Stevan Radaković <[email protected]>
1 parent 1274e12 commit 129493a

File tree

2 files changed

+74
-0
lines changed

2 files changed

+74
-0
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#!/bin/bash
2+
# SPDX-License-Identifier: GPL-2.0-only
3+
# Copyright (C) 2025 Linaro Ltd.
4+
set -x
5+
6+
ostree remote add lavacloud $OSTREE_URL || lava-test-case ostree-upgrade-remote-add --result fail
7+
8+
SORTED_VERSIONS=$(ostree remote refs $OSTREE_REMOTE_NAME | grep $OSTREE_REF/ | awk -F'/' '{
9+
version = $NF;
10+
base_version = version;
11+
sub(/\.dev[0-9]+.*/, "", base_version);
12+
sub(/-[^-]+$/, "", base_version);
13+
if (version ~ /\.dev/) print "1 " base_version " " $0;
14+
else print "0 " base_version " " $0;
15+
}' | sort -k2,2V -k1,1n -k3V | cut -d' ' -f3-)
16+
17+
if [ "$OSTREE_TARGET_VERSION" = "latest" ]; then
18+
LATEST=$(echo "$SORTED_VERSIONS" | grep dev | tail -n 1 | awk -F'/' '{print $NF}')
19+
else ## means that the value is 'latest_tag'
20+
LATEST=$(echo "$SORTED_VERSIONS" | grep -v dev | tail -n 1 | awk -F'/' '{print $NF}')
21+
fi
22+
23+
if [ "$IS_CHECK" = "True" ]; then
24+
ostree admin status
25+
cat /etc/greenboot/check/required.d/rollback.sh
26+
ostree admin status | grep $LATEST && lava-test-case ostree-upgrade --result pass || lava-test-case ostree-upgrade --result fail
27+
else
28+
ostree admin status
29+
cat /etc/greenboot/check/required.d/rollback.sh
30+
# set up force rollback script
31+
echo """
32+
#!/bin/bash
33+
exit 1
34+
""" >> /etc/greenboot/check/required.d/rollback.sh
35+
chmod +x /etc/greenboot/check/required.d/rollback.sh
36+
ostree pull $OSTREE_REMOTE_NAME:$OSTREE_REF/$LATEST
37+
ostree admin deploy --os=laa $OSTREE_REMOTE_NAME:$OSTREE_REF/$LATEST
38+
fw_setenv upgrade_available 1
39+
fw_setenv bootcount 0
40+
fw_setenv rollback 0
41+
fi
42+
43+
exit 0
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# SPDX-License-Identifier: GPL-2.0-only
2+
# Copyright (C) 2025 Linaro Ltd.
3+
metadata:
4+
name: rollback-tests
5+
format: "Lava-Test Test Definition 1.0"
6+
description: "Run appliance rollback tests in LAVA."
7+
maintainer:
8+
9+
os:
10+
- debian
11+
- ubuntu
12+
devices:
13+
- qemu
14+
- lol
15+
scope:
16+
- functional
17+
18+
params:
19+
SKIP_INSTALL: "False"
20+
IS_REMOTE: "False"
21+
IS_CHECK: "False"
22+
OSTREE_URL: "https://ostree.lavacloud.io/"
23+
OSTREE_REMOTE_NAME: ""
24+
OSTREE_TARGET_VERSION: ""
25+
OSTREE_REF: ""
26+
27+
run:
28+
steps:
29+
- cd ./automated/linux/torizon/
30+
- export SKIP_INSTALL IS_REMOTE IS_CHECK OSTREE_URL OSTREE_REMOTE_NAME OSTREE_TARGET_VERSION OSTREE_REF
31+
- ./ostree-rollback-tests.sh

0 commit comments

Comments
 (0)