Adding more modified tests for ODF.
authorRachita Kothiyal <rachita@vm2.fsl.cs.sunysb.edu>
Sat, 13 Oct 2007 07:38:25 +0000 (03:38 -0400)
committerRachita Kothiyal <rachita@vm2.fsl.cs.sunysb.edu>
Sat, 13 Oct 2007 07:38:25 +0000 (03:38 -0400)
chmod, creat-open, flock, fsync, lookup, mknod are now generic(ie, they
can handle both ODF and non-ODF cases)

run-tests
scaffold
t-chmod.sh
t-creat-open.sh
t-create.sh
t-flock.sh
t-fsync.sh
t-lookup.sh
t-mknod.sh

index 924c224e875a9fde478f97f51419fc10fcad4e85..074aad1e9a17afa3555770ed26400f88d5f79607 100755 (executable)
--- a/run-tests
+++ b/run-tests
@@ -254,7 +254,7 @@ do
 
   # Export the type of file systems, as some tests need to know.
   # For example: jffs2, cramfs, and squashfs.
-  export FS0 FS1 FS2 FS3 ODF_FS DEV0 DEV1 DEV2 DEV3 ODF_DEV ODF_DIR SPECIAL_FS delay OUTPUT_COLOR POPULATE_ODF
+  export FS0 FS1 FS2 FS3 ODF_FS DEV0 DEV1 DEV2 DEV3 ODF_DEV ODF_DIR SPECIAL_FS delay OUTPUT_COLOR ODF POPULATE_ODF
 
   # run actual test and abort on error (test script tries to umount unionfs)
   runcmd bash $t
index 3fd2eed833c478721c8d820f038384973f1f2af5..48c63921c531ed2971fdef3c7334e179d85258ac 100644 (file)
--- a/scaffold
+++ b/scaffold
@@ -40,7 +40,6 @@ function havechattr {
 }
 
 function create_hierarchy {
-
        if [ "$POPULATE_ODF" -eq "0" ]; then
                havechattr $LOWER_DIR0 && chattr -R -i $LOWER_DIR0
                havechattr $LOWER_DIR1 && chattr -R -i $LOWER_DIR1
@@ -59,7 +58,12 @@ function create_hierarchy {
                     continue
                 fi
                 TYPE=`echo $LINE | cut -d' ' -f 1`
-                NAME=`echo $LINE | cut -d' ' -f 2`
+               if [ "$TYPE" = "w" ]; then
+                       WH_LOC=`echo $LINE | cut -d' ' -f 2`
+                       NAME=`echo $LINE | cut -d' ' -f 3`
+               else    
+                       NAME=`echo $LINE | cut -d' ' -f 2`
+               fi
 
                unset DIR FILE IMMUTABLE SOURCE SYMLINK WH
 
@@ -124,8 +128,16 @@ function create_hierarchy {
                 elif [ ! -z "$SYMLINK" ] ; then
                        ln -s "linktext:$NAME" $NAME
                elif [ ! -z "$WH" ]; then
-                        mkdir -p `dirname $NAME` || exit $?
-                       ln $ODF_DIR/whiteout $NAME
+                       if [ "$ODF" -eq "1" ]; then
+                               mkdir -p `dirname $WH_LOC"/"$NAME` || exit $?
+                               ln $ODF_DIR/whiteout $WH_LOC"/"$NAME
+                       else
+                               wh_abs_path=$WH_LOC"/"$NAME
+                               wh_dir=`dirname $wh_abs_path`
+                               wh_file=".wh."`basename $wh_abs_path`
+                               wh_abs_path=$wh_dir""$wh_file
+                               touch $wh_abs_path
+                       fi
                else
                        echo "What type am i: $TYPE" 1>&2
                        exit $?
@@ -208,6 +220,14 @@ function setup_odf
 
 }
 
+function fill_odf {
+mkdir $ODF_DIR/ic      
+mkdir $ODF_DIR/ns
+mkdir $ODF_DIR/reclaim
+mkdir $ODF_DIR/sr
+touch $ODF_DIR/whiteout
+}
+
 function mount_union {
 
        # support compressed ram/rom file systems
index de7a7cbb8768d7a4515f6d978917f78d9e3b975c..40b9d12eec00b78b060b73fb4b5fd6179bd6ef00 100755 (executable)
@@ -59,10 +59,17 @@ function do_chmod {
 
 function test1 {
 # The read-write tests
+if [ $ODF -eq 1 ]; then
+       POPULATE_ODF=0
+fi
 ( beforefiles ) | create_hierarchy
-
-mount_union "" $LOWER_DIR0 $LOWER_DIR1
-
+if [ $ODF -eq 1 ]; then
+       setup_odf
+       mount_union "odf=$ODF_DIR" $LOWER_DIR0 $LOWER_DIR1
+else
+       mount_union "" $LOWER_DIR0 $LOWER_DIR1
+fi
+       
 do_chmod $MOUNTPOINT/a
 do_chmod $MOUNTPOINT/b
 do_chmod $MOUNTPOINT/c
@@ -71,26 +78,38 @@ do_chmod $MOUNTPOINT/e
 do_chmod $MOUNTPOINT/f
 
 unmount_union
-
 ( beforefiles )  | check_hierarchy $TOP_LOWER_DIR
 echo -n "[rw] "
+
+if [ $ODF -eq 1 ]; then
+       discard_odf
+fi
 }
 
 function test2 {
 # The readonly tests
+if [ $ODF -eq 1 ]; then
+       POPULATE_ODF=0
+fi
 ( beforefiles ) | create_hierarchy
-mount_union "" $LOWER_DIR0 $LOWER_DIR1=ro
-
+if [ $ODF -eq 1 ]; then
+       setup_odf
+       mount_union "odf=$ODF_DIR" $LOWER_DIR0 $LOWER_DIR1=ro
+else
+       mount_union "" $LOWER_DIR0 $LOWER_DIR1=ro
+fi
 do_chmod $MOUNTPOINT/a
 do_chmod $MOUNTPOINT/b
 do_chmod $MOUNTPOINT/c
 do_chmod $MOUNTPOINT/d
 do_chmod $MOUNTPOINT/e
 do_chmod $MOUNTPOINT/f
-
 unmount_union
 ( beforefiles ; afterfiles_ro )  | check_hierarchy $TOP_LOWER_DIR
 echo -n "[ro] "
+if [ $ODF -eq 1 ]; then
+       discard_odf
+fi
 }
 
 test1
index 614a9e3b29fc89e859a92786f3a4c06f29efb5d6..43b1db2e15739507aa58db8285360974cf64ec01 100755 (executable)
@@ -20,13 +20,20 @@ d $LOWER_DIR0/b
 f $LOWER_DIR0/b/creat-open
 FILES
 }
-
+if [ $ODF -eq 1 ]; then
+       POPULATE_ODF=0
+fi
 ( files ) | create_hierarchy
 
 EXPECTED_SIZE=`ls -l progs/creat-open | awk '{print $5}'`
 cp progs/creat-open $LOWER_DIR0/b/
 
-mount_union "" $LOWER_DIR0/b
+if [ $ODF -eq 1 ]; then
+       setup_odf
+       mount_union "odf=$ODF_DIR" $LOWER_DIR0/b
+else
+       mount_union "" $LOWER_DIR0/b
+fi
 
 RET=0
 $MOUNTPOINT/creat-open || RET="$?"
@@ -44,4 +51,7 @@ unmount_union
 
 ( afterfiles ) | check_hierarchy $LOWER_DIR0
 
+if [ $ODF -eq 1 ]; then
+       discard_odf
+fi
 complete_test
index 855d172414df36c00726416337b7828cf70072b7..32552cd2b974b2e330bea30ff1bb8375beb0b344 100644 (file)
@@ -61,8 +61,8 @@ FILES
 # initial set of ODF files
 function odf_beforefiles {
 cat <<FILES
-w $ODF_DIR/ns/d1/x
-w $ODF_DIR/ns/d1/d2/d3/d4/d
+w $ODF_DIR/ns d1/x
+w $ODF_DIR/ns d1/d2/d3/d4/d
 
 FILES
 }
@@ -223,13 +223,13 @@ function BUG383 {
 }
 
 
-function fill_odf {
-       mkdir $ODF_DIR/ic       
-       mkdir $ODF_DIR/ns
-       mkdir $ODF_DIR/reclaim
-       mkdir $ODF_DIR/sr
-       touch $ODF_DIR/whiteout
-}
+#function fill_odf {
+#      mkdir $ODF_DIR/ic       
+#      mkdir $ODF_DIR/ns
+#      mkdir $ODF_DIR/reclaim
+#      mkdir $ODF_DIR/sr
+#      touch $ODF_DIR/whiteout
+#}
 
 if [ -z "$FXNS" ] ; then
        FXNS="rw ro BUG383"
index 771a831121928b6e057878371fccc63de6cc2f63..53a1bfdf42d382e411c5591b229f6745fa1b4636 100755 (executable)
@@ -36,17 +36,38 @@ f $LOWER_DIR1/a
 FILES
 }
 
-
+if [ $ODF -eq 1 ]; then
+       POPULATE_ODF=0
+fi
 ( files ) | create_hierarchy
-mount_union "" $LOWER_DIR0 $LOWER_DIR1=ro
+if [ $ODF -eq 1 ]; then
+       setup_odf
+       mount_union "odf=$ODF_DIR" $LOWER_DIR0 $LOWER_DIR1=ro
+else
+       mount_union "" $LOWER_DIR0 $LOWER_DIR1=ro
+fi
+
 ./progs/flock-copyup $MOUNTPOINT/a || exit $?
 unmount_union
 ( afterfiles_ro ) | check_hierarchy $TOP_LOWER_DIR
 
+if [ $ODF -eq 1 ]; then
+       discard_odf
+fi
+
 ( files ) | create_hierarchy
-mount_union "" $LOWER_DIR0 $LOWER_DIR1
+if [ $ODF -eq 1 ]; then
+       setup_odf
+       mount_union "odf=$ODF_DIR" $LOWER_DIR0 $LOWER_DIR1
+else
+       mount_union "" $LOWER_DIR0 $LOWER_DIR1
+fi
+
 ./progs/flock-copyup $MOUNTPOINT/a || exit $?
 unmount_union
 ( afterfiles_rw ) | check_hierarchy $TOP_LOWER_DIR
 
+if [ $ODF -eq 1 ]; then
+       discard_odf
+fi
 complete_test
index c36745c882808284b318d1c5e1643db04d4de347..2c4af0ba03136319485b6cedd62c5b60b95c5f5e 100755 (executable)
@@ -16,11 +16,22 @@ FILES
 }
 
 function rw {
+       if [ $ODF -eq 1 ]; then
+               POPULATE_ODF=0
+       fi
        ( files ) | create_hierarchy
-       mount_union "" $LOWER_DIR0 $LOWER_DIR1
+       if [ $ODF -eq 1 ]; then
+               setup_odf
+               mount_union "odf=$ODF_DIR" $LOWER_DIR0 $LOWER_DIR1
+       else
+               mount_union "" $LOWER_DIR0 $LOWER_DIR1
+       fi
        ./progs/fsync $MOUNTPOINT/a || exit $?
        unmount_union
        ( files ) | check_hierarchy $TOP_LOWER_DIR
+       if [ $ODF -eq 1 ]; then
+               discard_odf
+       fi
 }
 
 if [ -z "$FXNS" ] ; then
index 7e779ba12fb5209c34726f5cc19ff89c2821cfde..f70ec8077dfeb90bdacabbd0260ac8aa43bf4536 100755 (executable)
@@ -23,25 +23,56 @@ d $LOWER_DIR0/b
 f $LOWER_DIR1/b
 d $LOWER_DIR2/b
 
-f $LOWER_DIR1/.wh.c
 d $LOWER_DIR2/c
 f $LOWER_DIR2/c/d
 FILES
 }
 
-files | create_hierarchy
+function beforefiles {
+cat <<FILES
+w $LOWER_DIR1 c
+FILES
+}
 
-mount_union "" $TOP_LOWER_DIR/b?
+function odf_afterfiles {
+cat <<FILES
+d $ODF_DIR/ns
+f $ODF_DIR/ns/a
+d $ODF_DIR/ns/b
+w $ODF_DIR/ns/c
+FILES
+}
 
-checktype $MOUNTPOINT/a 'f'
-checktype $MOUNTPOINT/b 'd'
-checktype $MOUNTPOINT/c '-'
 
+if [ $ODF -eq 1 ]; then
+       POPULATE_ODF=0
+       setup_odf
+       fill_odf
+       ./progs/make_sb 3 $LOWER_DIR0 6 $LOWER_DIR1 6 $LOWER_DIR2 6 $LOWER_DIR3 6
+fi
 
+( files ; beforefiles ) | create_hierarchy
 
+if [ $ODF -eq 1 ]; then
+       mount_union "odf=$ODF_DIR"
+       ls -lR $MOUNTPOINT >/dev/null
+else
+       mount_union "" $TOP_LOWER_DIR/b?
+fi
+
+checktype $MOUNTPOINT/a 'f'
+checktype $MOUNTPOINT/b 'd'
+checktype $MOUNTPOINT/c '-'
 
 unmount_union
 
-files | check_hierarchy $TOP_LOWER_DIR
+if [ $ODF -eq 1 ]; then
+       files | check_hierarchy $TOP_LOWER_DIR
+       odf_afterfiles | check_hierarchy $ODF_DIR/ns
+       discard_odf
+else
+       ( files ; beforefiles ) | check_hierarchy $TOP_LOWER_DIR
+fi     
 
 complete_test
+
index 40a6a56eb81f1618ac3f7a02ea09bfc062479345..11757d9a50d67bf512734f50e81c94a56700189b 100755 (executable)
@@ -30,7 +30,7 @@ FILES
 # initial set of files
 function beforefiles {
 cat <<FILES
-f $LOWER_DIR1/d1/d2/d3/d4/.wh.c
+w $LOWER_DIR1 d1/d2/d3/d4/c
 FILES
 }
 
@@ -47,6 +47,18 @@ FILES
 }
 
 
+function afterfiles_odf_rw {
+cat <<FILES
+b $LOWER_DIR0/a
+d $LOWER_DIR0/d5
+c $LOWER_DIR0/d5/b
+d $LOWER_DIR0/d1/d2
+d $LOWER_DIR0/d1/d2/d3
+d $LOWER_DIR0/d1/d2/d3/d4
+b $LOWER_DIR0/d1/d2/d3/d4/c
+
+FILES
+}
 
 function afterfiles_ro {
 cat <<FILES
@@ -55,7 +67,7 @@ b $LOWER_DIR0/a
 d $LOWER_DIR0/d5
 c $LOWER_DIR0/d5/b
 
-f $LOWER_DIR1/d1/d2/d3/d4/.wh.c
+w $LOWER_DIR1 d1/d2/d3/d4/c
 d $LOWER_DIR0/d1/d2
 d $LOWER_DIR0/d1/d2/d3
 d $LOWER_DIR0/d1/d2/d3/d4
@@ -65,10 +77,20 @@ FILES
 
 
 
-
+if [ $ODF -eq 1 ]; then
+       POPULATE_ODF=0
+       setup_odf
+       fill_odf
+       ./progs/make_sb 2 $LOWER_DIR0 6 $LOWER_DIR1 6
+fi
 ( directories ; beforefiles) | create_hierarchy
 
-mount_union "" $LOWER_DIR0 $LOWER_DIR1
+if [ $ODF -eq 1 ]; then
+       mount_union "odf=$ODF_DIR"
+       ls -lR $MOUNTPOINT >/dev/null
+else
+       mount_union "" $LOWER_DIR0 $LOWER_DIR1
+fi
 
 mknod $MOUNTPOINT/a    b 200 0
 checktype "$MOUNTPOINT/a" 'b'
@@ -79,12 +101,33 @@ checktype "$MOUNTPOINT/d1/d2/d3/d4/c" 'b'
 
 
 unmount_union
-( directories ; afterfiles_rw )  | check_hierarchy $TOP_LOWER_DIR
 
+if [ $ODF -eq 1 ]; then
+       ( directories ; afterfiles_odf_rw )  | check_hierarchy $TOP_LOWER_DIR
+else
+       ( directories ; afterfiles_rw )  | check_hierarchy $TOP_LOWER_DIR
+fi
+if [ $ODF -eq 1 ]; then
+       discard_odf
+fi
+
+
+
+if [ $ODF -eq 1 ]; then
+       POPULATE_ODF=0
+       setup_odf
+       fill_odf
+       ./progs/make_sb 2 $LOWER_DIR0 6 $LOWER_DIR1 4
+fi
 
 ( directories ; beforefiles) | create_hierarchy
 
-mount_union "" $LOWER_DIR0 $LOWER_DIR1=ro
+if [ $ODF -eq 1 ]; then
+       mount_union "odf=$ODF_DIR"
+       ls -lR $MOUNTPOINT >/dev/null
+else
+       mount_union "" $LOWER_DIR0 $LOWER_DIR1=ro
+fi
 
 mknod $MOUNTPOINT/a   b  200 0
 checktype "$MOUNTPOINT/a" 'b'
@@ -94,6 +137,14 @@ mknod $MOUNTPOINT/d1/d2/d3/d4/c   b  200 0
 checktype "$MOUNTPOINT/d1/d2/d3/d4/c" 'b'
 
 unmount_union
-( directories ; afterfiles_ro )  | check_hierarchy $TOP_LOWER_DIR
 
+if [ $ODF -eq 1 ]; then
+       ( directories ; afterfiles_odf_rw )  | check_hierarchy $TOP_LOWER_DIR
+else
+       ( directories ; afterfiles_ro )  | check_hierarchy $TOP_LOWER_DIR
+fi
+
+if [ $ODF -eq 1 ]; then
+       discard_odf
+fi
 complete_test