From b0656051531f5e07f4d8e9b6cc51b93ca03cde39 Mon Sep 17 00:00:00 2001 From: Alexey Lyashkov Date: Fri, 12 Jul 2019 16:52:09 +0300 Subject: [PATCH] LU-12540 tests: squash multiply -O -E options 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 Change-Id: I54cab1e02093136a3550a76d1262aeb281118bae Reviewed-on: https://review.whamcloud.com/35482 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Andreas Dilger Reviewed-by: Shaun Tancheff Reviewed-by: Oleg Drokin --- lustre/tests/test-framework.sh | 44 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/lustre/tests/test-framework.sh b/lustre/tests/test-framework.sh index 0169d6c..f571aaf 100755 --- a/lustre/tests/test-framework.sh +++ b/lustre/tests/test-framework.sh @@ -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 -- 1.8.3.1