5 LUSTRE=${LUSTRE:-$(cd $(dirname $0)/..; echo $PWD)}
6 . $LUSTRE/tests/test-framework.sh
8 . ${CONFIG:=$LUSTRE/tests/cfg/$NAME.sh}
12 check_and_setup_lustre
14 POSIX_DIR=${POSIX_DIR:-"$LUSTRE/tests/posix"}
15 POSIX_SRC=${POSIX_SRC:-"/usr/src/posix"}
22 # if we only have 1 arg, we will search for dev
24 dev=$(losetup -a | grep "$mnt" | cut -d: -f1)
25 [[ -n $dev ]] && losetup -d $dev
26 else # we need all args
27 [[ -z $mnt ]] || [[ -z $dev ]] || [[ -z $file ]] &&
28 error "Can't cleanup loop device"
30 losetup -d $dev && rm -rf $mnt
41 echo "Make a loop file system with $file on $dev"
42 dd if=/dev/zero of=$file bs=1024k count=500 > /dev/null
43 if ! losetup $dev $file; then
45 echo "can't set up $dev for $file"
48 if ! mkfs.ext4 $dev; then
50 echo "mkfs.ext4 on $dev failed"
54 if ! mount -t ext4 $dev $mnt; then
56 echo "mount ext4 failed"
64 local allnodes="$(comma_list $(nodes_list))"
65 local tfile="$TMP/ext4-file"
66 local mntpnt=$POSIX_SRC/ext4
71 # We start at loop1 because posix build uses loop0
72 [ -b /dev/loop/1 ] && loopbase=/dev/loop/
73 [ -b /dev/loop1 ] && loopbase=/dev/loop
74 [ -z "$loopbase" ] && error "/dev/loop/1 and /dev/loop1 gone?"
76 for i in `seq 1 7`; do
77 losetup $loopbase$i > /dev/null 2>&1 && continue || true
82 [ -z "$loopdev" ] && error "Can not find loop device"
84 if ! setup_loop_dev $mntpnt $loopdev $tfile; then
85 cleanup_loop_dev "$mntpnt" "$loopdev" "$tfile"
86 error "Setup loop device failed"
89 # copy the source over to ext mount point
90 if ! cp -af ${POSIX_SRC}/*.* $mntpnt; then
91 cleanup_loop_dev "$mntpnt" "$loopdev" "$tfile"
92 error "Copy POSIX test suite failed"
94 export POSIX_SRC=$mntpnt
95 . $POSIX_DIR/posix.cfg
97 setup_posix_users $allnodes
98 if ! setup_posix; then
99 delete_posix_users $allnodes
100 cleanup_loop_dev "$POSIX_SRC"
101 cleanup_loop_dev "$mntpnt" "$loopdev" "$tfile"
102 error "Setup POSIX test suite failed"
105 log "Run POSIX test against lustre filesystem"
106 run_posix $MOUNT compare || \
107 error_noexit "Run POSIX testsuite on $MOUNT failed"
109 [[ -d "$MOUNT/TESTROOT" ]] && rm -fr $MOUNT/TESTROOT
110 delete_posix_users $allnodes
111 cleanup_loop_dev "$POSIX_SRC"
112 cleanup_loop_dev "$mntpnt" "$loopdev" "$tfile"
114 run_test 1 "build, install, run posix on ext4 and lustre, then compare"
116 complete $(basename $0) $SECONDS
117 check_and_cleanup_lustre