c895351950
Resolves: #2017035
69 lines
2.0 KiB
Diff
69 lines
2.0 KiB
Diff
From 9a98a3b83e9e974d8d1cdc31e2286a862cc548be Mon Sep 17 00:00:00 2001
|
|
From: Lennart Poettering <lennart@poettering.net>
|
|
Date: Mon, 7 Feb 2022 14:35:40 +0100
|
|
Subject: [PATCH] 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.
|
|
|
|
(cherry picked from commit 2cd341afb96486bd4afcdba23f02a27631c5b8db)
|
|
|
|
Related: #2017035
|
|
---
|
|
test/units/testsuite-58.sh | 42 ++++++++++++++++++++++++++++++++++++++
|
|
1 file changed, 42 insertions(+)
|
|
|
|
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
|