Skip to content

Commit

Permalink
Merge pull request #5586 from ipfs/fix/sharness/stat-race
Browse files Browse the repository at this point in the history
fix: sharness race in directory_size if file is removed
  • Loading branch information
Stebalien authored Oct 18, 2018
2 parents 7de7928 + a4fab7f commit 9cdbb1e
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 2 deletions.
3 changes: 3 additions & 0 deletions test/sharness/lib/test-lib.sh
Original file line number Diff line number Diff line change
Expand Up @@ -406,6 +406,9 @@ directory_size() {
fsize=$(file_size "$fname")
res=$?
if ! test $res -eq 0; then
if ! test -e "$fname"; then
continue;
fi
echo "failed to get filesize" >&2
return $res
fi
Expand Down
11 changes: 9 additions & 2 deletions test/sharness/t0080-repo.sh
Original file line number Diff line number Diff line change
Expand Up @@ -48,19 +48,26 @@ test_expect_success "'ipfs pin rm' output looks good" '
test_cmp expected1 actual1
'

test_expect_success "ipfs repo gc fully reverse ipfs add" '
test_expect_success "ipfs repo gc fully reverse ipfs add (part 1)" '
ipfs repo gc &&
random 100000 41 >gcfile &&
expected="$(directory_size "$IPFS_PATH/blocks")" &&
find "$IPFS_PATH/blocks" -type f &&
hash=$(ipfs add -q gcfile) &&
ipfs pin rm -r $hash &&
ipfs repo gc &&
ipfs repo gc
'

test_kill_ipfs_daemon

test_expect_success "ipfs repo gc fully reverse ipfs add (part 2)" '
actual=$(directory_size "$IPFS_PATH/blocks") &&
{ test "$actual" -eq "$expected" || test_fsh echo "$actual != $expected"; } &&
{ test "$actual" -gt "0" || test_fsh echo "not($actual > 0)"; }
'

test_launch_ipfs_daemon --offline

test_expect_success "file no longer pinned" '
ipfs pin ls --type=recursive --quiet >actual2 &&
test_expect_code 1 grep $HASH actual2
Expand Down

0 comments on commit 9cdbb1e

Please sign in to comment.