1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
|
#!/bin/bash
# fsck_hfs seems to be broken : it doesn't even succeed in scanning a freshly
# created by newfs_hfs partition.
do_diff()
{
mount "${TEST_DRIVE}1" $TEST_MOUNT_POINT -t $FILE_SYSTEM > /dev/null
if diff -rq $1 $2 --exclude lost+found >> test_log; then
ped_test_ok
else
ped_test_failed
fi
umount $TEST_MOUNT_POINT 2>&1 > /dev/null
}
do_test_diff()
{
ped_testing "$1"
if ped_test_get_val "$4" "$5" "$6"; then
ped_test_failed
return 1
fi
do_diff "$2" "$3"
}
test_newfs_hfs()
{
# -h option for newfs_hfs makes it use legacy HFS (not Plus)
# -dfn for fsck_hfs means Debug, Force, No
# Debug => print more information
# Force => force check even if clean bit is set
# No => don't modify the F.S.
ped_test "mkpart && newfs_hfs && fsck_hfs"\
"mklabel $TEST_FS_USE_DISK_LABEL\
mkpart primary $FILE_SYSTEM 1 $DEFAULT_END"\
"newfs_hfs -h -v \"PED HFS TEST\" ${TEST_DRIVE}1"
# &&\
# fsck_hfs -dfn ${TEST_DRIVE}1"
}
prepare_resize_tests()
{
part_num=1
part=$TEST_DRIVE$part_num
hole_parent=`echo $TEST_DATA_HOLE | sed -e "s/[-_.a-zA-Z0-9]+\///g"`
umount $TEST_MOUNT_POINT 2>&1 > /dev/null
mount $part $TEST_MOUNT_POINT -t $FILE_SYSTEM \
&& cp $TEST_DATA/* $TEST_MOUNT_POINT -r \
&& cp -r $TEST_DATA $TEST_MOUNT_POINT/tmp_copy \
&& rm -rf $TEST_MOUNT_POINT/$TEST_DATA_HOLE \
&& mv $TEST_MOUNT_POINT/tmp_copy/$TEST_DATA_HOLE \
$TEST_MOUNT_POINT/$hole_parent \
&& rm -rf $TEST_MOUNT_POINT/tmp_copy
umount $TEST_MOUNT_POINT 2>&1 > /dev/null
}
test_resize_move_end_backward()
{
# -dfn for fsck_hfs means Debug, Force, No
# Debug => print more information
# Force => force check even if clean bit is set
# No => don't modify the F.S.
do_test_diff "resize: move end backward"\
$TEST_DATA $TEST_MOUNT_POINT \
"resize 1 1 $RESIZE_END"\
""
#fsck_hfs -dfn ${TEST_DRIVE}1 2>&1"
}
main()
{
export DEFAULT_END=250
export RESIZE_END=200
export FILE_SYSTEM=hfs
if ! test_newfs_hfs; then
return 1
fi
prepare_resize_tests
test_resize_move_end_backward
}
main
|