Skip to content

Commit 9cdbb1e

Browse files
authored
Merge pull request #5586 from ipfs/fix/sharness/stat-race
fix: sharness race in directory_size if file is removed
2 parents 7de7928 + a4fab7f commit 9cdbb1e

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

test/sharness/lib/test-lib.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -406,6 +406,9 @@ directory_size() {
406406
fsize=$(file_size "$fname")
407407
res=$?
408408
if ! test $res -eq 0; then
409+
if ! test -e "$fname"; then
410+
continue;
411+
fi
409412
echo "failed to get filesize" >&2
410413
return $res
411414
fi

test/sharness/t0080-repo.sh

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,19 +48,26 @@ test_expect_success "'ipfs pin rm' output looks good" '
4848
test_cmp expected1 actual1
4949
'
5050

51-
test_expect_success "ipfs repo gc fully reverse ipfs add" '
51+
test_expect_success "ipfs repo gc fully reverse ipfs add (part 1)" '
5252
ipfs repo gc &&
5353
random 100000 41 >gcfile &&
5454
expected="$(directory_size "$IPFS_PATH/blocks")" &&
5555
find "$IPFS_PATH/blocks" -type f &&
5656
hash=$(ipfs add -q gcfile) &&
5757
ipfs pin rm -r $hash &&
58-
ipfs repo gc &&
58+
ipfs repo gc
59+
'
60+
61+
test_kill_ipfs_daemon
62+
63+
test_expect_success "ipfs repo gc fully reverse ipfs add (part 2)" '
5964
actual=$(directory_size "$IPFS_PATH/blocks") &&
6065
{ test "$actual" -eq "$expected" || test_fsh echo "$actual != $expected"; } &&
6166
{ test "$actual" -gt "0" || test_fsh echo "not($actual > 0)"; }
6267
'
6368

69+
test_launch_ipfs_daemon --offline
70+
6471
test_expect_success "file no longer pinned" '
6572
ipfs pin ls --type=recursive --quiet >actual2 &&
6673
test_expect_code 1 grep $HASH actual2

0 commit comments

Comments
 (0)