11
2+ sparsebundlefs_ulimit=
3+
24function mount_sparsebundle() {
35 test ! -z " $TEST_BUNDLE "
46 local mount_dir=$( mktemp -d)
57 local dmg_file=" $mount_dir /sparsebundle.dmg"
6- sparsebundlefs -s -f -D $* $TEST_BUNDLE $mount_dir &
8+ (
9+ if [[ ! -z " ${sparsebundlefs_ulimit} " ]]; then
10+ ulimit -n $sparsebundlefs_ulimit
11+ fi
12+ sparsebundlefs -s -f -D $* $TEST_BUNDLE $mount_dir
13+ ) &
714 local pid=$!
815 for i in {0..50}; do
916 kill -0 $pid > /dev/null 2>&1
@@ -12,3 +19,40 @@ function mount_sparsebundle() {
1219
1320 echo $mount_dir " $mount_dir /sparsebundle.dmg"
1421}
22+
23+ function _test_dmg_has_correct_number_of_blocks() {
24+ hfsdump $dmg_file | grep " total_blocks: 268435456"
25+ }
26+
27+ function _test_dmg_contents_is_same_as_testdata() {
28+ for f in $( ls $HFSFUSE_DIR /src) ; do
29+ echo " Diffing $HFSFUSE_DIR /src/$f "
30+ diff $HFSFUSE_DIR /src/$f <( hfsdump $dmg_file read " /src/$f " )
31+ done
32+ }
33+
34+ function _test_can_handle_ulimit() {
35+ local mount_dir
36+ local dmg_file
37+
38+
39+ sparsebundlefs_ulimit=12
40+ read -r mount_dir dmg_file < <( mount_sparsebundle $mount_options )
41+ sparsebundlefs_ulimit=
42+
43+ hfs_dir=$( mktemp -d)
44+ hfsfuse -f $dmg_file $hfs_dir &
45+ local hfs_pid=$!
46+ for i in {0..50}; do
47+ kill -0 $hfs_pid > /dev/null 2>&1
48+ test -f $hfs_dir /Makefile && break || sleep 0.1
49+ done
50+
51+ for f in $( find $hfs_dir -type f) ; do
52+ echo " Reading $f "
53+ cat $f > /dev/null
54+ done
55+
56+ umount $hfs_dir && rm -Rf $hfs_dir
57+ umount $mount_dir && rm -Rf $mount_dir
58+ }
0 commit comments