diff options
author | Lennart Poettering <lennart@poettering.net> | 2022-02-07 14:35:40 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2022-02-08 10:52:05 +0100 |
commit | 2cd341afb96486bd4afcdba23f02a27631c5b8db (patch) | |
tree | 4503e2bb7a4bec8a8f806a796292e253e383f40e /test/units/testsuite-58.sh | |
parent | 994b303123ebe6a140bf3e56c66aa66119ae7d95 (diff) | |
download | systemd-2cd341afb96486bd4afcdba23f02a27631c5b8db.tar.gz |
tests: add repart tests for block devices with 1024, 2048, 4096 byte sector sizes
let's make sure repart works with 4K drives and exotic sector sizes.
Diffstat (limited to 'test/units/testsuite-58.sh')
-rwxr-xr-x | test/units/testsuite-58.sh | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/test/units/testsuite-58.sh b/test/units/testsuite-58.sh index 4b3c984c84..7aed965fb4 100755 --- a/test/units/testsuite-58.sh +++ b/test/units/testsuite-58.sh @@ -189,6 +189,48 @@ grep -qF 'p2 : start= 104448, size= 100319,' /tmp/testsuite-58-issue-2 rm /tmp/testsuite-58-issue-21817.img /tmp/testsuite-58-issue-21817.dump rm -r /tmp/testsuite-58-issue-21817-defs/ +testsector() +{ + echo "Running sector test with sector size $1..." + + mkdir -p /tmp/testsuite-58-sector + cat > /tmp/testsuite-58-sector/a.conf <<EOF +[Partition] +Type=root +SizeMaxBytes=15M +SizeMinBytes=15M +EOF + cat > /tmp/testsuite-58-sector/b.conf <<EOF +[Partition] +Type=linux-generic +Weight=250 +EOF + + cat > /tmp/testsuite-58-sector/c.conf <<EOF +[Partition] +Type=linux-generic +Weight=750 +EOF + + truncate -s 100m "/tmp/testsuite-58-sector-$1.img" + LOOP=$(losetup -b "$1" -P --show -f "/tmp/testsuite-58-sector-$1.img" ) + systemd-repart --pretty=yes --definitions=/tmp/testsuite-58-sector/ --seed=750b6cd5c4ae4012a15e7be3c29e6a47 --empty=require --dry-run=no "$LOOP" + rm -rf /tmp/testsuite-58-sector + sfdisk --verify "$LOOP" + sfdisk --dump "$LOOP" + losetup -d "$LOOP" + + rm "/tmp/testsuite-58-sector-$1.img" +} + +# Valid block sizes on the Linux block layer are >= 512 and <= PAGE_SIZE, and +# must be powers of 2. Which leaves exactly four different ones to test on +# typical hardware +testsector 512 +testsector 1024 +testsector 2048 +testsector 4096 + echo OK >/testok exit 0 |