blob: 7a51e4e276413e9b6bbc18955d053149ca55226e [file] [log] [blame]
#! /bin/bash
do_diff()
{
mount -t vfat ${TEST_DRIVE}1 $TEST_MOUNT_POINT > /dev/null
if diff -rq $1 $2 >> 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" "$7"; then
ped_test_failed
return 1
fi
do_diff "$2" "$3"
}
test_mkpartfs()
{
ped_test "mkpartfs fat16 minimum size"\
"mklabel $TEST_FS_USE_DISK_LABEL\
mkpartfs primary fat16 0 1\
check 1"\
"/sbin/dosfsck ${TEST_DRIVE}1"
ped_test "mkpartfs fat32 minimum size"\
"mklabel $TEST_FS_USE_DISK_LABEL\
mkpartfs primary fat32 0 1\
check 1"\
"/sbin/dosfsck ${TEST_DRIVE}1"
ped_test "mkpartfs"\
"mklabel $TEST_FS_USE_DISK_LABEL\
mkpartfs primary fat32 1 $DEFAULT_END\
check 1"\
"/sbin/dosfsck ${TEST_DRIVE}1"
ped_test "mkfs"\
"mkfs 1 fat32\
check 1"\
"/sbin/dosfsck ${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 vfat \
&& cp -r $TEST_DATA/* $TEST_MOUNT_POINT \
&& 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
}
clearfat()
{
$TEST_PARTED_CLEARFAT $TEST_DRIVE $1
}
test_resize_move_start_forward()
{
# geometry beforehand: 1 to $DEFAULT_END
do_test_diff "resize: move start forward"\
$TEST_DATA $TEST_MOUNT_POINT \
"resize 1 5 $DEFAULT_END check 1"\
"/sbin/dosfsck ${TEST_DRIVE}1"
clearfat 1
}
test_resize_move_start_backward()
{
# geometry beforehand: 5 to $DEFAULT_END
do_test_diff "resize: move start backward"\
$TEST_DATA $TEST_MOUNT_POINT \
"resize 1 1 $DEFAULT_END check 1"\
"/sbin/dosfsck ${TEST_DRIVE}1"
clearfat 1
}
test_resize_move_end_forward()
{
# geometry beforehand: 1 to $DEFAULT_END
do_test_diff "resize: move end forward"\
$TEST_DATA $TEST_MOUNT_POINT \
"resize 1 1 $[ $DEFAULT_END + 5 ] check 1"\
"/sbin/dosfsck ${TEST_DRIVE}1"
clearfat 1
}
test_resize_move_end_backward()
{
# geometry beforehand: 1 to $[$DEFAULT_END + 5]
do_test_diff "resize: move end backward"\
$TEST_DATA $TEST_MOUNT_POINT \
"resize 1 1 $DEFAULT_END check 1"\
"/sbin/dosfsck ${TEST_DRIVE}1"
clearfat 1
}
test_convert_fat16_fat32_shrink_cluster()
{
# geometry beforehand: 1 to $DEFAULT_END
do_test_diff \
"resize: convert from FAT16 to FAT32, shrinking the cluster size"\
$TEST_DATA $TEST_MOUNT_POINT \
"resize 1 1 $FAT32_END check 1"\
"/sbin/dosfsck ${TEST_DRIVE}1"
clearfat 1
}
test_convert_fat32_fat16()
{
# geometry beforehand: 1 to $FAT16_SMALL_END
do_test_diff "resize: convert from FAT32 to FAT16"\
$TEST_DATA $TEST_MOUNT_POINT \
"resize 1 1 $FAT32_END check 1"\
"/sbin/dosfsck ${TEST_DRIVE}1"
clearfat 1
}
test_convert_fat16_fat32()
{
# geometry beforehand: 1 to $FAT32_END
do_test_diff "resize: convert from FAT16 to FAT32"\
$TEST_DATA $TEST_MOUNT_POINT \
"resize 1 1 $FAT16_SMALL_END check 1"\
"/sbin/dosfsck ${TEST_DRIVE}1"
clearfat 1
}
#test_convert_fat32_fat16_shrink_cluster()
#{
#}
#test_fat16_shrink_cluster()
#{
#}
#test_fat32_shrink_cluster()
#{
#}
main()
{
export DEFAULT_END=300
export FAT32_END=600
export FAT16_SMALL_END=200
if ! test_mkpartfs; then
return 1
fi
prepare_resize_tests
test_resize_move_start_forward
test_resize_move_start_backward
test_resize_move_end_forward
test_resize_move_end_backward
# prepare_resize_tests
test_convert_fat16_fat32_shrink_cluster
test_convert_fat32_fat16
test_convert_fat16_fat32
}
main