ipld-eth-server/vendor/github.com/ipfs/go-ipfs/test/sharness/t0046-id-hash.sh
2019-12-02 13:24:46 -06:00

110 lines
2.7 KiB
Bash
Executable File

#!/usr/bin/env bash
test_description="Test basic operations with identity hash"
. lib/test-lib.sh
test_init_ipfs
ID_HASH0=z25RnHTQ7DveGAsV6YDSDR8EkWvD
ID_HASH0_CONTENTS=jkD98jkD975hkD8
test_expect_success "can fetch random id hash" '
ipfs cat $ID_HASH0 > expected &&
echo $ID_HASH0_CONTENTS > actual &&
test_cmp expected actual
'
test_expect_success "can pin random id hash" '
ipfs pin add $ID_HASH0
'
test_expect_success "ipfs add succeeds with id hash" '
echo "djkd7jdkd7jkHHG" > junk.txt &&
HASH=$(ipfs add -q --hash=id junk.txt)
'
test_expect_success "content not actually added" '
ipfs refs local | fgrep -q -v $HASH
'
test_expect_success "but can fetch it anyway" '
ipfs cat $HASH > actual &&
test_cmp junk.txt actual
'
test_expect_success "block rm does nothing" '
ipfs pin rm $HASH &&
ipfs block rm $HASH
'
test_expect_success "can still fetch it" '
ipfs cat $HASH > actual
test_cmp junk.txt actual
'
test_expect_success "ipfs add --inline works as expected" '
echo $ID_HASH0_CONTENTS > afile &&
HASH=$(ipfs add -q --inline afile)
'
test_expect_success "ipfs add --inline uses id multihash" '
MHTYPE=`cid-fmt %h $HASH`
echo "mhtype is $MHTYPE"
test "$MHTYPE" = id
'
test_expect_success "ipfs add --inline --raw-leaves works as expected" '
echo $ID_HASH0_CONTENTS > afile &&
HASH=$(ipfs add -q --inline --raw-leaves afile)
'
test_expect_success "ipfs add --inline --raw-leaves outputs the correct hash" '
echo "$ID_HASH0" = "$HASH" &&
test "$ID_HASH0" = "$HASH"
'
test_expect_success "create 1000 bytes file and get its hash" '
random 1000 2 > 1000bytes &&
HASH0=$(ipfs add -q --raw-leaves --only-hash 1000bytes)
'
test_expect_success "ipfs add --inline --raw-leaves works as expected on large file" '
HASH=$(ipfs add -q --inline --raw-leaves 1000bytes)
'
test_expect_success "ipfs add --inline --raw-leaves outputs the correct hash on large file" '
echo "$HASH0" = "$HASH" &&
test "$HASH0" = "$HASH"
'
test_expect_success "enable filestore" '
ipfs config --json Experimental.FilestoreEnabled true
'
test_expect_success "can fetch random id hash (filestore enabled)" '
ipfs cat $ID_HASH0 > expected &&
echo $ID_HASH0_CONTENTS > actual &&
test_cmp expected actual
'
test_expect_success "can pin random id hash (filestore enabled)" '
ipfs pin add $ID_HASH0
'
test_expect_success "ipfs add succeeds with id hash and --nocopy" '
echo "djkd7jdkd7jkHHG" > junk.txt &&
HASH=$(ipfs add -q --hash=id --nocopy junk.txt)
'
test_expect_success "content not actually added (filestore enabled)" '
ipfs refs local | fgrep -q -v $HASH
'
test_expect_success "but can fetch it anyway (filestore enabled)" '
ipfs cat $HASH > actual &&
test_cmp junk.txt actual
'
test_done