1dc728923Sopenharmony_ciFrom 13f1ce96046fba15d93a90733b791312284fbb62 Mon Sep 17 00:00:00 2001
2dc728923Sopenharmony_ciFrom: Andreas Dilger <adilger@whamcloud.com>
3dc728923Sopenharmony_ciDate: Mon, 28 Feb 2022 21:17:06 -0700
4dc728923Sopenharmony_ciSubject: [PATCH] tests: fix ACL-printing tests
5dc728923Sopenharmony_ci
6dc728923Sopenharmony_ciFix the ACL-printing tests to be more flexible for different systems.
7dc728923Sopenharmony_ciIf the MKFS_DIR is on tmpfs, it will not list "system.posix_acl*"
8dc728923Sopenharmony_cixattrs, so they will not be copied.  Create this on a real filesystem
9dc728923Sopenharmony_cior skip the test if that doesn't work.
10dc728923Sopenharmony_ci
11dc728923Sopenharmony_ciFilter out the security.selinux xattr if it is printed, since this
12dc728923Sopenharmony_cidepends on the selinux configuration of the host system.  However,
13dc728923Sopenharmony_cithis also spills xattrs for "acl_dir/file" into an external xattr
14dc728923Sopenharmony_ciblock, and causes it to fail due to different block allocations.
15dc728923Sopenharmony_ciIncrease the filesystem inode size so that the allocation is the same
16dc728923Sopenharmony_ciregardless of whether selinux is enabled or not.
17dc728923Sopenharmony_ci
18dc728923Sopenharmony_ciFixes: 67e6ae0a35 ("mke2fs: fix a importing a directory with an ACL")
19dc728923Sopenharmony_ciSigned-off-by: Andreas Dilger <adilger@whamcloud.com>
20dc728923Sopenharmony_ciReviewed-by: Artem Blagodarenko <artem.blagodarenko@hpe.com>
21dc728923Sopenharmony_ciReviewed-by: Li Dongyang <dongyangli@ddn.com>
22dc728923Sopenharmony_ciSigned-off-by: Theodore Ts'o <tytso@mit.edu>
23dc728923Sopenharmony_ci---
24dc728923Sopenharmony_ci tests/filter.sed           |  1 +
25dc728923Sopenharmony_ci tests/m_rootdir_acl/expect | 18 +++++++++---------
26dc728923Sopenharmony_ci tests/m_rootdir_acl/script | 13 +++++++++----
27dc728923Sopenharmony_ci 3 files changed, 19 insertions(+), 13 deletions(-)
28dc728923Sopenharmony_ci
29dc728923Sopenharmony_cidiff --git a/tests/filter.sed b/tests/filter.sed
30dc728923Sopenharmony_ciindex 796186e..5fd68f3 100644
31dc728923Sopenharmony_ci--- a/tests/filter.sed
32dc728923Sopenharmony_ci+++ b/tests/filter.sed
33dc728923Sopenharmony_ci@@ -20,6 +20,7 @@ s/\\015//g
34dc728923Sopenharmony_ci /^Maximum mount count:/d
35dc728923Sopenharmony_ci /^Next check after:/d
36dc728923Sopenharmony_ci /^Suggestion:/d
37dc728923Sopenharmony_ci+/security.selinux/d
38dc728923Sopenharmony_ci /Reserved blocks uid:/s/ (user .*)//
39dc728923Sopenharmony_ci /Reserved blocks gid:/s/ (group .*)//
40dc728923Sopenharmony_ci /whichever comes first/d
41dc728923Sopenharmony_cidiff --git a/tests/m_rootdir_acl/expect b/tests/m_rootdir_acl/expect
42dc728923Sopenharmony_ciindex babd802..57f03e5 100644
43dc728923Sopenharmony_ci--- a/tests/m_rootdir_acl/expect
44dc728923Sopenharmony_ci+++ b/tests/m_rootdir_acl/expect
45dc728923Sopenharmony_ci@@ -10,8 +10,8 @@ Filesystem OS type:       Linux
46dc728923Sopenharmony_ci Inode count:              1024
47dc728923Sopenharmony_ci Block count:              16384
48dc728923Sopenharmony_ci Reserved block count:     819
49dc728923Sopenharmony_ci-Overhead clusters:        1543
50dc728923Sopenharmony_ci-Free blocks:              14788
51dc728923Sopenharmony_ci+Overhead clusters:        1799
52dc728923Sopenharmony_ci+Free blocks:              14533
53dc728923Sopenharmony_ci Free inodes:              1003
54dc728923Sopenharmony_ci First block:              1
55dc728923Sopenharmony_ci Block size:               1024
56dc728923Sopenharmony_ci@@ -21,14 +21,14 @@ Reserved GDT blocks:      127
57dc728923Sopenharmony_ci Blocks per group:         8192
58dc728923Sopenharmony_ci Fragments per group:      8192
59dc728923Sopenharmony_ci Inodes per group:         512
60dc728923Sopenharmony_ci-Inode blocks per group:   128
61dc728923Sopenharmony_ci+Inode blocks per group:   256
62dc728923Sopenharmony_ci Flex block group size:    16
63dc728923Sopenharmony_ci Mount count:              0
64dc728923Sopenharmony_ci Check interval:           15552000 (6 months)
65dc728923Sopenharmony_ci Reserved blocks uid:      0
66dc728923Sopenharmony_ci Reserved blocks gid:      0
67dc728923Sopenharmony_ci First inode:              11
68dc728923Sopenharmony_ci-Inode size:	          256
69dc728923Sopenharmony_ci+Inode size:	          512
70dc728923Sopenharmony_ci Required extra isize:     32
71dc728923Sopenharmony_ci Desired extra isize:      32
72dc728923Sopenharmony_ci Journal inode:            8
73dc728923Sopenharmony_ci@@ -49,16 +49,16 @@ Group 0: (Blocks 1-8192)
74dc728923Sopenharmony_ci   Reserved GDT blocks at 3-129
75dc728923Sopenharmony_ci   Block bitmap at 130 (+129)
76dc728923Sopenharmony_ci   Inode bitmap at 132 (+131)
77dc728923Sopenharmony_ci-  Inode table at 134-261 (+133)
78dc728923Sopenharmony_ci-  7750 free blocks, 491 free inodes, 5 directories, 491 unused inodes
79dc728923Sopenharmony_ci-  Free blocks: 443-8192
80dc728923Sopenharmony_ci+  Inode table at 134-389 (+133)
81dc728923Sopenharmony_ci+  7495 free blocks, 491 free inodes, 5 directories, 491 unused inodes
82dc728923Sopenharmony_ci+  Free blocks: 698-8192
83dc728923Sopenharmony_ci   Free inodes: 22-512
84dc728923Sopenharmony_ci Group 1: (Blocks 8193-16383) [INODE_UNINIT]
85dc728923Sopenharmony_ci   Backup superblock at 8193, Group descriptors at 8194-8194
86dc728923Sopenharmony_ci   Reserved GDT blocks at 8195-8321
87dc728923Sopenharmony_ci   Block bitmap at 131 (bg #0 + 130)
88dc728923Sopenharmony_ci   Inode bitmap at 133 (bg #0 + 132)
89dc728923Sopenharmony_ci-  Inode table at 262-389 (bg #0 + 261)
90dc728923Sopenharmony_ci+  Inode table at 390-645 (bg #0 + 389)
91dc728923Sopenharmony_ci   7038 free blocks, 512 free inodes, 0 directories, 512 unused inodes
92dc728923Sopenharmony_ci   Free blocks: 9346-16383
93dc728923Sopenharmony_ci   Free inodes: 513-1024
94dc728923Sopenharmony_ci@@ -116,4 +116,4 @@ Pass 2: Checking directory structure
95dc728923Sopenharmony_ci Pass 3: Checking directory connectivity
96dc728923Sopenharmony_ci Pass 4: Checking reference counts
97dc728923Sopenharmony_ci Pass 5: Checking group summary information
98dc728923Sopenharmony_ci-test.img: 21/1024 files (0.0% non-contiguous), 1596/16384 blocks
99dc728923Sopenharmony_ci+test.img: 21/1024 files (0.0% non-contiguous), 1851/16384 blocks
100dc728923Sopenharmony_cidiff --git a/tests/m_rootdir_acl/script b/tests/m_rootdir_acl/script
101dc728923Sopenharmony_ciindex e81c82c..a00e4c4 100644
102dc728923Sopenharmony_ci--- a/tests/m_rootdir_acl/script
103dc728923Sopenharmony_ci+++ b/tests/m_rootdir_acl/script
104dc728923Sopenharmony_ci@@ -16,12 +16,10 @@ if [ "$os" = "GNU" ]; then
105dc728923Sopenharmony_ci 	return 0
106dc728923Sopenharmony_ci fi
107dc728923Sopenharmony_ci 
108dc728923Sopenharmony_ci-MKFS_DIR=$TMPFILE.dir
109dc728923Sopenharmony_ci+MKFS_DIR=$(mktemp -d ./$test_name-XXXXXX.tmp)
110dc728923Sopenharmony_ci OUT=$test_name.log
111dc728923Sopenharmony_ci EXP=$test_dir/expect
112dc728923Sopenharmony_ci 
113dc728923Sopenharmony_ci-rm -rf $MKFS_DIR
114dc728923Sopenharmony_ci-mkdir -p $MKFS_DIR
115dc728923Sopenharmony_ci touch $MKFS_DIR/emptyfile
116dc728923Sopenharmony_ci dd if=/dev/zero bs=1024 count=32 2> /dev/null | tr '\0' 'a' > $MKFS_DIR/bigfile
117dc728923Sopenharmony_ci echo "M" | dd of=$MKFS_DIR/sparsefile bs=1 count=1 seek=1024 2> /dev/null
118dc728923Sopenharmony_ci@@ -60,7 +58,14 @@ mask::r-x
119dc728923Sopenharmony_ci other::r-x
120dc728923Sopenharmony_ci EOF
121dc728923Sopenharmony_ci 
122dc728923Sopenharmony_ci-$MKE2FS -q -F -o Linux -T ext4 -O metadata_csum,inline_data,64bit -E lazy_itable_init=1 -b 1024 -d $MKFS_DIR $TMPFILE 16384 > $OUT 2>&1
123dc728923Sopenharmony_ci+if ! getfattr -d -m - $MKFS_DIR/acl_dir | grep -q posix_acl; then
124dc728923Sopenharmony_ci+	echo "$test_name: $test_description: skipped (no posix_acl xattrs)"
125dc728923Sopenharmony_ci+	rm -rf $MKFS_DIR
126dc728923Sopenharmony_ci+	return 0
127dc728923Sopenharmony_ci+fi
128dc728923Sopenharmony_ci+
129dc728923Sopenharmony_ci+# use 512-byte inodes so with/out security.selinux xattr doesn't fail
130dc728923Sopenharmony_ci+$MKE2FS -q -F -o Linux -T ext4 -I 512 -O metadata_csum,inline_data,64bit -E lazy_itable_init=1 -b 1024 -d $MKFS_DIR $TMPFILE 16384 > $OUT 2>&1
131dc728923Sopenharmony_ci 
132dc728923Sopenharmony_ci $DUMPE2FS $TMPFILE >> $OUT 2>&1
133dc728923Sopenharmony_ci cat > $TMPFILE.cmd << ENDL
134dc728923Sopenharmony_ci-- 
135dc728923Sopenharmony_ci1.8.3.1
136dc728923Sopenharmony_ci
137