Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions config/core/rootfs-configs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ rootfs_configs:
- misc_packages
- package_management
- misc_directories
test_overlay: "overlays/blktests"


bookworm-cros-ec:
Expand Down
42 changes: 42 additions & 0 deletions config/rootfs/debos/overlays/blktests/usr/bin/run-blktests.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#!/bin/bash
set -euo pipefail
set -x

TEST_GROUP="${1:-}"
TEST_DEV="${2:-}"

if [ -z "$TEST_GROUP" ] || [ -z "$TEST_DEV" ]; then
echo "Usage: $0 <TEST_GROUP> <TEST_DEV|loop>"
exit 1
fi

LOOPBACK_REQUIRED=false
LOOPDEV=""
LOOPFILE=""

if [ "$TEST_DEV" = "loop" ]; then
LOOPBACK_REQUIRED=true
fi

cleanup() {
if [ "$LOOPBACK_REQUIRED" = true ] && [ -n "${LOOPDEV:-}" ]; then
losetup -d "$LOOPDEV" || true
fi
[ -n "${LOOPFILE:-}" ] && rm -f "$LOOPFILE"
}
trap cleanup EXIT

if [ "$LOOPBACK_REQUIRED" = true ]; then
LOOPFILE=$(mktemp /tmp/loopdisk.XXXX.img)
truncate -s 1G "$LOOPFILE"
LOOPDEV=$(losetup -f --show "$LOOPFILE")
echo "Created loop device: $LOOPDEV"

mkfs.ext4 -F "$LOOPDEV" > /dev/null
TEST_DEV="$LOOPDEV"
fi

mkdir -p /tmp/blktests-results
cd /usr/local/blktests/
echo "TEST_DEVS=('$TEST_DEV')" > config
./check -c config "$TEST_GROUP" --output /tmp/blktests-results
19 changes: 19 additions & 0 deletions config/runtime/tests/blktests.jinja2
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
- test:
timeout:
minutes: {{ job_timeout|default('20') }}
definitions:
- repository:
metadata:
format: Lava-Test Test Definition 1.0
name: {{ node.name }}
description: "blktests"
os:
- debian
scope:
- functional
run:
steps:
- /usr/bin/blktests.sh "{{ test_group }}" "{{ test_device }}"
from: inline
name: {{ node.name }}
path: inline/{{ node.name }}.yaml