Merge pull request #5586 from ipfs/fix/sharness/stat-race

fix: sharness race in directory_size if file is removed
This commit is contained in:
Steven Allen 2018-10-18 15:59:18 +01:00 committed by GitHub
commit 9cdbb1eaad
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 2 deletions

View File

@ -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

View File

@ -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