⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sanity.sh

📁 lustre 1.6.5 source code
💻 SH
📖 第 1 页 / 共 5 页
字号:
	mkdir -p $DIR/d17	ln -s foo $DIR/d17/f17d	touch $DIR/d17/f17d || error "creating to new symlink"}run_test 17d "symlinks: create dangling ========================"test_17e() {	mkdir -p $DIR/$tdir	local foo=$DIR/$tdir/$tfile	ln -s $foo $foo || error "create symlink failed"	ls -l $foo || error "ls -l failed"	ls $foo && error "ls not failed" || true}run_test 17e "symlinks: create recursive symlink (should return error) ===="test_18() {	touch $DIR/f	ls $DIR || error}run_test 18 "touch .../f ; ls ... =============================="test_19a() {	touch $DIR/f19	ls -l $DIR	rm $DIR/f19	$CHECKSTAT -a $DIR/f19 || error}run_test 19a "touch .../f19 ; ls -l ... ; rm .../f19 ==========="test_19b() {	ls -l $DIR/f19 && error || true}run_test 19b "ls -l .../f19 (should return error) =============="test_19c() {	[ $RUNAS_ID -eq $UID ] && skip "RUNAS_ID = UID = $UID -- skipping" && return	$RUNAS touch $DIR/f19 && error || true}run_test 19c "$RUNAS touch .../f19 (should return error) =="test_19d() {	cat $DIR/f19 && error || true}run_test 19d "cat .../f19 (should return error) =============="test_20() {	touch $DIR/f	rm $DIR/f	log "1 done"	touch $DIR/f	rm $DIR/f	log "2 done"	touch $DIR/f	rm $DIR/f	log "3 done"	$CHECKSTAT -a $DIR/f || error}run_test 20 "touch .../f ; ls -l ... ==========================="test_21() {	mkdir $DIR/d21	[ -f $DIR/d21/dangle ] && rm -f $DIR/d21/dangle	ln -s dangle $DIR/d21/link	echo foo >> $DIR/d21/link	cat $DIR/d21/dangle	$CHECKSTAT -t link $DIR/d21/link || error	$CHECKSTAT -f -t file $DIR/d21/link || error}run_test 21 "write to dangling link ============================"test_22() {	WDIR=$DIR/$tdir	chown $RUNAS_ID $WDIR	(cd $WDIR || error "cd $WDIR failed";	$RUNAS tar cf - /etc/hosts /etc/sysconfig/network | \	$RUNAS tar xf -)	ls -lR $WDIR/etc || error "ls -lR $WDIR/etc failed"	$CHECKSTAT -t dir $WDIR/etc || error "checkstat -t dir failed"	$CHECKSTAT -u \#$RUNAS_ID $WDIR/etc || error "checkstat -u failed"}run_test 22 "unpack tar archive as non-root user ==============="test_23() {	mkdir $DIR/d23	$TOEXCL $DIR/d23/f23	$TOEXCL -e $DIR/d23/f23 || error}run_test 23 "O_CREAT|O_EXCL in subdir =========================="test_24a() {	echo '== rename sanity =============================================='	echo '-- same directory rename'	mkdir $DIR/R1	touch $DIR/R1/f	mv $DIR/R1/f $DIR/R1/g	$CHECKSTAT -t file $DIR/R1/g || error}run_test 24a "touch .../R1/f; rename .../R1/f .../R1/g ========="test_24b() {	mkdir $DIR/R2	touch $DIR/R2/{f,g}	mv $DIR/R2/f $DIR/R2/g	$CHECKSTAT -a $DIR/R2/f || error	$CHECKSTAT -t file $DIR/R2/g || error}run_test 24b "touch .../R2/{f,g}; rename .../R2/f .../R2/g ====="test_24c() {	mkdir $DIR/R3	mkdir $DIR/R3/f	mv $DIR/R3/f $DIR/R3/g	$CHECKSTAT -a $DIR/R3/f || error	$CHECKSTAT -t dir $DIR/R3/g || error}run_test 24c "mkdir .../R3/f; rename .../R3/f .../R3/g ========="test_24d() {	mkdir $DIR/R4	mkdir $DIR/R4/{f,g}	mrename $DIR/R4/f $DIR/R4/g	$CHECKSTAT -a $DIR/R4/f || error	$CHECKSTAT -t dir $DIR/R4/g || error}run_test 24d "mkdir .../R4/{f,g}; rename .../R4/f .../R4/g ====="test_24e() {	echo '-- cross directory renames --' 	mkdir $DIR/R5{a,b}	touch $DIR/R5a/f	mv $DIR/R5a/f $DIR/R5b/g	$CHECKSTAT -a $DIR/R5a/f || error	$CHECKSTAT -t file $DIR/R5b/g || error}run_test 24e "touch .../R5a/f; rename .../R5a/f .../R5b/g ======"test_24f() {	mkdir $DIR/R6{a,b}	touch $DIR/R6a/f $DIR/R6b/g	mv $DIR/R6a/f $DIR/R6b/g	$CHECKSTAT -a $DIR/R6a/f || error	$CHECKSTAT -t file $DIR/R6b/g || error}run_test 24f "touch .../R6a/f R6b/g; mv .../R6a/f .../R6b/g ===="test_24g() {	mkdir $DIR/R7{a,b}	mkdir $DIR/R7a/d	mv $DIR/R7a/d $DIR/R7b/e	$CHECKSTAT -a $DIR/R7a/d || error	$CHECKSTAT -t dir $DIR/R7b/e || error}run_test 24g "mkdir .../R7{a,b}/d; mv .../R7a/d .../R5b/e ======"test_24h() {	mkdir $DIR/R8{a,b}	mkdir $DIR/R8a/d $DIR/R8b/e	mrename $DIR/R8a/d $DIR/R8b/e	$CHECKSTAT -a $DIR/R8a/d || error	$CHECKSTAT -t dir $DIR/R8b/e || error}run_test 24h "mkdir .../R8{a,b}/{d,e}; rename .../R8a/d .../R8b/e"test_24i() {	echo "-- rename error cases"	mkdir $DIR/R9	mkdir $DIR/R9/a	touch $DIR/R9/f	mrename $DIR/R9/f $DIR/R9/a	$CHECKSTAT -t file $DIR/R9/f || error	$CHECKSTAT -t dir  $DIR/R9/a || error	$CHECKSTAT -a file $DIR/R9/a/f || error}run_test 24i "rename file to dir error: touch f ; mkdir a ; rename f a"test_24j() {	mkdir $DIR/R10	mrename $DIR/R10/f $DIR/R10/g	$CHECKSTAT -t dir $DIR/R10 || error	$CHECKSTAT -a $DIR/R10/f || error	$CHECKSTAT -a $DIR/R10/g || error}run_test 24j "source does not exist ============================" test_24k() {	mkdir $DIR/R11a $DIR/R11a/d	touch $DIR/R11a/f	mv $DIR/R11a/f $DIR/R11a/d	$CHECKSTAT -a $DIR/R11a/f || error	$CHECKSTAT -t file $DIR/R11a/d/f || error}run_test 24k "touch .../R11a/f; mv .../R11a/f .../R11a/d ======="# bug 2429 - rename foo foo foo creates invalid filetest_24l() {	f="$DIR/f24l"	multiop $f OcNs || error}run_test 24l "Renaming a file to itself ========================"test_24m() {	f="$DIR/f24m"	multiop $f OcLN ${f}2 ${f}2 || error "link ${f}2 ${f}2 failed"	# on ext3 this does not remove either the source or target files	# though the "expected" operation would be to remove the source	$CHECKSTAT -t file ${f} || error "${f} missing"	$CHECKSTAT -t file ${f}2 || error "${f}2 missing"}run_test 24m "Renaming a file to a hard link to itself ========="test_24n() {    f="$DIR/f24n"    # this stats the old file after it was renamed, so it should fail    touch ${f}    $CHECKSTAT ${f}    mv ${f} ${f}.rename    $CHECKSTAT ${f}.rename    $CHECKSTAT -a ${f}}run_test 24n "Statting the old file after renaming (Posix rename 2)"test_24o() {	check_kernel_version 37 || return 0	mkdir -p $DIR/d24o	rename_many -s random -v -n 10 $DIR/d24o}run_test 24o "rename of files during htree split ==============="test_24p() {	mkdir $DIR/R12{a,b}	DIRINO=`ls -lid $DIR/R12a | awk '{ print $1 }'`	mrename $DIR/R12a $DIR/R12b	$CHECKSTAT -a $DIR/R12a || error	$CHECKSTAT -t dir $DIR/R12b || error	DIRINO2=`ls -lid $DIR/R12b | awk '{ print $1 }'`	[ "$DIRINO" = "$DIRINO2" ] || error "R12a $DIRINO != R12b $DIRINO2"}run_test 24p "mkdir .../R12{a,b}; rename .../R12a .../R12b"test_24q() {	mkdir $DIR/R13{a,b}	DIRINO=`ls -lid $DIR/R13a | awk '{ print $1 }'`	multiop_bg_pause $DIR/R13b D_c || return 1	MULTIPID=$!	mrename $DIR/R13a $DIR/R13b	$CHECKSTAT -a $DIR/R13a || error	$CHECKSTAT -t dir $DIR/R13b || error	DIRINO2=`ls -lid $DIR/R13b | awk '{ print $1 }'`	[ "$DIRINO" = "$DIRINO2" ] || error "R13a $DIRINO != R13b $DIRINO2"	kill -USR1 $MULTIPID	wait $MULTIPID || error "multiop close failed"}run_test 24q "mkdir .../R13{a,b}; open R13b rename R13a R13b ==="test_24r() { #bug 3789	mkdir $DIR/R14a $DIR/R14a/b	mrename $DIR/R14a $DIR/R14a/b && error "rename to subdir worked!"	$CHECKSTAT -t dir $DIR/R14a || error "$DIR/R14a missing"	$CHECKSTAT -t dir $DIR/R14a/b || error "$DIR/R14a/b missing"}run_test 24r "mkdir .../R14a/b; rename .../R14a .../R14a/b ====="test_24s() {	mkdir $DIR/R15a $DIR/R15a/b $DIR/R15a/b/c	mrename $DIR/R15a $DIR/R15a/b/c && error "rename to sub-subdir worked!"	$CHECKSTAT -t dir $DIR/R15a || error "$DIR/R15a missing"	$CHECKSTAT -t dir $DIR/R15a/b/c || error "$DIR/R15a/b/c missing"}run_test 24s "mkdir .../R15a/b/c; rename .../R15a .../R15a/b/c ="test_24t() {	mkdir $DIR/R16a $DIR/R16a/b $DIR/R16a/b/c	mrename $DIR/R16a/b/c $DIR/R16a && error "rename to sub-subdir worked!"	$CHECKSTAT -t dir $DIR/R16a || error "$DIR/R16a missing"	$CHECKSTAT -t dir $DIR/R16a/b/c || error "$DIR/R16a/b/c missing"}run_test 24t "mkdir .../R16a/b/c; rename .../R16a/b/c .../R16a ="test_24u() { # bug12192        multiop $DIR/$tfile C2w$((2048 * 1024))c || error        $CHECKSTAT -s $((2048 * 1024)) $DIR/$tfile || error "wrong file size"}run_test 24u "create stripe file"test_25a() {	echo '== symlink sanity ============================================='	mkdir $DIR/d25	ln -s d25 $DIR/s25	touch $DIR/s25/foo || error}run_test 25a "create file in symlinked directory ==============="test_25b() {	[ ! -d $DIR/d25 ] && test_25a	$CHECKSTAT -t file $DIR/s25/foo || error}run_test 25b "lookup file in symlinked directory ==============="test_26a() {	mkdir $DIR/d26	mkdir $DIR/d26/d26-2	ln -s d26/d26-2 $DIR/s26	touch $DIR/s26/foo || error}run_test 26a "multiple component symlink ======================="test_26b() {	mkdir -p $DIR/d26b/d26-2	ln -s d26b/d26-2/foo $DIR/s26-2	touch $DIR/s26-2 || error}run_test 26b "multiple component symlink at end of lookup ======"test_26c() {	mkdir $DIR/d26.2	touch $DIR/d26.2/foo	ln -s d26.2 $DIR/s26.2-1	ln -s s26.2-1 $DIR/s26.2-2	ln -s s26.2-2 $DIR/s26.2-3	chmod 0666 $DIR/s26.2-3/foo}run_test 26c "chain of symlinks ================================"# recursive symlinks (bug 439)test_26d() {	ln -s d26-3/foo $DIR/d26-3}run_test 26d "create multiple component recursive symlink ======"test_26e() {	[ ! -h $DIR/d26-3 ] && test_26d	rm $DIR/d26-3}run_test 26e "unlink multiple component recursive symlink ======"# recursive symlinks (bug 7022)test_26f() {	mkdir $DIR/$tdir/$tfile        || error "mkdir $DIR/$tdir/$tfile failed"	cd $DIR/$tdir/$tfile           || error "cd $DIR/$tdir/$tfile failed"	mkdir -p lndir/bar1      || error "mkdir lndir/bar1 failed"	mkdir $tfile             || error "mkdir $tfile failed"	cd $tfile                || error "cd $tfile failed"	ln -s .. dotdot          || error "ln dotdot failed"	ln -s dotdot/lndir lndir || error "ln lndir failed"	cd $DIR/$tdir                 || error "cd $DIR/$tdir failed"	output=`ls $tfile/$tfile/lndir/bar1`	[ "$output" = bar1 ] && error "unexpected output"	rm -r $tfile             || error "rm $tfile failed"	$CHECKSTAT -a $DIR/$tfile || error "$tfile not gone"}run_test 26f "rm -r of a directory which has recursive symlink ="test_27a() {	echo '== stripe sanity =============================================='	mkdir -p $DIR/d27 || error "mkdir failed"	$SETSTRIPE $DIR/d27/f0 -c 1 || error "lstripe failed"	$CHECKSTAT -t file $DIR/d27/f0 || error "checkstat failed"	pass	log "== test 27b: write to one stripe file ========================="	cp /etc/hosts $DIR/d27/f0 || error}run_test 27a "one stripe file =================================="test_27c() {	[ "$OSTCOUNT" -lt "2" ] && skip "skipping 2-stripe test" && return	mkdir -p $DIR/d27	$SETSTRIPE $DIR/d27/f01 -c 2 || error "lstripe failed"	[ `$GETSTRIPE $DIR/d27/f01 | grep -A 10 obdidx | wc -l` -eq 4 ] ||		error "two-stripe file doesn't have two stripes"	pass	log "== test 27d: write to two stripe file file f01 ================"	dd if=/dev/zero of=$DIR/d27/f01 bs=4k count=4 || error "dd failed"}run_test 27c "create two stripe file f01 ======================="test_27d() {	mkdir -p $DIR/d27	$SETSTRIPE $DIR/d27/fdef 0 -1 0 || error "lstripe failed"	$CHECKSTAT -t file $DIR/d27/fdef || error "checkstat failed"	dd if=/dev/zero of=$DIR/d27/fdef bs=4k count=4 || error}run_test 27d "create file with default settings ================"test_27e() {	mkdir -p $DIR/d27	$SETSTRIPE $DIR/d27/f12 -c 2 || error "lstripe failed"	$SETSTRIPE $DIR/d27/f12 -c 2 && error "lstripe succeeded twice"	$CHECKSTAT -t file $DIR/d27/f12 || error "checkstat failed"}run_test 27e "lstripe existing file (should return error) ======"test_27f() {	mkdir -p $DIR/d27	$SETSTRIPE $DIR/d27/fbad -s 100 -i 0 -c 1 && error "lstripe failed"	dd if=/dev/zero of=$DIR/d27/f12 bs=4k count=4 || error "dd failed"	$GETSTRIPE $DIR/d27/fbad || error "lfs getstripe failed"}run_test 27f "lstripe with bad stripe size (should return error)"test_27g() {	mkdir -p $DIR/d27	$MCREATE $DIR/d27/fnone || error "mcreate failed"	pass	log "== test 27h: lfs getstripe with no objects ===================="	$GETSTRIPE $DIR/d27/fnone 2>&1 | grep "no stripe info" || error "has object"	pass	log "== test 27i: lfs getstripe with some objects =================="	touch $DIR/d27/fsome || error "touch failed"	$GETSTRIPE $DIR/d27/fsome | grep obdidx || error "missing objects"}run_test 27g "test lfs getstripe ==========================================="test_27j() {	mkdir -p $DIR/d27	$SETSTRIPE $DIR/d27/f27j -i $OSTCOUNT && error "lstripe failed"||true}run_test 27j "lstripe with bad stripe offset (should return error)"test_27k() { # bug 2844	mkdir -p $DIR/d27	FILE=$DIR/d27/f27k	LL_MAX_BLKSIZE=$((4 * 1024 * 1024))

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -