ALWAYS_EXCEPT="$SANITY_LIPE_EXCEPT "
# UPDATE THE COMMENT ABOVE WITH BUG NUMBERS WHEN CHANGING ALWAYS_EXCEPT!
-# FIXME to support DNE
-(( MDSCOUNT == 1 )) || skip_env "need 1 MDT"
(( OSTCOUNT >= 2 )) || skip_env "need at least 2 OSTs"
[[ $(facet_fstype mds1) = ldiskfs ]] || skip_env "need ldiskfs on MDS"
stack_trap "zconf_umount_clients $LIPE_MDS_NODE $MOUNT"
fi
+# choose a random MDS and return its facet
+lipe_get_random_mds() {
+ (( MDSCOUNT != 1 )) || { echo -n mds1; return; }
+ echo -n $(get_random_entry $(get_facets MDS))
+}
+
+# if the test suite was run on an MDS, then return the MDS facet
+lipe_get_local_mds() {
+ local facet
+ local facets
+
+ facets=$(get_facets MDS)
+ for facet in ${facets//,/ }; do
+ if local_node $(facet_active_host $facet); then
+ echo -n $facet
+ return
+ fi
+ done
+}
+
# create OST pools
create_ost_pools() {
pool_add $LIPE_POOL1 || error "failed to create OST pool '$LIPE_POOL1'"
local file="$1"
[[ -n "$file" ]] || error "file was not specified"
- # create OST pools
- [[ -z "$pool" ]] || create_ost_pools
-
# create a regular file
cmd="$LFS setstripe -c -1 -i -1 -S 4M ${pool:+-p $LIPE_POOL1 }$file.1"
echo $cmd
}
lipe_find_expect_file() {
- local file="$1"
- local which="$2"
+ local facet="$1"
+ local file="$2"
+ local which="$3"
- do_lipe_find_facet mds1 $PRINT_FID_OPT "${@:3}" |
+ do_lipe_find_facet $facet $PRINT_FID_OPT "${@:4}" |
expect_file "$file" "$which"
}
lipe_find_expect_fid() {
- local fid="$1"
- local which="$2"
+ local facet="$1"
+ local fid="$2"
+ local which="$3"
- do_lipe_find_facet mds1 $PRINT_FID_OPT "${@:3}" |
+ do_lipe_find_facet $facet $PRINT_FID_OPT "${@:4}" |
expect_fid "$fid" "$which"
}
echo -n $max_stripe_size
}
+LIPE_MDS_FACET=""
+(( MDSCOUNT == 1 )) && LIPE_MDS_FACET=mds1 ||
+ LIPE_MDS_FACET=$(lipe_get_local_mds)
+[[ -n $LIPE_MDS_FACET ]] ||
+ echo "No local MDS. Each test will be run on a random MDS."
+
# lipe_find test cases
test_1() {
- do_lipe_find_facet mds1 $PRINT_FID_OPT || error "cannot run lipe_find"
+ local facet=${LIPE_MDS_FACET:-$(lipe_get_random_mds)}
+
+ do_lipe_find_facet $facet $PRINT_FID_OPT ||
+ error "cannot run lipe_find on $facet"
}
run_test 1 "lipe_find works"
test_2() {
local td=$DIR/$tdir
local tf=$td/$tfile
+ local facet=${LIPE_MDS_FACET:-$(lipe_get_random_mds)}
+ local index=$(($(facet_number $facet) - 1))
- mkdir $td || error "mkdir '$td' failed"
+ mkdir_on_mdt -i $index $td || error "$LFS mkdir '$td' failed"
touch $tf || error "touch '$tf' failed"
- lipe_find_expect_file $td
- lipe_find_expect_file $tf
+ lipe_find_expect_file $facet $td
+ lipe_find_expect_file $facet $tf
}
run_test 2 "lipe_find finds dir and file"
test_3_sub() {
- local path="$1"
+ local facet="$1"
+ local path="$2"
local fid
fid=$($LFS path2fid "$path" | tr -d '[]')
[[ -n "$fid" ]] || error "cannot get FID of '$path'"
- lipe_find_expect_fid $fid true "-fid $fid"
- lipe_find_expect_fid $fid true "-expr 'fid_match(\\\"$fid\\\")'"
- lipe_find_expect_fid $fid true "-fid '*'"
- lipe_find_expect_fid $fid true "-fid '*${fid:3}'"
- lipe_find_expect_fid $fid true "-fid '${fid%:*}*'"
- lipe_find_expect_fid $fid true "-fid '*${fid:3:12}*'"
- lipe_find_expect_fid $fid false "-fid X$fid"
- lipe_find_expect_fid $fid false "-fid ${fid}X"
+ lipe_find_expect_fid $facet $fid true "-fid $fid"
+ lipe_find_expect_fid $facet $fid true "-expr 'fid_match(\\\"$fid\\\")'"
+ lipe_find_expect_fid $facet $fid true "-fid '*'"
+ lipe_find_expect_fid $facet $fid true "-fid '*${fid:3}'"
+ lipe_find_expect_fid $facet $fid true "-fid '${fid%:*}*'"
+ lipe_find_expect_fid $facet $fid true "-fid '*${fid:3:12}*'"
+ lipe_find_expect_fid $facet $fid false "-fid X$fid"
+ lipe_find_expect_fid $facet $fid false "-fid ${fid}X"
}
test_3() {
local td=$DIR/$tdir
local tf=$td/$tfile
+ local facet=${LIPE_MDS_FACET:-$(lipe_get_random_mds)}
+ local index=$(($(facet_number $facet) - 1))
local file
- mkdir $td || error "mkdir $td failed"
+ mkdir_on_mdt -i $index $td || error "$LFS mkdir '$td' failed"
create_lipe_find_files $tf
echo -e "\nTest $td"
- test_3_sub $td
+ test_3_sub $facet $td
for file in $(ls $td); do
echo -e "\nTest $td/$file"
- test_3_sub $td/$file
+ test_3_sub $facet $td/$file
done
}
run_test 3 "lipe_find -fid works"
test_4_sub() {
- local file="$1"
+ local facet="$1"
+ local file="$2"
local name=$(basename $file)
# -name is the same with -iname except the match is case sensitive
- lipe_find_expect_file $file true "-name $name"
- lipe_find_expect_file $file true "-expr 'fname_match(\\\"$name\\\")'"
- lipe_find_expect_file $file false "-name ${name^^}"
- lipe_find_expect_file $file false "-name ${name^}"
- lipe_find_expect_file $file true "-name '*'"
- lipe_find_expect_file $file false "! -name $name"
- lipe_find_expect_file $file true "! -name ${name^^}"
- lipe_find_expect_file $file true "! -name ${name^}"
- lipe_find_expect_file $file false "! -name '*'"
+ lipe_find_expect_file $facet $file true "-name $name"
+ lipe_find_expect_file $facet $file true \
+ "-expr 'fname_match(\\\"$name\\\")'"
+ lipe_find_expect_file $facet $file false "-name ${name^^}"
+ lipe_find_expect_file $facet $file false "-name ${name^}"
+ lipe_find_expect_file $facet $file true "-name '*'"
+ lipe_find_expect_file $facet $file false "! -name $name"
+ lipe_find_expect_file $facet $file true "! -name ${name^^}"
+ lipe_find_expect_file $facet $file true "! -name ${name^}"
+ lipe_find_expect_file $facet $file false "! -name '*'"
# -iname is the same with -name except the match is case insensitive
- lipe_find_expect_file $file true "-iname $name"
- lipe_find_expect_file $file true "-expr 'fname_imatch(\\\"$name\\\")'"
- lipe_find_expect_file $file true "-iname ${name^^}"
- lipe_find_expect_file $file true \
+ lipe_find_expect_file $facet $file true "-iname $name"
+ lipe_find_expect_file $facet $file true \
+ "-expr 'fname_imatch(\\\"$name\\\")'"
+ lipe_find_expect_file $facet $file true "-iname ${name^^}"
+ lipe_find_expect_file $facet $file true \
"-expr 'fname_imatch(\\\"${name^^}\\\")'"
- lipe_find_expect_file $file true "-iname ${name^}"
- lipe_find_expect_file $file true "-iname '*'"
- lipe_find_expect_file $file false "! -iname $name"
- lipe_find_expect_file $file false "! -iname ${name^^}"
- lipe_find_expect_file $file false "! -iname ${name^}"
- lipe_find_expect_file $file false "! -iname '*'"
+ lipe_find_expect_file $facet $file true "-iname ${name^}"
+ lipe_find_expect_file $facet $file true "-iname '*'"
+ lipe_find_expect_file $facet $file false "! -iname $name"
+ lipe_find_expect_file $facet $file false "! -iname ${name^^}"
+ lipe_find_expect_file $facet $file false "! -iname ${name^}"
+ lipe_find_expect_file $facet $file false "! -iname '*'"
}
test_4() {
local td=$DIR/$tdir
local tf=$td/${tfile//-/_}
+ local facet=${LIPE_MDS_FACET:-$(lipe_get_random_mds)}
+ local index=$(($(facet_number $facet) - 1))
local file
- mkdir $td || error "mkdir $td failed"
+ mkdir_on_mdt -i $index $td || error "$LFS mkdir '$td' failed"
create_lipe_find_files $tf
for file in $(ls $td); do
echo -e "\nTest $td/$file"
- test_4_sub $td/$file
+ test_4_sub $facet $td/$file
done
}
run_test 4 "lipe_find -name and -iname works"
test_5_sub() {
- local file="$1"
+ local facet="$1"
+ local file="$2"
local inum
inum=$(stat -c %i $file)
[[ -n "$inum" ]] || error "cannot get inode number of '$file'"
- lipe_find_expect_file $file true "-inum $inum"
- lipe_find_expect_file $file true "-expr 'inum == $inum'"
- lipe_find_expect_file $file true "-expr '== inum $inum'"
- lipe_find_expect_file $file false "! -inum $inum"
+ lipe_find_expect_file $facet $file true "-inum $inum"
+ lipe_find_expect_file $facet $file true "-expr 'inum == $inum'"
+ lipe_find_expect_file $facet $file true "-expr '== inum $inum'"
+ lipe_find_expect_file $facet $file false "! -inum $inum"
}
test_5() {
local td=$DIR/$tdir
local tf=$td/$tfile
+ local facet=${LIPE_MDS_FACET:-$(lipe_get_random_mds)}
+ local index=$(($(facet_number $facet) - 1))
local file
- mkdir $td || error "mkdir $td failed"
- create_lipe_find_files $tf
-
local saved_LIPE_FIND_USE_MOUNT=$LIPE_FIND_USE_MOUNT
LIPE_FIND_USE_MOUNT=true
stack_trap "LIPE_FIND_USE_MOUNT=$saved_LIPE_FIND_USE_MOUNT"
+ mkdir_on_mdt -i $index $td || error "$LFS mkdir '$td' failed"
+ create_lipe_find_files $tf
+
echo -e "\nTest $td"
- test_5_sub $td
+ test_5_sub $facet $td
for file in $(ls $td); do
echo -e "\nTest $td/$file"
- test_5_sub $td/$file
+ test_5_sub $facet $td/$file
done
}
run_test 5 "lipe_find -inum works"
test_6_sub() {
- local path="$1"
+ local facet="$1"
+ local path="$2"
local fid
local t_option
local t_constant
t_constant=$(convert_file_type constant "$(stat -c %F $path)")
[[ -n "$t_constant" ]] || error "cannot get type constant of '$path'"
- lipe_find_expect_fid $fid true "-type $t_option"
- lipe_find_expect_fid $fid false "! -type $t_option"
- lipe_find_expect_fid $fid true "-expr '== type $t_constant'"
- lipe_find_expect_fid $fid true "-expr 'type == $t_constant'"
- lipe_find_expect_fid $fid true \
+ lipe_find_expect_fid $facet $fid true "-type $t_option"
+ lipe_find_expect_fid $facet $fid false "! -type $t_option"
+ lipe_find_expect_fid $facet $fid true "-expr '== type $t_constant'"
+ lipe_find_expect_fid $facet $fid true "-expr 'type == $t_constant'"
+ lipe_find_expect_fid $facet $fid true \
"-expr '(type == $t_constant) && fid_match(\\\"$fid\\\")'"
- lipe_find_expect_fid $fid true \
+ lipe_find_expect_fid $facet $fid true \
"-expr '(type==$t_constant) && fid_match(\\\"$fid\\\")'"
- lipe_find_expect_fid $fid true \
+ lipe_find_expect_fid $facet $fid true \
"-expr '(type != $t_constant) || fid_match(\\\"$fid\\\")'"
- lipe_find_expect_fid $fid true "-name $name -type $t_option"
- lipe_find_expect_fid $fid true "-name '*' -type $t_option"
+ lipe_find_expect_fid $facet $fid true "-name $name -type $t_option"
+ lipe_find_expect_fid $facet $fid true "-name '*' -type $t_option"
}
test_6() {
local td=$DIR/$tdir
local tf=$td/$tfile
+ local facet=${LIPE_MDS_FACET:-$(lipe_get_random_mds)}
+ local index=$(($(facet_number $facet) - 1))
local file
- mkdir $td || error "mkdir $td failed"
+ mkdir_on_mdt -i $index $td || error "$LFS mkdir '$td' failed"
create_lipe_find_files $tf
echo -e "\nTest $td"
- test_6_sub $td
+ test_6_sub $facet $td
for file in $(ls $td); do
echo -e "\nTest $td/$file"
- test_6_sub $td/$file
+ test_6_sub $facet $td/$file
done
}
run_test 6 "lipe_find -type works"
test_7_sub() {
- local path="$1"
+ local facet="$1"
+ local path="$2"
local fid
local pool
pool=$($LFS getstripe -p "$path" | head -1)
if [[ -z "$pool" ]]; then
- lipe_find_expect_fid $fid false "-pool '*'"
- lipe_find_expect_fid $fid false "-pool-regex '.*'"
+ lipe_find_expect_fid $facet $fid false "-pool '*'"
+ lipe_find_expect_fid $facet $fid false "-pool-regex '.*'"
return
fi
- lipe_find_expect_fid $fid true "-pool '*'"
- lipe_find_expect_fid $fid true "-pool-regex '.*'"
- lipe_find_expect_fid $fid true "-pool $pool"
- lipe_find_expect_fid $fid true "-pool-regex $pool"
- lipe_find_expect_fid $fid false "-pool ${pool}x"
- lipe_find_expect_fid $fid false "-pool-regex ${pool}x"
- lipe_find_expect_fid $fid false "-pool x$pool"
- lipe_find_expect_fid $fid false "-pool-regex x$pool"
- lipe_find_expect_fid $fid true "-expr 'pool_match(\\\"$pool\\\")'"
- lipe_find_expect_fid $fid true "-expr 'pool_reg(\\\"$pool\\\")'"
+ lipe_find_expect_fid $facet $fid true "-pool '*'"
+ lipe_find_expect_fid $facet $fid true "-pool-regex '.*'"
+ lipe_find_expect_fid $facet $fid true "-pool $pool"
+ lipe_find_expect_fid $facet $fid true "-pool-regex $pool"
+ lipe_find_expect_fid $facet $fid false "-pool ${pool}x"
+ lipe_find_expect_fid $facet $fid false "-pool-regex ${pool}x"
+ lipe_find_expect_fid $facet $fid false "-pool x$pool"
+ lipe_find_expect_fid $facet $fid false "-pool-regex x$pool"
+ lipe_find_expect_fid $facet $fid true "-expr 'pool_reg(\\\"$pool\\\")'"
+ lipe_find_expect_fid $facet $fid true \
+ "-expr 'pool_match(\\\"$pool\\\")'"
}
test_7() {
local td=$DIR/$tdir
local tf=$td/$tfile
+ local facet=${LIPE_MDS_FACET:-$(lipe_get_random_mds)}
+ local index=$(($(facet_number $facet) - 1))
local file
- mkdir $td || error "mkdir $td failed"
+ # create OST pools
+ create_ost_pools
+
+ mkdir_on_mdt -i $index $td || error "$LFS mkdir '$td' failed"
create_regular_files --with-pool $tf
echo -e "\nTest $td"
- test_7_sub $td
+ test_7_sub $facet $td
for file in $(ls $td); do
echo -e "\nTest $td/$file"
- test_7_sub $td/$file
+ test_7_sub $facet $td/$file
done
}
run_test 7 "lipe_find -pool works"
test_8_sub() {
- local file="$1"
+ local facet="$1"
+ local file="$2"
local type
local count
local size
if [[ $type != S_IFREG && $type != S_IFDIR ]] ||
[[ "$($LFS getstripe -c $file)" =~ "no stripe info" ]]; then
- lipe_find_expect_file $file false "-stripe-count 1"
- lipe_find_expect_file $file false "! -stripe-count 1"
- lipe_find_expect_file $file false "-stripe-count +1"
-
- lipe_find_expect_file $file false "-stripe-size 1048576"
- lipe_find_expect_file $file false "! -stripe-size 1048576"
- lipe_find_expect_file $file false "-stripe-size +1"
+ lipe_find_expect_file $facet $file false "-stripe-count 1"
+ lipe_find_expect_file $facet $file false "! -stripe-count 1"
+ lipe_find_expect_file $facet $file false "-stripe-count +1"
+
+ lipe_find_expect_file $facet $file false "-stripe-size +1"
+ lipe_find_expect_file $facet $file false "-stripe-size 1048576"
+ lipe_find_expect_file $facet $file false \
+ "! -stripe-size 1048576"
return
fi
max_stripe_size=$(lipe_find_max_stripe_size $file)
- lipe_find_expect_file $file true "-stripe-count $count"
- lipe_find_expect_file $file false "! -stripe-count $count"
- lipe_find_expect_file $file false "-stripe-count +2000"
- lipe_find_expect_file $file true "-expr 'stripe_count == $count'"
- lipe_find_expect_file $file false "-expr 'stripe_count != $count'"
- lipe_find_expect_file $file true "-expr 'stripe_count >= $count'"
- lipe_find_expect_file $file true "-expr 'stripe_count <= $count'"
+ lipe_find_expect_file $facet $file true "-stripe-count $count"
+ lipe_find_expect_file $facet $file false "! -stripe-count $count"
+ lipe_find_expect_file $facet $file false "-stripe-count +2000"
+ lipe_find_expect_file $facet $file true "-expr 'stripe_count == $count'"
+ lipe_find_expect_file $facet $file false \
+ "-expr 'stripe_count != $count'"
+ lipe_find_expect_file $facet $file true "-expr 'stripe_count >= $count'"
+ lipe_find_expect_file $facet $file true "-expr 'stripe_count <= $count'"
- lipe_find_expect_file $file false "-stripe-size $((size - 1))"
- lipe_find_expect_file $file false "-stripe-size $((size + 1))"
- lipe_find_expect_file $file false "-stripe-size +$max_stripe_size"
+ lipe_find_expect_file $facet $file false "-stripe-size $((size - 1))"
+ lipe_find_expect_file $facet $file false "-stripe-size $((size + 1))"
+ lipe_find_expect_file $facet $file false \
+ "-stripe-size +$max_stripe_size"
if [[ $type != S_IFDIR ]]; then
- lipe_find_expect_file $file true "-expr 'stripe_size == $size'"
- lipe_find_expect_file $file false "-expr 'stripe_size != $size'"
- lipe_find_expect_file $file true "-expr 'stripe_size >= $size'"
- lipe_find_expect_file $file true "-expr 'stripe_size <= $size'"
+ lipe_find_expect_file $facet $file true \
+ "-expr 'stripe_size == $size'"
+ lipe_find_expect_file $facet $file false \
+ "-expr 'stripe_size != $size'"
+ lipe_find_expect_file $facet $file true \
+ "-expr 'stripe_size >= $size'"
+ lipe_find_expect_file $facet $file true \
+ "-expr 'stripe_size <= $size'"
fi
}
test_8() {
local td=$DIR/$tdir
local tf=$td/$tfile
+ local facet=${LIPE_MDS_FACET:-$(lipe_get_random_mds)}
+ local index=$(($(facet_number $facet) - 1))
local file
- mkdir $td || error "mkdir $td failed"
- $LFS setstripe -c 1 $td || error "$LFS setstripe -c 1 $td failed"
+ mkdir_on_mdt -i $index $td || error "$LFS mkdir '$td' failed"
+ $LFS setstripe -c 1 $td ||
+ error "$LFS setstripe -c 1 $td failed"
create_lipe_find_files $tf
echo -e "\nTest $td"
- test_8_sub $td
+ test_8_sub $facet $td
for file in $(ls $td); do
echo -e "\nTest $td/$file"
- test_8_sub $td/$file
+ test_8_sub $facet $td/$file
done
}
run_test 8 "lipe_find -stripe-count and -stripe-size work"
test_9_sub() {
- local file="$1"
+ local facet="$1"
+ local file="$2"
local type
local idx
if [[ $type != S_IFREG && $type != S_IFDIR ]] ||
[[ "$($LFS getstripe -i $file)" =~ "no stripe info" ]]; then
- lipe_find_expect_file $file false "-ost 0"
- lipe_find_expect_file $file false "! -ost 0"
+ lipe_find_expect_file $facet $file false "-ost 0"
+ lipe_find_expect_file $facet $file false "! -ost 0"
- lipe_find_expect_file $file false "-stripe-index 0"
- lipe_find_expect_file $file false "! -stripe-index 0"
+ lipe_find_expect_file $facet $file false "-stripe-index 0"
+ lipe_find_expect_file $facet $file false "! -stripe-index 0"
return
fi
[[ -n "$idx" ]] || error "cannot get stripe index of '$file'"
if [[ $type = S_IFDIR || "$($LFS getstripe -L $file)" == "mdt" ]]; then
- lipe_find_expect_file $file false "-ost $idx"
- lipe_find_expect_file $file true "! -ost $idx"
- lipe_find_expect_file $file false "-ost $((idx + 1))"
- lipe_find_expect_file $file true "! -ost $((idx + 1))"
-
- lipe_find_expect_file $file false "-stripe-index $idx"
- lipe_find_expect_file $file true "! -stripe-index $idx"
- lipe_find_expect_file $file false "-stripe-index $((idx + 1))"
- lipe_find_expect_file $file true "! -stripe-index $((idx + 1))"
+ lipe_find_expect_file $facet $file false "-ost $idx"
+ lipe_find_expect_file $facet $file true "! -ost $idx"
+ lipe_find_expect_file $facet $file false "-ost $((idx + 1))"
+ lipe_find_expect_file $facet $file true "! -ost $((idx + 1))"
+
+ lipe_find_expect_file $facet $file false "-stripe-index $idx"
+ lipe_find_expect_file $facet $file true "! -stripe-index $idx"
+ lipe_find_expect_file $facet $file false \
+ "-stripe-index $((idx + 1))"
+ lipe_find_expect_file $facet $file true \
+ "! -stripe-index $((idx + 1))"
elif [[ $type = S_IFREG ]]; then
- lipe_find_expect_file $file true "-ost $idx"
- lipe_find_expect_file $file true "-expr 'ost($idx)'"
- lipe_find_expect_file $file false "! -ost $idx"
- lipe_find_expect_file $file false "-ost $((idx + OSTCOUNT))"
- lipe_find_expect_file $file true "! -ost $((idx + OSTCOUNT))"
-
- lipe_find_expect_file $file true "-stripe-index $idx"
- lipe_find_expect_file $file false "! -stripe-index $idx"
- lipe_find_expect_file $file false \
+ lipe_find_expect_file $facet $file true "-ost $idx"
+ lipe_find_expect_file $facet $file true "-expr 'ost($idx)'"
+ lipe_find_expect_file $facet $file false "! -ost $idx"
+ lipe_find_expect_file $facet $file false \
+ "-ost $((idx + OSTCOUNT))"
+ lipe_find_expect_file $facet $file true \
+ "! -ost $((idx + OSTCOUNT))"
+
+ lipe_find_expect_file $facet $file true "-stripe-index $idx"
+ lipe_find_expect_file $facet $file false "! -stripe-index $idx"
+ lipe_find_expect_file $facet $file false \
"-stripe-index $((idx + OSTCOUNT))"
- lipe_find_expect_file $file true \
+ lipe_find_expect_file $facet $file true \
"! -stripe-index $((idx + OSTCOUNT))"
fi
}
test_9() {
local td=$DIR/$tdir
local tf=$td/$tfile
+ local facet=${LIPE_MDS_FACET:-$(lipe_get_random_mds)}
+ local index=$(($(facet_number $facet) - 1))
local file
- mkdir $td || error "mkdir $td failed"
- $LFS setstripe -i 0 $td || error "$LFS setstripe -i 0 $td failed"
+ mkdir_on_mdt -i $index $td || error "$LFS mkdir '$td' failed"
+ $LFS setstripe -i 0 $td ||
+ error "$LFS setstripe -i 0 $td failed"
create_lipe_find_files $tf
echo -e "\nTest $td"
- test_9_sub $td
+ test_9_sub $facet $td
for file in $(ls $td); do
echo -e "\nTest $td/$file"
- test_9_sub $td/$file
+ test_9_sub $facet $td/$file
done
}
run_test 9 "lipe_find -ost and -stripe-index work"
test_10_sub() {
- local file="$1"
+ local facet="$1"
+ local file="$2"
local type
local count
if [[ $type != S_IFREG && $type != S_IFDIR ]] ||
[[ "$($LFS getstripe --comp-count $file)" =~ "no stripe info" ]]
then
- lipe_find_expect_file $file false "-comp-count 0"
- lipe_find_expect_file $file false "! -comp-count 0"
- lipe_find_expect_file $file false "-comp-count +1"
- lipe_find_expect_file $file false "-comp-count -1"
-
- lipe_find_expect_file $file false "-component-count 0"
- lipe_find_expect_file $file false "! -component-count 0"
- lipe_find_expect_file $file false "-component-count +1"
- lipe_find_expect_file $file false "-component-count -1"
+ lipe_find_expect_file $facet $file false "-comp-count 0"
+ lipe_find_expect_file $facet $file false "! -comp-count 0"
+ lipe_find_expect_file $facet $file false "-comp-count +1"
+ lipe_find_expect_file $facet $file false "-comp-count -1"
+
+ lipe_find_expect_file $facet $file false "-component-count 0"
+ lipe_find_expect_file $facet $file false "! -component-count 0"
+ lipe_find_expect_file $facet $file false "-component-count +1"
+ lipe_find_expect_file $facet $file false "-component-count -1"
return
fi
[[ -n "$count" ]] || error "cannot get component count of '$file'"
(( count != 0 )) || return 0
- lipe_find_expect_file $file true "-comp-count $count"
- lipe_find_expect_file $file false "! -comp-count $count"
- lipe_find_expect_file $file false "-comp-count +$count"
- lipe_find_expect_file $file false "-comp-count -$count"
- lipe_find_expect_file $file true "-comp-count -$((count + 1))"
-
- lipe_find_expect_file $file true "-expr 'comp_count == $count'"
- lipe_find_expect_file $file false "-expr 'comp_count != $count'"
- lipe_find_expect_file $file true "-expr 'comp_count >= $count'"
- lipe_find_expect_file $file true "-expr 'comp_count <= $count'"
-
- lipe_find_expect_file $file true "-component-count $count"
- lipe_find_expect_file $file false "! -component-count $count"
- lipe_find_expect_file $file false "-component-count $((count + 1))"
- lipe_find_expect_file $file true "! -component-count $((count + 1))"
- lipe_find_expect_file $file true "-component-count +$((count - 1))"
+ lipe_find_expect_file $facet $file true "-comp-count $count"
+ lipe_find_expect_file $facet $file false "! -comp-count $count"
+ lipe_find_expect_file $facet $file false "-comp-count +$count"
+ lipe_find_expect_file $facet $file false "-comp-count -$count"
+ lipe_find_expect_file $facet $file true "-comp-count -$((count + 1))"
+
+ lipe_find_expect_file $facet $file true "-expr 'comp_count == $count'"
+ lipe_find_expect_file $facet $file false "-expr 'comp_count != $count'"
+ lipe_find_expect_file $facet $file true "-expr 'comp_count >= $count'"
+ lipe_find_expect_file $facet $file true "-expr 'comp_count <= $count'"
+
+ lipe_find_expect_file $facet $file true "-component-count $count"
+ lipe_find_expect_file $facet $file false "! -component-count $count"
+ lipe_find_expect_file $facet $file false \
+ "-component-count $((count + 1))"
+ lipe_find_expect_file $facet $file true \
+ "! -component-count $((count + 1))"
+ lipe_find_expect_file $facet $file true \
+ "-component-count +$((count - 1))"
}
test_10() {
local td=$DIR/$tdir
local tf=$td/$tfile
+ local facet=${LIPE_MDS_FACET:-$(lipe_get_random_mds)}
+ local index=$(($(facet_number $facet) - 1))
local file
- mkdir $td || error "mkdir $td failed"
+ mkdir_on_mdt -i $index $td || error "$LFS mkdir '$td' failed"
create_lipe_find_files $tf
for file in $(ls $td); do
echo -e "\nTest $td/$file"
- test_10_sub $td/$file
+ test_10_sub $facet $td/$file
done
}
run_test 10 "lipe_find -comp-count and -component-count work"
test_11_sub() {
- local file="$1"
+ local facet="$1"
+ local file="$2"
local type
local layout
if [[ $type != S_IFREG ||
"$($LFS getstripe -L $file)" =~ "no stripe info" ]]; then
- lipe_find_expect_file $file false "-layout raid0"
- lipe_find_expect_file $file false "-layout mdt"
- lipe_find_expect_file $file false "-layout released"
+ lipe_find_expect_file $facet $file false "-layout raid0"
+ lipe_find_expect_file $facet $file false "-layout mdt"
+ lipe_find_expect_file $facet $file false "-layout released"
- lipe_find_expect_file $file false "! -layout raid0"
- lipe_find_expect_file $file false "! -layout mdt"
- lipe_find_expect_file $file false "! -layout released"
+ lipe_find_expect_file $facet $file false "! -layout raid0"
+ lipe_find_expect_file $facet $file false "! -layout mdt"
+ lipe_find_expect_file $facet $file false "! -layout released"
return
fi
layout=$($LFS getstripe -L $file)
[[ -n "$layout" ]] || error "cannot get file layout of '$file'"
- lipe_find_expect_file $file false "-layout released"
- lipe_find_expect_file $file true "! -layout released"
- lipe_find_expect_file $file true "-layout $layout"
- lipe_find_expect_file $file false "! -layout $layout"
- lipe_find_expect_file $file true "-layout $layout,$layout"
- lipe_find_expect_file $file false "-layout $layout,released"
- lipe_find_expect_file $file false "-layout raid0,mdt,released"
- lipe_find_expect_file $file true "-expr 'layout(\\\"$layout\\\")'"
- lipe_find_expect_file $file false \
+ lipe_find_expect_file $facet $file false "-layout released"
+ lipe_find_expect_file $facet $file true "! -layout released"
+ lipe_find_expect_file $facet $file true "-layout $layout"
+ lipe_find_expect_file $facet $file false "! -layout $layout"
+ lipe_find_expect_file $facet $file true "-layout $layout,$layout"
+ lipe_find_expect_file $facet $file false "-layout $layout,released"
+ lipe_find_expect_file $facet $file false "-layout raid0,mdt,released"
+ lipe_find_expect_file $facet $file true \
+ "-expr 'layout(\\\"$layout\\\")'"
+ lipe_find_expect_file $facet $file false \
"-expr 'layout(\\\"mdt,raid0,released\\\")'"
}
test_11() {
local td=$DIR/$tdir
local tf=$td/$tfile
+ local facet=${LIPE_MDS_FACET:-$(lipe_get_random_mds)}
+ local index=$(($(facet_number $facet) - 1))
local file
- mkdir $td || error "mkdir $td failed"
+ mkdir_on_mdt -i $index $td || error "$LFS mkdir '$td' failed"
create_lipe_find_files $tf
for file in $(ls $td); do
echo -e "\nTest $td/$file"
- test_11_sub $td/$file
+ test_11_sub $facet $td/$file
done
}
run_test 11 "lipe_find -layout works"
test_12_sub() {
- local file="$1"
+ local facet="$1"
+ local file="$2"
local uid
local user
user=$(stat -c %U $file)
[[ -n "$user" ]] || error "cannot get user name of owner for '$file'"
- lipe_find_expect_file $file true "-uid $uid"
- lipe_find_expect_file $file true "! ! -uid $uid"
- lipe_find_expect_file $file false "! -uid $uid"
- lipe_find_expect_file $file false "! -uid $((uid + 1)) ! -uid $uid"
- lipe_find_expect_file $file true "-expr 'uid == $uid'"
- lipe_find_expect_file $file false "-expr 'uid != $uid'"
- lipe_find_expect_file $file true \
+ lipe_find_expect_file $facet $file true "-uid $uid"
+ lipe_find_expect_file $facet $file true "! ! -uid $uid"
+ lipe_find_expect_file $facet $file false "! -uid $uid"
+ lipe_find_expect_file $facet $file false \
+ "! -uid $((uid + 1)) ! -uid $uid"
+ lipe_find_expect_file $facet $file true "-expr 'uid == $uid'"
+ lipe_find_expect_file $facet $file false "-expr 'uid != $uid'"
+ lipe_find_expect_file $facet $file true \
"-expr 'uid == user2id(\\\"$user\\\")'"
- lipe_find_expect_file $file true "-user $uid"
- lipe_find_expect_file $file true "! ! -user $uid"
- lipe_find_expect_file $file false "! -user $uid"
- lipe_find_expect_file $file false "! -user $((uid + 1)) ! -user $uid"
- lipe_find_expect_file $file true "-expr 'user(\\\"$uid\\\")'"
-
- lipe_find_expect_file $file true "-user $user"
- lipe_find_expect_file $file true "! ! -user $user"
- lipe_find_expect_file $file false "! -user $user"
- lipe_find_expect_file $file false "! -user bin ! -user $user"
- lipe_find_expect_file $file false "-nouser"
- lipe_find_expect_file $file false "-expr nouser"
- lipe_find_expect_file $file true "-expr 'user(\\\"$user\\\")'"
+ lipe_find_expect_file $facet $file true "-user $uid"
+ lipe_find_expect_file $facet $file true "! ! -user $uid"
+ lipe_find_expect_file $facet $file false "! -user $uid"
+ lipe_find_expect_file $facet $file false \
+ "! -user $((uid + 1)) ! -user $uid"
+ lipe_find_expect_file $facet $file true "-expr 'user(\\\"$uid\\\")'"
+
+ lipe_find_expect_file $facet $file true "-user $user"
+ lipe_find_expect_file $facet $file true "! ! -user $user"
+ lipe_find_expect_file $facet $file false "! -user $user"
+ lipe_find_expect_file $facet $file false "! -user bin ! -user $user"
+ lipe_find_expect_file $facet $file false "-nouser"
+ lipe_find_expect_file $facet $file false "-expr nouser"
+ lipe_find_expect_file $facet $file true "-expr 'user(\\\"$user\\\")'"
[[ $uid != $RUNAS_ID ]] || return 0
chown $RUNAS_ID $file || return 0
- lipe_find_expect_file $file false "-uid $uid"
- lipe_find_expect_file $file true "! -uid $uid"
- lipe_find_expect_file $file true "-uid $RUNAS_ID"
- lipe_find_expect_file $file false "! -uid $RUNAS_ID"
+ lipe_find_expect_file $facet $file false "-uid $uid"
+ lipe_find_expect_file $facet $file true "! -uid $uid"
+ lipe_find_expect_file $facet $file true "-uid $RUNAS_ID"
+ lipe_find_expect_file $facet $file false "! -uid $RUNAS_ID"
}
test_12() {
local td=$DIR/$tdir
local tf=$td/$tfile
+ local facet=${LIPE_MDS_FACET:-$(lipe_get_random_mds)}
+ local index=$(($(facet_number $facet) - 1))
local file
- mkdir $td || error "mkdir $td failed"
+ mkdir_on_mdt -i $index $td || error "$LFS mkdir '$td' failed"
create_lipe_find_files $tf
echo -e "\nTest $td"
- test_12_sub $td
+ test_12_sub $facet $td
for file in $(ls $td); do
echo -e "\nTest $td/$file"
- test_12_sub $td/$file
+ test_12_sub $facet $td/$file
done
}
run_test 12 "lipe_find -uid, -user and -nouser work"
test_13_sub() {
- local file="$1"
+ local facet="$1"
+ local file="$2"
local gid
local group
group=$(stat -c %G $file)
[[ -n "$group" ]] || error "cannot get group name of owner for '$file'"
- lipe_find_expect_file $file true "-gid $gid"
- lipe_find_expect_file $file true "! ! -gid $gid"
- lipe_find_expect_file $file false "! -gid $gid"
- lipe_find_expect_file $file false "! -gid $((gid + 1)) ! -gid $gid"
- lipe_find_expect_file $file true "-expr 'gid == $gid'"
- lipe_find_expect_file $file false "-expr 'gid != $gid'"
- lipe_find_expect_file $file true \
+ lipe_find_expect_file $facet $file true "-gid $gid"
+ lipe_find_expect_file $facet $file true "! ! -gid $gid"
+ lipe_find_expect_file $facet $file false "! -gid $gid"
+ lipe_find_expect_file $facet $file false \
+ "! -gid $((gid + 1)) ! -gid $gid"
+ lipe_find_expect_file $facet $file true "-expr 'gid == $gid'"
+ lipe_find_expect_file $facet $file false "-expr 'gid != $gid'"
+ lipe_find_expect_file $facet $file true \
"-expr 'gid == group2id(\\\"$group\\\")'"
- lipe_find_expect_file $file true "-group $gid"
- lipe_find_expect_file $file true "! ! -group $gid"
- lipe_find_expect_file $file false "! -group $gid"
- lipe_find_expect_file $file false "! -group $((gid + 1)) ! -group $gid"
- lipe_find_expect_file $file true "-expr 'group(\\\"$gid\\\")'"
-
- lipe_find_expect_file $file true "-group $group"
- lipe_find_expect_file $file true "! ! -group $group"
- lipe_find_expect_file $file false "! -group $group"
- lipe_find_expect_file $file false "! -group bin ! -group $group"
- lipe_find_expect_file $file false "-nogroup"
- lipe_find_expect_file $file false "-expr nogroup"
- lipe_find_expect_file $file true "-expr 'group(\\\"$group\\\")'"
+ lipe_find_expect_file $facet $file true "-group $gid"
+ lipe_find_expect_file $facet $file true "! ! -group $gid"
+ lipe_find_expect_file $facet $file false "! -group $gid"
+ lipe_find_expect_file $facet $file false \
+ "! -group $((gid + 1)) ! -group $gid"
+ lipe_find_expect_file $facet $file true "-expr 'group(\\\"$gid\\\")'"
+
+ lipe_find_expect_file $facet $file true "-group $group"
+ lipe_find_expect_file $facet $file true "! ! -group $group"
+ lipe_find_expect_file $facet $file false "! -group $group"
+ lipe_find_expect_file $facet $file false "! -group bin ! -group $group"
+ lipe_find_expect_file $facet $file false "-nogroup"
+ lipe_find_expect_file $facet $file false "-expr nogroup"
+ lipe_find_expect_file $facet $file true "-expr 'group(\\\"$group\\\")'"
[[ $gid != $RUNAS_GID ]] || return 0
chown :$RUNAS_GID $file || return 0
- lipe_find_expect_file $file false "-gid $gid"
- lipe_find_expect_file $file true "! -gid $gid"
- lipe_find_expect_file $file true "-gid $RUNAS_GID"
- lipe_find_expect_file $file false "! -gid $RUNAS_GID"
+ lipe_find_expect_file $facet $file false "-gid $gid"
+ lipe_find_expect_file $facet $file true "! -gid $gid"
+ lipe_find_expect_file $facet $file true "-gid $RUNAS_GID"
+ lipe_find_expect_file $facet $file false "! -gid $RUNAS_GID"
}
test_13() {
local td=$DIR/$tdir
local tf=$td/$tfile
+ local facet=${LIPE_MDS_FACET:-$(lipe_get_random_mds)}
+ local index=$(($(facet_number $facet) - 1))
local file
- mkdir $td || error "mkdir $td failed"
+ mkdir_on_mdt -i $index $td || error "$LFS mkdir '$td' failed"
create_lipe_find_files $tf
echo -e "\nTest $td"
- test_13_sub $td
+ test_13_sub $facet $td
for file in $(ls $td); do
echo -e "\nTest $td/$file"
- test_13_sub $td/$file
+ test_13_sub $facet $td/$file
done
}
run_test 13 "lipe_find -gid, -group and -nogroup work"
test_14_sub() {
- local file="$1"
+ local facet="$1"
+ local file="$2"
local uid
local gid
local xtime
[[ -n "$gid" ]] || error "cannot get group ID of owner for '$file'"
for xtime in atime ctime mtime; do
- lipe_find_expect_file $file true "-$xtime 0"
- lipe_find_expect_file $file false "! -$xtime 0"
- lipe_find_expect_file $file false "-$xtime +0"
- lipe_find_expect_file $file true "! -$xtime +0"
- lipe_find_expect_file $file false "-$xtime -0"
- lipe_find_expect_file $file true "! -$xtime -0"
- lipe_find_expect_file $file true "-$xtime -1"
- lipe_find_expect_file $file false "! -$xtime -1"
- lipe_find_expect_file $file true "-expr '$xtime > 0'"
- lipe_find_expect_file $file false "-expr '$xtime < 0'"
+ lipe_find_expect_file $facet $file true "-$xtime 0"
+ lipe_find_expect_file $facet $file false "! -$xtime 0"
+ lipe_find_expect_file $facet $file false "-$xtime +0"
+ lipe_find_expect_file $facet $file true "! -$xtime +0"
+ lipe_find_expect_file $facet $file false "-$xtime -0"
+ lipe_find_expect_file $facet $file true "! -$xtime -0"
+ lipe_find_expect_file $facet $file true "-$xtime -1"
+ lipe_find_expect_file $facet $file false "! -$xtime -1"
+ lipe_find_expect_file $facet $file true "-expr '$xtime > 0'"
+ lipe_find_expect_file $facet $file false "-expr '$xtime < 0'"
expr_cmd="-expr '($xtime > (sys_time - 1 * days) ||"
expr_cmd+=" uid == $((uid + 100))) && gid == $gid'"
- lipe_find_expect_file $file true "$expr_cmd"
+ lipe_find_expect_file $facet $file true "$expr_cmd"
done
}
test_14() {
local td=$DIR/$tdir
local tf=$td/$tfile
+ local facet=${LIPE_MDS_FACET:-$(lipe_get_random_mds)}
+ local index=$(($(facet_number $facet) - 1))
local file
- mkdir $td || error "mkdir $td failed"
+ mkdir_on_mdt -i $index $td || error "$LFS mkdir '$td' failed"
create_lipe_find_files $tf
echo -e "\nTest $td"
- test_14_sub $td
+ test_14_sub $facet $td
for file in $(ls $td); do
echo -e "\nTest $td/$file"
- test_14_sub $td/$file
+ test_14_sub $facet $td/$file
done
}
run_test 14 "lipe_find -atime, -ctime and -mtime work"
test_15_sub() {
- local file="$1"
+ local facet="$1"
+ local file="$2"
local xmin
for xmin in amin cmin mmin; do
- lipe_find_expect_file $file false "-$xmin +600"
- lipe_find_expect_file $file true "! -$xmin +600"
- lipe_find_expect_file $file false "-$xmin -0"
- lipe_find_expect_file $file true "! -$xmin -0"
- lipe_find_expect_file $file true "-$xmin -600"
- lipe_find_expect_file $file false "! -$xmin -600"
+ lipe_find_expect_file $facet $file false "-$xmin +600"
+ lipe_find_expect_file $facet $file true "! -$xmin +600"
+ lipe_find_expect_file $facet $file false "-$xmin -0"
+ lipe_find_expect_file $facet $file true "! -$xmin -0"
+ lipe_find_expect_file $facet $file true "-$xmin -600"
+ lipe_find_expect_file $facet $file false "! -$xmin -600"
done
}
test_15() {
local td=$DIR/$tdir
local tf=$td/$tfile
+ local facet=${LIPE_MDS_FACET:-$(lipe_get_random_mds)}
+ local index=$(($(facet_number $facet) - 1))
local file
- mkdir $td || error "mkdir $td failed"
+ mkdir_on_mdt -i $index $td || error "$LFS mkdir '$td' failed"
create_lipe_find_files $tf
echo -e "\nTest $td"
- test_15_sub $td
+ test_15_sub $facet $td
for file in $(ls $td); do
echo -e "\nTest $td/$file"
- test_15_sub $td/$file
+ test_15_sub $facet $td/$file
done
}
run_test 15 "lipe_find -amin, -cmin and -mmin work"
test_16_sub() {
- local file="$1"
+ local facet="$1"
+ local file="$2"
- lipe_find_expect_file $file false "-used +0"
- lipe_find_expect_file $file false "-used 1"
- lipe_find_expect_file $file true "-used -1"
- lipe_find_expect_file $file false "-used +1"
+ lipe_find_expect_file $facet $file false "-used +0"
+ lipe_find_expect_file $facet $file false "-used 1"
+ lipe_find_expect_file $facet $file true "-used -1"
+ lipe_find_expect_file $facet $file false "-used +1"
}
test_16() {
local td=$DIR/$tdir
local tf=$td/$tfile
+ local facet=${LIPE_MDS_FACET:-$(lipe_get_random_mds)}
+ local index=$(($(facet_number $facet) - 1))
local file
- mkdir $td || error "mkdir $td failed"
+ mkdir_on_mdt -i $index $td || error "$LFS mkdir '$td' failed"
create_lipe_find_files $tf
echo -e "\nTest $td"
- test_16_sub $td
+ test_16_sub $facet $td
for file in $(ls $td); do
echo -e "\nTest $td/$file"
- test_16_sub $td/$file
+ test_16_sub $facet $td/$file
done
}
run_test 16 "lipe_find -used works"
test_17_sub() {
- local file="$1"
+ local facet="$1"
+ local file="$2"
local type
type=$(convert_file_type constant "$(stat -c %F $file)")
[[ -n "$type" ]] || error "cannot get type of '$file'"
if [[ $type != S_IFREG && $type != S_IFDIR ]]; then
- lipe_find_expect_file $file false "-empty"
- lipe_find_expect_file $file true "! -empty"
+ lipe_find_expect_file $facet $file false "-empty"
+ lipe_find_expect_file $facet $file true "! -empty"
return
fi
if [[ $type = S_IFDIR ]]; then
if [[ -z "$(ls $file)" ]]; then
- lipe_find_expect_file $file true "-empty"
- lipe_find_expect_file $file false "! -empty"
+ lipe_find_expect_file $facet $file true "-empty"
+ lipe_find_expect_file $facet $file false "! -empty"
else
- lipe_find_expect_file $file false "-empty"
- lipe_find_expect_file $file true "! -empty"
+ lipe_find_expect_file $facet $file false "-empty"
+ lipe_find_expect_file $facet $file true "! -empty"
fi
return
fi
# S_IFREG
if (( $(stat -c %s $file) == 0 )); then
- lipe_find_expect_file $file true "-empty"
- lipe_find_expect_file $file false "! -empty"
+ lipe_find_expect_file $facet $file true "-empty"
+ lipe_find_expect_file $facet $file false "! -empty"
echo foo > $file || error "echo foo > $file failed"
sync; sleep 5; sync
fi
- lipe_find_expect_file $file false "-empty"
- lipe_find_expect_file $file true "! -empty"
- lipe_find_expect_file $file false "-expr empty"
+ lipe_find_expect_file $facet $file false "-empty"
+ lipe_find_expect_file $facet $file true "! -empty"
+ lipe_find_expect_file $facet $file false "-expr empty"
}
test_17() {
local td=$DIR/$tdir
local tf=$td/$tfile
+ local facet=${LIPE_MDS_FACET:-$(lipe_get_random_mds)}
+ local index=$(($(facet_number $facet) - 1))
local file
- mkdir $td || error "mkdir $td failed"
- mkdir $td-1 || error "mkdir $td-1 failed"
- create_lipe_find_files $tf
-
local saved_LIPE_FIND_USE_MOUNT=$LIPE_FIND_USE_MOUNT
LIPE_FIND_USE_MOUNT=true
stack_trap "LIPE_FIND_USE_MOUNT=$saved_LIPE_FIND_USE_MOUNT"
+ mkdir_on_mdt -i $index $td || error "$LFS mkdir '$td' failed"
+ mkdir_on_mdt -i $index $td-1 || error "$LFS mkdir '$td-1' failed"
+
+ create_lipe_find_files $tf
+
echo -e "\nTest $td"
- test_17_sub $td
+ test_17_sub $facet $td
echo -e "\nTest $td-1"
- test_17_sub $td-1
+ test_17_sub $facet $td-1
for file in $(ls $td); do
echo -e "\nTest $td/$file"
- test_17_sub $td/$file
+ test_17_sub $facet $td/$file
done
}
run_test 17 "lipe_find -empty works"
test_18_sub() {
- local file="$1"
+ local facet="$1"
+ local file="$2"
local type
type=$(convert_file_type constant "$(stat -c %F $file)")
[[ -n "$type" ]] || error "cannot get type of '$file'"
if [[ $type != S_IFDIR ]]; then
- lipe_find_expect_file $file true "-entries 0"
- lipe_find_expect_file $file false "! -entries 0"
- lipe_find_expect_file $file true "-expr 'entries == 0'"
- lipe_find_expect_file $file false "-expr 'entries != 0'"
+ lipe_find_expect_file $facet $file true "-entries 0"
+ lipe_find_expect_file $facet $file false "! -entries 0"
+ lipe_find_expect_file $facet $file true "-expr 'entries == 0'"
+ lipe_find_expect_file $facet $file false "-expr 'entries != 0'"
return
fi
if [[ -z "$(ls $file)" ]]; then
- lipe_find_expect_file $file true "-entries 0"
- lipe_find_expect_file $file false "! -entries 0"
- lipe_find_expect_file $file false "-entries +0"
- lipe_find_expect_file $file true "! -entries +0"
- lipe_find_expect_file $file false "-entries -0"
- lipe_find_expect_file $file true "! -entries -0"
+ lipe_find_expect_file $facet $file true "-entries 0"
+ lipe_find_expect_file $facet $file false "! -entries 0"
+ lipe_find_expect_file $facet $file false "-entries +0"
+ lipe_find_expect_file $facet $file true "! -entries +0"
+ lipe_find_expect_file $facet $file false "-entries -0"
+ lipe_find_expect_file $facet $file true "! -entries -0"
else
- lipe_find_expect_file $file false "-entries 0"
- lipe_find_expect_file $file true "! -entries 0"
- lipe_find_expect_file $file true "-entries +0"
- lipe_find_expect_file $file false "! -entries +0"
- lipe_find_expect_file $file false "-entries -0"
- lipe_find_expect_file $file true "! -entries -0"
+ lipe_find_expect_file $facet $file false "-entries 0"
+ lipe_find_expect_file $facet $file true "! -entries 0"
+ lipe_find_expect_file $facet $file true "-entries +0"
+ lipe_find_expect_file $facet $file false "! -entries +0"
+ lipe_find_expect_file $facet $file false "-entries -0"
+ lipe_find_expect_file $facet $file true "! -entries -0"
fi
}
test_18() {
local td=$DIR/$tdir
local tf=$td/$tfile
+ local facet=${LIPE_MDS_FACET:-$(lipe_get_random_mds)}
+ local index=$(($(facet_number $facet) - 1))
local file
- mkdir $td || error "mkdir $td failed"
- mkdir $td-1 || error "mkdir $td-1 failed"
+ mkdir_on_mdt -i $index $td || error "$LFS mkdir '$td' failed"
+ mkdir_on_mdt -i $index $td-1 || error "$LFS mkdir '$td-1' failed"
+
create_lipe_find_files $tf
echo -e "\nTest $td"
- test_18_sub $td
+ test_18_sub $facet $td
echo -e "\nTest $td-1"
- test_18_sub $td-1
+ test_18_sub $facet $td-1
for file in $(ls $td); do
echo -e "\nTest $td/$file"
- test_18_sub $td/$file
+ test_18_sub $facet $td/$file
done
}
run_test 18 "lipe_find -entries works"
test_19_sub() {
- local file="$1"
+ local facet="$1"
+ local file="$2"
local nlink
nlink=$(stat -c %h $file)
[[ -n "$nlink" ]] || error "cannot get number of hard links for '$file'"
- lipe_find_expect_file $file true "-links $nlink"
- lipe_find_expect_file $file false "! -links $nlink"
- lipe_find_expect_file $file false "-links $((nlink + 1))"
- lipe_find_expect_file $file false "-links $((nlink - 1))"
- lipe_find_expect_file $file true "-expr 'nlink == $nlink'"
- lipe_find_expect_file $file false "-expr 'nlink != $nlink'"
- lipe_find_expect_file $file true "-expr 'nlink >= $nlink'"
- lipe_find_expect_file $file true "-expr 'nlink <= $nlink'"
+ lipe_find_expect_file $facet $file true "-links $nlink"
+ lipe_find_expect_file $facet $file false "! -links $nlink"
+ lipe_find_expect_file $facet $file false "-links $((nlink + 1))"
+ lipe_find_expect_file $facet $file false "-links $((nlink - 1))"
+ lipe_find_expect_file $facet $file true "-expr 'nlink == $nlink'"
+ lipe_find_expect_file $facet $file false "-expr 'nlink != $nlink'"
+ lipe_find_expect_file $facet $file true "-expr 'nlink >= $nlink'"
+ lipe_find_expect_file $facet $file true "-expr 'nlink <= $nlink'"
}
test_19() {
local td=$DIR/$tdir
local tf=$td/$tfile
+ local facet=${LIPE_MDS_FACET:-$(lipe_get_random_mds)}
+ local index=$(($(facet_number $facet) - 1))
local file
- mkdir $td || error "mkdir $td failed"
+ mkdir_on_mdt -i $index $td || error "$LFS mkdir '$td' failed"
create_lipe_find_files $tf
echo -e "\nTest $td"
- test_19_sub $td
+ test_19_sub $facet $td
for file in $(ls $td); do
echo -e "\nTest $td/$file"
- test_19_sub $td/$file
+ test_19_sub $facet $td/$file
done
}
run_test 19 "lipe_find -links works"
test_20_sub() {
- local file="$1"
+ local facet="$1"
+ local file="$2"
local type
local cmd
echo $cmd
$cmd || error "setfattr $file failed"
- lipe_find_expect_file $file true "-xattr 'user.xattr_name=*'"
- lipe_find_expect_file $file true "-xattr '*=xattr_value'"
- lipe_find_expect_file $file true "-xattr 'user.xattr_name=xattr_value'"
- lipe_find_expect_file $file true "-xattr 'user.xattr_name*=xattr_value'"
- lipe_find_expect_file $file true "-xattr 'user.*=xattr_value'"
- lipe_find_expect_file $file true "-xattr 'user.*=*_value'"
- lipe_find_expect_file $file true "-xattr '*=*'"
- lipe_find_expect_file $file true "-xattr 'trusted.lma=*'"
- lipe_find_expect_file $file false "-xattr 'invalid_name=*'"
- lipe_find_expect_file $file false "-xattr '*=invalid_value'"
- lipe_find_expect_file $file true "-expr \
+ lipe_find_expect_file $facet $file true "-xattr 'user.xattr_name=*'"
+ lipe_find_expect_file $facet $file true "-xattr '*=xattr_value'"
+ lipe_find_expect_file $facet $file true \
+ "-xattr 'user.xattr_name=xattr_value'"
+ lipe_find_expect_file $facet $file true \
+ "-xattr 'user.xattr_name*=xattr_value'"
+ lipe_find_expect_file $facet $file true "-xattr 'user.*=xattr_value'"
+ lipe_find_expect_file $facet $file true "-xattr 'user.*=*_value'"
+ lipe_find_expect_file $facet $file true "-xattr '*=*'"
+ lipe_find_expect_file $facet $file true "-xattr 'trusted.lma=*'"
+ lipe_find_expect_file $facet $file false "-xattr 'invalid_name=*'"
+ lipe_find_expect_file $facet $file false "-xattr '*=invalid_value'"
+ lipe_find_expect_file $facet $file true "-expr \
'xattr_match(\\\"user.xattr_name\\\", \\\"xattr_value\\\")'"
}
local td=$DIR/$tdir
local tf=$td/$tfile
+ local facet=${LIPE_MDS_FACET:-$(lipe_get_random_mds)}
+ local index=$(($(facet_number $facet) - 1))
local file
- mkdir $td || error "mkdir $td failed"
+ mkdir_on_mdt -i $index $td || error "$LFS mkdir '$td' failed"
create_lipe_find_files $tf
echo -e "\nTest $td"
- test_20_sub $td
+ test_20_sub $facet $td
for file in $(ls $td); do
echo -e "\nTest $td/$file"
- test_20_sub $td/$file
+ test_20_sub $facet $td/$file
done
}
run_test 20 "lipe_find -xattr works"
test_21_sub() {
- local file="$1"
+ local facet="$1"
+ local file="$2"
local perm
perm=$(stat -c %a $file)
[[ -n "$perm" ]] || error "cannot get access rights for '$file'"
- lipe_find_expect_file $file true "-perm -0"
- lipe_find_expect_file $file true "-perm /0"
+ lipe_find_expect_file $facet $file true "-perm -0"
+ lipe_find_expect_file $facet $file true "-perm /0"
- lipe_find_expect_file $file true "-perm $perm"
- lipe_find_expect_file $file true "-perm -$perm"
- lipe_find_expect_file $file true "-perm /$perm"
+ lipe_find_expect_file $facet $file true "-perm $perm"
+ lipe_find_expect_file $facet $file true "-perm -$perm"
+ lipe_find_expect_file $facet $file true "-perm /$perm"
chmod 666 $file || return 0
- lipe_find_expect_file $file false "-perm 777"
- lipe_find_expect_file $file false "-perm -777"
- lipe_find_expect_file $file true "-perm /777"
+ lipe_find_expect_file $facet $file false "-perm 777"
+ lipe_find_expect_file $facet $file false "-perm -777"
+ lipe_find_expect_file $facet $file true "-perm /777"
- lipe_find_expect_file $file false "-expr 'perm_equal(444)'"
- lipe_find_expect_file $file true "-expr 'perm_at_least(444)'"
- lipe_find_expect_file $file true "-expr 'perm_any(444)'"
+ lipe_find_expect_file $facet $file false "-expr 'perm_equal(444)'"
+ lipe_find_expect_file $facet $file true "-expr 'perm_at_least(444)'"
+ lipe_find_expect_file $facet $file true "-expr 'perm_any(444)'"
}
test_21() {
local td=$DIR/$tdir
local tf=$td/$tfile
+ local facet=${LIPE_MDS_FACET:-$(lipe_get_random_mds)}
+ local index=$(($(facet_number $facet) - 1))
local file
- mkdir $td || error "mkdir $td failed"
+ mkdir_on_mdt -i $index $td || error "$LFS mkdir '$td' failed"
create_lipe_find_files $tf
echo -e "\nTest $td"
- test_21_sub $td
+ test_21_sub $facet $td
for file in $(ls $td); do
echo -e "\nTest $td/$file"
- test_21_sub $td/$file
+ test_21_sub $facet $td/$file
done
}
run_test 21 "lipe_find -perm works"
test_22_sub() {
- local file="$1"
-
- lipe_find_expect_file $file true "-projid 0"
- lipe_find_expect_file $file false "! -projid 0"
- lipe_find_expect_file $file true "-expr 'projid == 0'"
- lipe_find_expect_file $file true "-expr '== projid 0'"
- lipe_find_expect_file $file false "-projid +0"
- lipe_find_expect_file $file true "-projid -1"
+ local facet="$1"
+ local file="$2"
+
+ lipe_find_expect_file $facet $file true "-projid 0"
+ lipe_find_expect_file $facet $file false "! -projid 0"
+ lipe_find_expect_file $facet $file true "-expr 'projid == 0'"
+ lipe_find_expect_file $facet $file true "-expr '== projid 0'"
+ lipe_find_expect_file $facet $file false "-projid +0"
+ lipe_find_expect_file $facet $file true "-projid -1"
}
test_22() {
local td=$DIR/$tdir
local tf=$td/$tfile
+ local facet=${LIPE_MDS_FACET:-$(lipe_get_random_mds)}
+ local index=$(($(facet_number $facet) - 1))
local file
- mkdir $td || error "mkdir $td failed"
- create_lipe_find_files $tf
-
local saved_LIPE_FIND_USE_MOUNT=$LIPE_FIND_USE_MOUNT
LIPE_FIND_USE_MOUNT=true
stack_trap "LIPE_FIND_USE_MOUNT=$saved_LIPE_FIND_USE_MOUNT"
+ mkdir_on_mdt -i $index $td || error "$LFS mkdir '$td' failed"
+ create_lipe_find_files $tf
+
echo -e "\nTest $td"
- test_22_sub $td
+ test_22_sub $facet $td
for file in $(ls $td); do
echo -e "\nTest $td/$file"
- test_22_sub $td/$file
+ test_22_sub $facet $td/$file
done
}
run_test 22 "lipe_find -projid works"
test_23_sub() {
- local file="$1"
+ local facet="$1"
+ local file="$2"
local size
local f_size
local b_num
for opt in size blocks; do
[[ $opt = size ]] && size=$f_size || size=$b_size
- lipe_find_expect_file $file true "-$opt ${size}c"
- lipe_find_expect_file $file false "! -$opt ${size}c"
- lipe_find_expect_file $file false "-$opt +${size}c"
- lipe_find_expect_file $file false "-$opt -${size}c"
+ lipe_find_expect_file $facet $file true "-$opt ${size}c"
+ lipe_find_expect_file $facet $file false "! -$opt ${size}c"
+ lipe_find_expect_file $facet $file false "-$opt +${size}c"
+ lipe_find_expect_file $facet $file false "-$opt -${size}c"
- lipe_find_expect_file $file false "-$opt $((size + 1))c"
- lipe_find_expect_file $file true "! -$opt $((size + 1))c"
- lipe_find_expect_file $file false "-$opt +$((size + 1))c"
- lipe_find_expect_file $file true "-$opt -$((size + 1))c"
+ lipe_find_expect_file $facet $file false "-$opt $((size + 1))c"
+ lipe_find_expect_file $facet $file true "! -$opt $((size + 1))c"
+ lipe_find_expect_file $facet $file false "-$opt +$((size + 1))c"
+ lipe_find_expect_file $facet $file true "-$opt -$((size + 1))c"
(( size != 0 )) || continue
- lipe_find_expect_file $file true "-$opt $((size / 512))b"
- lipe_find_expect_file $file true "-$opt $((size / 1024))"
- lipe_find_expect_file $file true "-$opt $((size / 1048576))M"
+ lipe_find_expect_file $facet $file true "-$opt $((size / 512))b"
+ lipe_find_expect_file $facet $file true "-$opt $((size / 1024))"
+ lipe_find_expect_file $facet $file true \
+ "-$opt $((size / 1048576))M"
- lipe_find_expect_file $file true "-expr '$opt == $size'"
- lipe_find_expect_file $file true "-expr '$opt >= $size'"
- lipe_find_expect_file $file true "-expr '$opt <= $size'"
- lipe_find_expect_file $file false "-expr '$opt != $size'"
+ lipe_find_expect_file $facet $file true "-expr '$opt == $size'"
+ lipe_find_expect_file $facet $file true "-expr '$opt >= $size'"
+ lipe_find_expect_file $facet $file true "-expr '$opt <= $size'"
+ lipe_find_expect_file $facet $file false "-expr '$opt != $size'"
- lipe_find_expect_file $file false "-$opt $((size - 1))c"
- lipe_find_expect_file $file true "! -$opt $((size - 1))c"
- lipe_find_expect_file $file true "-$opt +$((size - 1))c"
- lipe_find_expect_file $file false "-$opt -$((size - 1))c"
+ lipe_find_expect_file $facet $file false "-$opt $((size - 1))c"
+ lipe_find_expect_file $facet $file true "! -$opt $((size - 1))c"
+ lipe_find_expect_file $facet $file true "-$opt +$((size - 1))c"
+ lipe_find_expect_file $facet $file false "-$opt -$((size - 1))c"
done
}
test_23() {
local td=$DIR/$tdir
local tf=$td/$tfile
+ local facet=${LIPE_MDS_FACET:-$(lipe_get_random_mds)}
+ local index=$(($(facet_number $facet) - 1))
local file
- mkdir $td || error "mkdir $td failed"
- create_lipe_find_files $tf
-
local saved_LIPE_FIND_USE_MOUNT=$LIPE_FIND_USE_MOUNT
LIPE_FIND_USE_MOUNT=true
stack_trap "LIPE_FIND_USE_MOUNT=$saved_LIPE_FIND_USE_MOUNT"
+ mkdir_on_mdt -i $index $td || error "$LFS mkdir '$td' failed"
+ create_lipe_find_files $tf
+
echo -e "\nTest $td"
- test_23_sub $td
+ test_23_sub $facet $td
for file in $(ls $td); do
echo -e "\nTest $td/$file"
- test_23_sub $td/$file
+ test_23_sub $facet $td/$file
done
}
run_test 23 "lipe_find -size and -blocks work"
}
test_200() {
- local file=$DIR/$tdir/$tfile
+ local td=$DIR/$tdir
+ local file=$td/$tfile
+ local facet=${LIPE_MDS_FACET:-$(lipe_get_random_mds)}
+ local index=$(($(facet_number $facet) - 1))
local fid
local attrs
local size1
local flags1
local flags2
- mkdir -p $DIR/$tdir || error "mkdir $DIR/$tdir failed"
+ mkdir_on_mdt -i $index $td || error "$LFS mkdir '$td' failed"
echo XXX > $file
fid=$($LFS path2fid $file)
size1=$($LFS getsom -s $file)
blocks1=$($LFS getsom -b $file)
- attrs=$(do_lipe_scan2_facet mds1 --print-json=fid,som |
+ attrs=$(do_lipe_scan2_facet $facet --print-json=fid,som |
jq --arg FID "$fid" 'select(.fid == $FID)')
echo "attrs = '$attrs'" >&2
((flags1 == flags2)) || error "flags1 ($flags1) != flags2 ($flags2)"
((size1 == size2)) || error "size1 ($size1) != size2 ($size2)"
- ((blocks1 == blocks2)) || error "blocks1 ($blocks1) != blocks2 ($blocks2)"
+ ((blocks1 == blocks2)) ||
+ error "blocks1 ($blocks1) != blocks2 ($blocks2)"
}
run_test 200 "lipe_scan2 SoM support"
test_201() {
- local file0=$DIR/$tdir/$tfile
- local file1=$DIR/$tdir.2/$tfile.2
+ local td0=$DIR/$tdir
+ local td1=$DIR/$tdir.1
+ local file0=$td0/$tfile
+ local file1=$td1/$tfile.1
local fid
local -a path
local path_count
+ local facet=${LIPE_MDS_FACET:-$(lipe_get_random_mds)}
+ local index=$(($(facet_number $facet) - 1))
+
+ mkdir_on_mdt -i $index $td0 || error "$LFS mkdir '$td0' failed"
+ mkdir_on_mdt -i $index $td1 || error "$LFS mkdir '$td1' failed"
- mkdir -p $DIR/$tdir $DIR/$tdir.2 || error "mkdir $DIR/$tdir failed"
echo XXX > $file0
fid=$($LFS path2fid $file0)
ln $file0 $file1
sync
cancel_lru_locks mdc
- attrs=$(do_lipe_scan2_facet mds1 --client-mount="$MOUNT" --print-json=fid,paths |
+ attrs=$(do_lipe_scan2_facet $facet --client-mount="$MOUNT" \
+ --print-json=fid,paths |
jq --arg FID "$fid" 'select(.fid == $FID)')
echo "attrs = '$attrs'" >&2
((path_count == 2)) || error "path_count ($path_count) != 2"
path=( $(jq --null-input --raw-output "$attrs.paths[]") )
- [[ "${path[0]}" == "$tdir/$tfile" ]] || error "path0 '${path[0]}' != '$tdir/$tfile'"
- [[ "${path[1]}" == "$tdir.2/$tfile.2" ]] || error "path1 '${path[1]}' != '$tdir.2/$tfile.2'"
+ [[ "${path[0]}" == "$tdir/$tfile" ]] ||
+ error "path0 '${path[0]}' != '$tdir/$tfile'"
+ [[ "${path[1]}" == "$tdir.1/$tfile.1" ]] ||
+ error "path1 '${path[1]}' != '$tdir.1/$tfile.1'"
}
run_test 201 "lipe_scan2 paths support"