Whamcloud - gitweb
LU-12540 tests: squash multiply -O -E options 82/35482/6
authorAlexey Lyashkov <c17817@cray.com>
Fri, 12 Jul 2019 13:52:09 +0000 (16:52 +0300)
committerOleg Drokin <green@whamcloud.com>
Sat, 27 Jul 2019 00:21:24 +0000 (00:21 +0000)
mkfs.lustre and e2fsprogs don't support a multiply
-O -E options. after checking a code, i think easy
way is handle it situation in the test-framework.

Fixes: 591a9b4cebc5 ("LU-9846 lod: Add overstriping support")
Test-Parameter: trivial

Cray-bug-id: LUS-7479
Signed-off-by: Alexey Lyashkov <c17817@cray.com>
Change-Id: I54cab1e02093136a3550a76d1262aeb281118bae
Reviewed-on: https://review.whamcloud.com/35482
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Shaun Tancheff <stancheff@cray.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/tests/test-framework.sh

index 0169d6c..f571aaf 100755 (executable)
@@ -4433,6 +4433,48 @@ upper() {
        echo -n "$1" | tr '[:lower:]' '[:upper:]'
 }
 
+squash_opt() {
+       local var="$*"
+       local other=""
+       local opt_o=""
+       local opt_e=""
+       local first_e=0
+       local first_o=0
+       local take=""
+
+       var=$(echo "$var" | sed -e 's/,\( \)*/,/g')
+       for i in $(echo "$var"); do
+               if [ "$i" == "-O" ]; then
+                       take="o";
+                       first_o=$(($first_o + 1))
+                       continue;
+               fi
+               if [ "$i" == "-E" ]; then
+                       take="e";
+                       first_e=$(($first_e + 1 ))
+                       continue;
+               fi
+               case $take in
+                       "o")
+                               [ $first_o -gt 1 ] && opt_o+=",";
+                               opt_o+="$i";
+                               ;;
+                       "e")
+                               [ $first_e -gt 1 ] && opt_e+=",";
+                               opt_e+="$i";
+                               ;;
+                       *)
+                               other+=" $i";
+                               ;;
+               esac
+               take=""
+       done
+
+       echo -n "$other"
+       [ -n "$opt_o" ] && echo " -O $opt_o"
+       [ -n "$opt_e" ] && echo " -E $opt_e"
+}
+
 mkfs_opts() {
        local facet=$1
        local dev=$2
@@ -4511,6 +4553,8 @@ mkfs_opts() {
        var=${type}_FS_MKFS_OPTS
        fs_mkfs_opts+=${!var:+" ${!var}"}
 
+       [ $fstype == ldiskfs ] && fs_mkfs_opts=$(squash_opt $fs_mkfs_opts)
+
        if [ -n "${fs_mkfs_opts## }" ]; then
                opts+=" --mkfsoptions=\\\"${fs_mkfs_opts## }\\\""
        fi