diff options
author | Elliott Hughes <enh@google.com> | 2020-02-01 17:17:28 -0800 |
---|---|---|
committer | Rob Landley <rob@landley.net> | 2020-02-01 22:37:36 -0600 |
commit | 49912d6f47311d087ce007129a945e48199bfbac (patch) | |
tree | f4539c3e31240e6788de52af2c93aacc8410dda5 | |
parent | ae626295bad3e20a9c457f5f616cd92299f5258c (diff) | |
download | toybox-49912d6f47311d087ce007129a945e48199bfbac.tar.gz |
chattr.test/lsattr.test: fix on more kernels/fses.
The tests now pass on all the systems available to me (cloud Android
with encrypted f2fs, current AOSP with regular f2fs, and current Debian
testing with ext4).
-rwxr-xr-x | tests/chattr.test | 8 | ||||
-rw-r--r-- | tests/lsattr.test | 13 |
2 files changed, 13 insertions, 8 deletions
diff --git a/tests/chattr.test b/tests/chattr.test index e3d8d547..2e580cfb 100755 --- a/tests/chattr.test +++ b/tests/chattr.test @@ -13,12 +13,12 @@ fi function clean() { # We don't know whether the fs will have extents (e, typically true on the - # desktop) or be encrypted (E, typically true on Android), so strip out both - # the long and short forms of those. + # desktop) or be encrypted (E, typically true on Android), or have data + # inlined in the inode (N), or use indexed directories, so strip those out. # We also don't want to rely on chattr(1) to set a known version number or # project number, so blank out any numbers. - sed 's/, Encrypted//; s/-E-/---/; s/, Extents//; s/-e-/---/' | \ - sed -E 's/[0-9]+/_/g' + sed -E 's/, (Encrypted|Extents|Indexed_directory|Inline_Data)//g;' | + sed -E 's/[EeIN]-/--/g; s/[0-9]+/_/g' } mkdir testattr diff --git a/tests/lsattr.test b/tests/lsattr.test index b31d6d85..cadbe920 100644 --- a/tests/lsattr.test +++ b/tests/lsattr.test @@ -13,12 +13,12 @@ _d='--------------------' function clean() { # We don't know whether the fs will have extents (e, typically true on the - # desktop) or be encrypted (E, typically true on Android), so strip out both - # the long and short forms of those. + # desktop) or be encrypted (E, typically true on Android), or have data + # inlined in the inode (N), or use indexed directories, so strip those out. # We also don't want to rely on chattr(1) to set a known version number or # project number, so blank out any numbers. - sed 's/, Encrypted//; s/-E-/---/; s/, Extents//; s/-e-/---/' | \ - sed -E 's/[0-9]+/_/g' + sed -E 's/, (Encrypted|Extents|Indexed_directory|Inline_Data)//g;' | + sed -E 's/[EeIN]-/--/g; s/[0-9]+/_/g' } testing "file" "lsattr file | clean" "$_A file\n" "" "" @@ -29,8 +29,13 @@ testing "-d file" "lsattr -d file | clean" "$_A file\n" "" "" NOSPACE=1 testing "-l file" "lsattr -l file | clean" "file No_Atime\n" "" "" NOSPACE=1 testing "-v file" "lsattr -v file | clean" "_ $_A file\n" "" "" NOSPACE=1 testing "-lv file" "lsattr -lv file | clean" "_ file No_Atime\n" "" "" + +# You need at least Linux 4.5 plus file system support for project ids. +lsattr -p file >/dev/null 2>&1 || SKIPNEXT=1 NOSPACE=1 testing "-p file" "lsattr -p file | clean" "_ $_A file\n" "" "" +lsattr -p file >/dev/null 2>&1 || SKIPNEXT=1 NOSPACE=1 testing "-lp file" "lsattr -lp file | clean" "_ file No_Atime\n" "" "" +lsattr -p file >/dev/null 2>&1 || SKIPNEXT=1 NOSPACE=1 testing "-vp file" "lsattr -vp file | clean" "_ _ $_A file\n" "" "" chattr -AacDdijsStTu file && cd .. |