Skip to content

Commit

Permalink
test: files chmod|touch with cidv1
Browse files Browse the repository at this point in the history
switching to version with fix from
ipfs/boxo#653 (comment)
and adding tests
  • Loading branch information
lidel committed Aug 20, 2024
1 parent 32c6a1c commit 55dad60
Show file tree
Hide file tree
Showing 7 changed files with 39 additions and 9 deletions.
2 changes: 1 addition & 1 deletion docs/examples/kubo-as-a-library/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ toolchain go1.22.0
replace github.com/ipfs/kubo => ./../../..

require (
github.com/ipfs/boxo v0.22.1-0.20240814075207-b27ba953ad58
github.com/ipfs/boxo v0.22.1-0.20240820213309-f4259d68d2d1
github.com/ipfs/kubo v0.0.0-00010101000000-000000000000
github.com/libp2p/go-libp2p v0.36.2
github.com/multiformats/go-multiaddr v0.13.0
Expand Down
4 changes: 2 additions & 2 deletions docs/examples/kubo-as-a-library/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -266,8 +266,8 @@ github.com/ipfs-shipyard/nopfs/ipfs v0.13.2-0.20231027223058-cde3b5ba964c h1:7Uy
github.com/ipfs-shipyard/nopfs/ipfs v0.13.2-0.20231027223058-cde3b5ba964c/go.mod h1:6EekK/jo+TynwSE/ZOiOJd4eEvRXoavEC3vquKtv4yI=
github.com/ipfs/bbloom v0.0.4 h1:Gi+8EGJ2y5qiD5FbsbpX/TMNcJw8gSqr7eyjHa4Fhvs=
github.com/ipfs/bbloom v0.0.4/go.mod h1:cS9YprKXpoZ9lT0n/Mw/a6/aFV6DTjTLYHeA+gyqMG0=
github.com/ipfs/boxo v0.22.1-0.20240814075207-b27ba953ad58 h1:3HLEGJd/jHeZGewrYa5JL0P1hOdCizVqpwMVkDRTLso=
github.com/ipfs/boxo v0.22.1-0.20240814075207-b27ba953ad58/go.mod h1:7feBHe9XsCCO7TGxAHIwwdgvDTcWARXP6SaD3XvqTXI=
github.com/ipfs/boxo v0.22.1-0.20240820213309-f4259d68d2d1 h1:zrQUhrACz8sezEAuY74BSbCojXoxAmSbMWeoqfwx0dI=
github.com/ipfs/boxo v0.22.1-0.20240820213309-f4259d68d2d1/go.mod h1:7feBHe9XsCCO7TGxAHIwwdgvDTcWARXP6SaD3XvqTXI=
github.com/ipfs/go-bitfield v1.1.0 h1:fh7FIo8bSwaJEh6DdTWbCeZ1eqOaOkKFI74SCnsWbGA=
github.com/ipfs/go-bitfield v1.1.0/go.mod h1:paqf1wjq/D2BBmzfTVFlJQ9IlFOZpg422HL0HqsGWHU=
github.com/ipfs/go-bitswap v0.11.0 h1:j1WVvhDX1yhG32NTC9xfxnqycqYIlhzEzLXG/cU1HyQ=
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ require (
github.com/hashicorp/go-version v1.6.0
github.com/ipfs-shipyard/nopfs v0.0.12
github.com/ipfs-shipyard/nopfs/ipfs v0.13.2-0.20231027223058-cde3b5ba964c
github.com/ipfs/boxo v0.22.1-0.20240814075207-b27ba953ad58
github.com/ipfs/boxo v0.22.1-0.20240820213309-f4259d68d2d1
github.com/ipfs/go-block-format v0.2.0
github.com/ipfs/go-cid v0.4.1
github.com/ipfs/go-cidutil v0.1.0
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -330,8 +330,8 @@ github.com/ipfs-shipyard/nopfs/ipfs v0.13.2-0.20231027223058-cde3b5ba964c h1:7Uy
github.com/ipfs-shipyard/nopfs/ipfs v0.13.2-0.20231027223058-cde3b5ba964c/go.mod h1:6EekK/jo+TynwSE/ZOiOJd4eEvRXoavEC3vquKtv4yI=
github.com/ipfs/bbloom v0.0.4 h1:Gi+8EGJ2y5qiD5FbsbpX/TMNcJw8gSqr7eyjHa4Fhvs=
github.com/ipfs/bbloom v0.0.4/go.mod h1:cS9YprKXpoZ9lT0n/Mw/a6/aFV6DTjTLYHeA+gyqMG0=
github.com/ipfs/boxo v0.22.1-0.20240814075207-b27ba953ad58 h1:3HLEGJd/jHeZGewrYa5JL0P1hOdCizVqpwMVkDRTLso=
github.com/ipfs/boxo v0.22.1-0.20240814075207-b27ba953ad58/go.mod h1:7feBHe9XsCCO7TGxAHIwwdgvDTcWARXP6SaD3XvqTXI=
github.com/ipfs/boxo v0.22.1-0.20240820213309-f4259d68d2d1 h1:zrQUhrACz8sezEAuY74BSbCojXoxAmSbMWeoqfwx0dI=
github.com/ipfs/boxo v0.22.1-0.20240820213309-f4259d68d2d1/go.mod h1:7feBHe9XsCCO7TGxAHIwwdgvDTcWARXP6SaD3XvqTXI=
github.com/ipfs/go-bitfield v1.1.0 h1:fh7FIo8bSwaJEh6DdTWbCeZ1eqOaOkKFI74SCnsWbGA=
github.com/ipfs/go-bitfield v1.1.0/go.mod h1:paqf1wjq/D2BBmzfTVFlJQ9IlFOZpg422HL0HqsGWHU=
github.com/ipfs/go-bitswap v0.11.0 h1:j1WVvhDX1yhG32NTC9xfxnqycqYIlhzEzLXG/cU1HyQ=
Expand Down
2 changes: 1 addition & 1 deletion test/dependencies/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ require (
github.com/hexops/gotextdiff v1.0.3 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/ipfs/bbloom v0.0.4 // indirect
github.com/ipfs/boxo v0.22.1-0.20240814075207-b27ba953ad58 // indirect
github.com/ipfs/boxo v0.22.1-0.20240820213309-f4259d68d2d1 // indirect
github.com/ipfs/go-block-format v0.2.0 // indirect
github.com/ipfs/go-cid v0.4.1 // indirect
github.com/ipfs/go-datastore v0.6.0 // indirect
Expand Down
4 changes: 2 additions & 2 deletions test/dependencies/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -280,8 +280,8 @@ github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
github.com/ipfs/bbloom v0.0.4 h1:Gi+8EGJ2y5qiD5FbsbpX/TMNcJw8gSqr7eyjHa4Fhvs=
github.com/ipfs/bbloom v0.0.4/go.mod h1:cS9YprKXpoZ9lT0n/Mw/a6/aFV6DTjTLYHeA+gyqMG0=
github.com/ipfs/boxo v0.22.1-0.20240814075207-b27ba953ad58 h1:3HLEGJd/jHeZGewrYa5JL0P1hOdCizVqpwMVkDRTLso=
github.com/ipfs/boxo v0.22.1-0.20240814075207-b27ba953ad58/go.mod h1:7feBHe9XsCCO7TGxAHIwwdgvDTcWARXP6SaD3XvqTXI=
github.com/ipfs/boxo v0.22.1-0.20240820213309-f4259d68d2d1 h1:zrQUhrACz8sezEAuY74BSbCojXoxAmSbMWeoqfwx0dI=
github.com/ipfs/boxo v0.22.1-0.20240820213309-f4259d68d2d1/go.mod h1:7feBHe9XsCCO7TGxAHIwwdgvDTcWARXP6SaD3XvqTXI=
github.com/ipfs/go-block-format v0.2.0 h1:ZqrkxBA2ICbDRbK8KJs/u0O3dlp6gmAuuXUJNiW1Ycs=
github.com/ipfs/go-block-format v0.2.0/go.mod h1:+jpL11nFx5A/SPpsoBn6Bzkra/zaArfSmsknbPMYgzM=
github.com/ipfs/go-cid v0.4.1 h1:A/T3qGvxi4kpKWWcPC/PgbvDA2bjVLO7n4UeVwnbs/s=
Expand Down
30 changes: 30 additions & 0 deletions test/sharness/t0047-add-mode-mtime.sh
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,20 @@ test_file() {
test $(stat -c "%a" "$OUTFILE") = 444
'

# special case, because storing mode requires dag-pb envelope
# and when dealing with CIDv1 we can have 'raw' block instead of 'dag-pb'
# so it needs to be converted before adding attribute
test_expect_success "can add file mode to cidv1 raw block [$1]" '
NAME=$(mk_name) &&
HASH=$(date | ipfs add -q --cid-version 1 --raw-leaves=true) &&
OUTFILE=$(mk_file "${NAME}") &&
ipfs files cp "/ipfs/$HASH" /$NAME &&
ipfs files chmod 445 /$NAME &&
HASH2=$(ipfs files stat /$NAME|head -1) &&
ipfs get -o "$OUTFILE" $HASH2 &&
test $(stat -c "%a" "$OUTFILE") = 445
'

test_expect_success "can change file modification time [$1]" '
NAME=$(mk_name) &&
OUTFILE="$(mk_file "$NAME")" &&
Expand All @@ -180,6 +194,22 @@ test_file() {
test $(stat -c "%Y" "$OUTFILE") -gt $NOW
'

# special case, because storing mtime requires dag-pb envelope
# and when dealing with CIDv1 we can have 'raw' block instead of 'dag-pb'
# so it needs to be converted to dag-pb before adding attribute
test_expect_success "can add file modification time to cidv1 raw block [$1]" '
NAME=$(mk_name) &&
OUTFILE="$(mk_file "$NAME")" &&
EXPECTED="$CUSTOM_MTIME" &&
HASH=$(date | ipfs add -q --cid-version 1 --raw-leaves=true) &&
ipfs files cp "/ipfs/$HASH" /$NAME &&
ipfs files touch --mtime=$EXPECTED /$NAME &&
test $(ipfs files stat --format="<mtime-secs>" "/$NAME") -eq $EXPECTED &&
HASH=$(ipfs files stat /$NAME|head -1) &&
ipfs get -o "$OUTFILE" "$HASH" &&
test $(stat -c "%Y" "$OUTFILE") -eq $EXPECTED
'

test_expect_success "can change file modification time nanoseconds [$1]" '
NAME=$(mk_name) &&
echo test|ipfs files write --create /$NAME &&
Expand Down

0 comments on commit 55dad60

Please sign in to comment.