From 5a61bedef5bc83ced329f437ab7be5b414675700 Mon Sep 17 00:00:00 2001 From: guseggert <877588+guseggert@users.noreply.github.com> Date: Tue, 28 Sep 2021 09:05:47 -0400 Subject: [PATCH] test: add sharness test for reading ADLs with FUSE --- test/sharness/lib/test-lib.sh | 2 +- test/sharness/t0032-mount-sharded.sh | 68 ++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+), 1 deletion(-) create mode 100755 test/sharness/t0032-mount-sharded.sh diff --git a/test/sharness/lib/test-lib.sh b/test/sharness/lib/test-lib.sh index a20668f50e1..a68c5d9737b 100644 --- a/test/sharness/lib/test-lib.sh +++ b/test/sharness/lib/test-lib.sh @@ -287,7 +287,7 @@ test_launch_ipfs_daemon_without_network() { do_umount() { if [ "$(uname -s)" = "Linux" ]; then - fusermount -u "$1" + fusermount -z -u "$1" else umount "$1" fi diff --git a/test/sharness/t0032-mount-sharded.sh b/test/sharness/t0032-mount-sharded.sh new file mode 100755 index 00000000000..db9a12ca2f6 --- /dev/null +++ b/test/sharness/t0032-mount-sharded.sh @@ -0,0 +1,68 @@ +#!/usr/bin/env bash +# +# Copyright (c) 2021 Protocol Labs +# MIT Licensed; see the LICENSE file in this repository. +# + +test_description="Test mount command with sharding enabled" + +. lib/test-lib.sh + +if ! test_have_prereq FUSE; then + skip_all='skipping mount sharded tests, fuse not available' + test_done +fi + +test_init_ipfs + +test_expect_success 'enable sharding' ' + ipfs config --json Experimental.ShardingEnabled true +' + +test_launch_ipfs_daemon +test_mount_ipfs + +# we're testing nested subdirs which ensures that IPLD ADLs work +test_expect_success 'setup test data' ' + mkdir testdata && + echo a > testdata/a && + mkdir testdata/subdir && + echo b > testdata/subdir/b +' + +HASH=QmY59Ufw8zA2BxGPMTcfXg86JVed81Qbxeq5rDkHWSLN1m + +test_expect_success 'can add the data' ' + echo $HASH > expected_hash && + ipfs add -r -Q testdata > actual_hash && + test_cmp expected_hash actual_hash +' + +test_expect_success 'can read the data' ' + echo a > expected_a && + cat "ipfs/$HASH/a" > actual_a && + test_cmp expected_a actual_a && + echo b > expected_b && + cat "ipfs/$HASH/subdir/b" > actual_b && + test_cmp expected_b actual_b +' + +test_expect_success 'can list directories' ' + printf "a\nsubdir\n" > expected_ls && + ls -1 "ipfs/$HASH" > actual_ls && + test_cmp expected_ls actual_ls && + printf "b\n" > expected_ls_subdir && + ls -1 "ipfs/$HASH/subdir" > actual_ls_subdir && + test_cmp expected_ls_subdir actual_ls_subdir +' + +test_expect_success "unmount" ' + do_umount "$(pwd)/ipfs" && + do_umount "$(pwd)/ipns" +' + +test_expect_success 'cleanup' 'rmdir ipfs ipns' + +test_kill_ipfs_daemon + +test_done