function beforefiles {
cat <<FILES
w $LOWER_DIR1 d1/d2/d3/d4/c
+c $LOWER_DIR1/devnull
FILES
}
function afterfiles_rw {
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
-else
-cat <<FILES
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
+c $LOWER_DIR1/devnull
+FILES
+if [ $ODF -eq 0 ]; then
+cat <<FILES
+w $LOWER_DIR1 d1/d2/d3/d4/c
FILES
fi
d $LOWER_DIR0/d1/d2/d3
d $LOWER_DIR0/d1/d2/d3/d4
b $LOWER_DIR0/d1/d2/d3/d4/c
+c $LOWER_DIR0/devnull
+c $LOWER_DIR1/devnull
FILES
if [ $ODF -eq 0 ]; then
cat <<FILES
fi
}
+function test_rw {
init_odf $LOWER_DIR0 $LOWER_DIR1
( directories ; beforefiles) | create_hierarchy
mount_union "" $LOWER_DIR0 $LOWER_DIR1
mknod $MOUNTPOINT/d1/d2/d3/d4/c b 200 0
checktype "$MOUNTPOINT/d1/d2/d3/d4/c" 'b'
+checkperms $MOUNTPOINT/devnull 644
+chmod 666 $MOUNTPOINT/devnull
+echo > $MOUNTPOINT/devnull
+checkperms $MOUNTPOINT/devnull 666
+
unmount_union
( directories ; afterfiles_rw ) | check_hierarchy
discard_odf
+echo -n "[rw] "
+}
+function test_ro {
init_odf $LOWER_DIR0 $LOWER_DIR1=ro
( directories ; beforefiles) | create_hierarchy
mount_union "" $LOWER_DIR0 $LOWER_DIR1=ro
mknod $MOUNTPOINT/d1/d2/d3/d4/c b 200 0
checktype "$MOUNTPOINT/d1/d2/d3/d4/c" 'b'
+checkperms $MOUNTPOINT/devnull 644
+chmod 666 $MOUNTPOINT/devnull
+echo > $MOUNTPOINT/devnull
+checkperms $MOUNTPOINT/devnull 666
+
unmount_union
( directories ; afterfiles_ro ) | check_hierarchy
discard_odf
+echo -n "[ro] "
+}
+test_rw
+test_ro
complete_test