FILES
}
-function odf_directories {
+# initial set of files
+function beforefiles {
cat <<FILES
-d $ODF_DIR/ns
-d $ODF_DIR/ns/d1
-d $ODF_DIR/ns/d1/d2
-d $ODF_DIR/ns/d1/d2/d3
-f $ODF_DIR/ns/d1/d2/d3/a
-f $ODF_DIR/ns/d1/d2/d3/b
-f $ODF_DIR/ns/d1/d2/d3/c
-d $ODF_DIR/ns/d1/d2/d3/d4
-d $ODF_DIR/ns/d5
-d $ODF_DIR/ns/d6
-FILES
-}
-# initial set of ODF files
-function odf_beforefiles {
-cat <<FILES
w $LOWER_DIR0 d1/x
+
w $LOWER_DIR2 d1/d2/d3/d4/d
FILES
FILES
}
-function odf_beforefiles_383 {
-cat <<FILES
-f $ODF_DIR/ns/y
-f $ODF_DIR/ns/d1/x
-FILES
-}
-
function afterfiles_383 {
cat <<FILES
f $LOWER_DIR0/y
FILES
}
-function odf_afterfiles_rw {
-cat <<FILES
-f $ODF_DIR/ns/y
-f $ODF_DIR/ns/d1/x
-f $ODF_DIR/ns/d1/d2/d3/d4/d
-FILES
-}
-
-function lower_afterfiles_rw {
+function afterfiles_rw {
cat <<FILES
f $LOWER_DIR0/y
f $LOWER_DIR0/d1/x
d $LOWER_DIR0/d1/d2/d3
d $LOWER_DIR0/d1/d2/d3/d4
f $LOWER_DIR0/d1/d2/d3/d4/d
-
FILES
-}
-
-function odf_afterfiles_ro {
+if [ $ODF -eq 0 ]; then
cat <<FILES
-f $ODF_DIR/ns/y
-f $ODF_DIR/ns/d1/x
-f $ODF_DIR/ns/d1/d2/d3/d4/d
+w $LOWER_DIR2 d1/d2/d3/d4/d
FILES
+fi
}
-function lower_afterfiles_ro {
+function afterfiles_ro {
cat <<FILES
f $LOWER_DIR0/y
d $LOWER_DIR0/d1/d2/d3
d $LOWER_DIR0/d1/d2/d3/d4
f $LOWER_DIR0/d1/d2/d3/d4/d
-
FILES
+if [ $ODF -eq 0 ]; then
+cat <<FILES
+w $LOWER_DIR2 d1/d2/d3/d4/d
+FILES
+fi
}
function rw {
- POPULATE_ODF=0
- ( directories ; ) | create_hierarchy
-
- setup_odf
- fill_odf
- ./progs/make_sb 3 $LOWER_DIR0 6 $LOWER_DIR1 6 $LOWER_DIR2 6
+ init_odf $LOWER_DIR0 $LOWER_DIR1 $LOWER_DIR2
+ ( directories ; beforefiles ) | create_hierarchy
- POPULATE_ODF=1
- ( odf_beforefiles ; ) | create_hierarchy
-
- mount_union "odf=$ODF_DIR"
+ mount_union "" $LOWER_DIR0 $LOWER_DIR1 $LOWER_DIR2
touch $MOUNTPOINT/y
checktype $MOUNTPOINT/y 'f'
touch $MOUNTPOINT/d1/d2/d3/d4/d
checktype $MOUNTPOINT/d1/d2/d3/d4/d 'f'
- ls -lR $MOUNTPOINT >/dev/null
unmount_union
#Sanity check the lower level dirs/files
- ( directories ; lower_afterfiles_rw ) | check_hierarchy $TOP_LOWER_DIR
+ ( directories ; afterfiles_rw ) | check_hierarchy
- #Sanity check ODF, and then discard it
- ( odf_directories ; odf_afterfiles_rw ) | check_hierarchy $ODF_DIR/ns
discard_odf
}
function ro {
- POPULATE_ODF=0
- ( directories ; ) | create_hierarchy
-
- setup_odf
- fill_odf
- ./progs/make_sb 3 $LOWER_DIR0 6 $LOWER_DIR1 4 $LOWER_DIR2 4
+ init_odf $LOWER_DIR0 $LOWER_DIR1=ro $LOWER_DIR2=ro
+ ( directories ; beforefiles ) | create_hierarchy
- POPULATE_ODF=1
- ( odf_beforefiles ; ) | create_hierarchy
- mount_union "odf=$ODF_DIR"
+ mount_union "" $LOWER_DIR0 $LOWER_DIR1=ro $LOWER_DIR2=ro
touch $MOUNTPOINT/y
checktype $MOUNTPOINT/y 'f'
touch $MOUNTPOINT/d1/d2/d3/d4/d
checktype $MOUNTPOINT/d1/d2/d3/d4/d 'f'
- ls -lR $MOUNTPOINT >/dev/null
unmount_union
- ( directories ; lower_afterfiles_ro ) | check_hierarchy $TOP_LOWER_DIR
+ ( directories ; afterfiles_ro ) | check_hierarchy
- #Sanity check (TODO) ODF, and then discard it
- ( odf_directories ; odf_afterfiles_ro ) | check_hierarchy $ODF_DIR/ns
discard_odf
}
function BUG383 {
- POPULATE_ODF=0
+ init_odf $LOWER_DIR0 $LOWER_DIR1=ro $LOWER_DIR2=ro
( directories ; beforefiles_383 ) | create_hierarchy
- setup_odf
- fill_odf
- ./progs/make_sb 3 $LOWER_DIR0 6 $LOWER_DIR1 4 $LOWER_DIR2 4
-
- POPULATE_ODF=1
- mount_union "odf=$ODF_DIR"
+ mount_union "" $LOWER_DIR0 $LOWER_DIR1=ro $LOWER_DIR2=ro
local SM=`umask`
umask 022
umask $SM
- ls -lR $MOUNTPOINT >/dev/null
unmount_union
- ( directories ; afterfiles_383 ) | check_hierarchy $TOP_LOWER_DIR
+ ( directories ; afterfiles_383 ) | check_hierarchy
- #Sanity check (TODO) ODF, and then discard it
- ( odf_directories ; odf_beforefiles_383 ) | check_hierarchy $ODF_DIR/ns
discard_odf
}
-
-#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"
fi
cat <<FILES
b $LOWER_DIR0/a
+FILES
+if [ $ODF -eq 0 ]; then
+cat <<FILES
c $LOWER_DIR1/d5/b
b $LOWER_DIR1/d1/d2/d3/d4/c
-
FILES
-}
-
-
-function afterfiles_odf_rw {
+else
cat <<FILES
-b $LOWER_DIR0/a
d $LOWER_DIR0/d5
c $LOWER_DIR0/d5/b
d $LOWER_DIR0/d1/d2
b $LOWER_DIR0/d1/d2/d3/d4/c
FILES
+fi
+
}
function afterfiles_ro {
d $LOWER_DIR0/d5
c $LOWER_DIR0/d5/b
-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
b $LOWER_DIR0/d1/d2/d3/d4/c
FILES
+if [ $ODF -eq 0 ]; then
+cat <<FILES
+w $LOWER_DIR1 d1/d2/d3/d4/c
+FILES
+fi
}
-
-
-if [ $ODF -eq 1 ]; then
- POPULATE_ODF=0
- setup_odf
- fill_odf
- ./progs/make_sb 2 $LOWER_DIR0 6 $LOWER_DIR1 6
-fi
+init_odf $LOWER_DIR0 $LOWER_DIR1
( directories ; beforefiles) | create_hierarchy
-
-if [ $ODF -eq 1 ]; then
- mount_union "odf=$ODF_DIR"
- ls -lR $MOUNTPOINT >/dev/null
-else
- mount_union "" $LOWER_DIR0 $LOWER_DIR1
-fi
+mount_union "" $LOWER_DIR0 $LOWER_DIR1
mknod $MOUNTPOINT/a b 200 0
checktype "$MOUNTPOINT/a" 'b'
mknod $MOUNTPOINT/d1/d2/d3/d4/c b 200 0
checktype "$MOUNTPOINT/d1/d2/d3/d4/c" 'b'
-
unmount_union
-
-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
-
+( directories ; afterfiles_rw ) | check_hierarchy
+discard_odf
-if [ $ODF -eq 1 ]; then
- POPULATE_ODF=0
- setup_odf
- fill_odf
- ./progs/make_sb 2 $LOWER_DIR0 6 $LOWER_DIR1 4
-fi
-
+init_odf $LOWER_DIR0 $LOWER_DIR1=ro
( directories ; beforefiles) | create_hierarchy
-
-if [ $ODF -eq 1 ]; then
- mount_union "odf=$ODF_DIR"
- ls -lR $MOUNTPOINT >/dev/null
-else
- mount_union "" $LOWER_DIR0 $LOWER_DIR1=ro
-fi
+mount_union "" $LOWER_DIR0 $LOWER_DIR1=ro
mknod $MOUNTPOINT/a b 200 0
checktype "$MOUNTPOINT/a" 'b'
checktype "$MOUNTPOINT/d1/d2/d3/d4/c" 'b'
unmount_union
+( directories ; afterfiles_ro ) | check_hierarchy
+discard_odf
-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