/
t0272-urlstore.sh
executable file
·135 lines (107 loc) · 4.81 KB
/
t0272-urlstore.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#!/usr/bin/env bash
#
# Copyright (c) 2017 Jeromy Johnson
# MIT Licensed; see the LICENSE file in this repository.
#
test_description="Test out the urlstore functionality"
. lib/test-lib.sh
test_init_ipfs
test_expect_success "create some random files" '
random 2222 7 > file1 &&
random 500000 7 > file2 &&
random 50000000 7 > file3
'
test_expect_success "add files using trickle dag format without raw leaves" '
HASH1a=$(ipfs add -q --trickle --raw-leaves=false file1) &&
HASH2a=$(ipfs add -q --trickle --raw-leaves=false file2) &&
HASH3a=$(ipfs add -q --trickle --raw-leaves=false file3)
'
test_launch_ipfs_daemon --offline
test_expect_success "make sure files can be retrived via the gateway" '
curl http://127.0.0.1:$GWAY_PORT/ipfs/$HASH1a -o file1.actual &&
test_cmp file1 file1.actual &&
curl http://127.0.0.1:$GWAY_PORT/ipfs/$HASH2a -o file2.actual &&
test_cmp file2 file2.actual &&
curl http://127.0.0.1:$GWAY_PORT/ipfs/$HASH3a -o file3.actual &&
test_cmp file3 file3.actual
'
test_expect_success "add files without enabling url store" '
test_must_fail ipfs urlstore add http://127.0.0.1:$GWAY_PORT/ipfs/$HASH1a &&
test_must_fail ipfs urlstore add http://127.0.0.1:$GWAY_PORT/ipfs/$HASH2a
'
test_kill_ipfs_daemon
test_expect_success "enable urlstore" '
ipfs config --json Experimental.UrlstoreEnabled true
'
test_launch_ipfs_daemon --offline
test_expect_success "add files using gateway address via url store" '
HASH1=$(ipfs urlstore add http://127.0.0.1:$GWAY_PORT/ipfs/$HASH1a) &&
HASH2=$(ipfs urlstore add http://127.0.0.1:$GWAY_PORT/ipfs/$HASH2a) &&
ipfs pin add $HASH1 $HASH2
'
test_expect_success "make sure hashes are different" '
test $HASH1a != $HASH1 &&
test $HASH2a != $HASH2
'
test_expect_success "get files via urlstore" '
ipfs get $HASH1 -o file1.actual &&
test_cmp file1 file1.actual &&
ipfs get $HASH2 -o file2.actual &&
test_cmp file2 file2.actual
'
cat <<EOF | sort > ls_expect
zb2rhX1q5oFFzEkPNsTe1Y8osUdFqSQGjUWRZsqC9fbY6WVSk 262144 http://127.0.0.1:$GWAY_PORT/ipfs/QmUow2T4P69nEsqTQDZCt8yg9CPS8GFmpuDAr5YtsPhTdM 0
zb2rhYbKFn1UWGHXaAitcdVTkDGTykX8RFpGWzRFuLpoe9VE4 237856 http://127.0.0.1:$GWAY_PORT/ipfs/QmUow2T4P69nEsqTQDZCt8yg9CPS8GFmpuDAr5YtsPhTdM 262144
zb2rhjddJ5DNzBrFu8G6CP1ApY25BukwCeskXHzN1H18CiVVZ 2222 http://127.0.0.1:$GWAY_PORT/ipfs/QmcHm3BL2cXuQ6rJdKQgPrmT9suqGkfy2KzH3MkXPEBXU6 0
EOF
test_expect_success "ipfs filestore ls works with urls" '
ipfs filestore ls | sort > ls_actual &&
test_cmp ls_expect ls_actual
'
cat <<EOF | sort > verify_expect
ok zb2rhX1q5oFFzEkPNsTe1Y8osUdFqSQGjUWRZsqC9fbY6WVSk 262144 http://127.0.0.1:$GWAY_PORT/ipfs/QmUow2T4P69nEsqTQDZCt8yg9CPS8GFmpuDAr5YtsPhTdM 0
ok zb2rhYbKFn1UWGHXaAitcdVTkDGTykX8RFpGWzRFuLpoe9VE4 237856 http://127.0.0.1:$GWAY_PORT/ipfs/QmUow2T4P69nEsqTQDZCt8yg9CPS8GFmpuDAr5YtsPhTdM 262144
ok zb2rhjddJ5DNzBrFu8G6CP1ApY25BukwCeskXHzN1H18CiVVZ 2222 http://127.0.0.1:$GWAY_PORT/ipfs/QmcHm3BL2cXuQ6rJdKQgPrmT9suqGkfy2KzH3MkXPEBXU6 0
EOF
test_expect_success "ipfs filestore verify works with urls" '
ipfs filestore verify | sort > verify_actual &&
test_cmp verify_expect verify_actual
'
test_expect_success "remove original hashes from local gateway" '
ipfs pin rm $HASH1a $HASH2a &&
ipfs repo gc > /dev/null
'
test_expect_success "gatway no longer has files" '
test_must_fail curl -f http://127.0.0.1:$GWAY_PORT/ipfs/$HASH1a -o file1.actual
test_must_fail curl -f http://127.0.0.1:$GWAY_PORT/ipfs/$HASH2a -o file2.actual
'
cat <<EOF | sort > verify_expect_2
error zb2rhX1q5oFFzEkPNsTe1Y8osUdFqSQGjUWRZsqC9fbY6WVSk 262144 http://127.0.0.1:$GWAY_PORT/ipfs/QmUow2T4P69nEsqTQDZCt8yg9CPS8GFmpuDAr5YtsPhTdM 0
error zb2rhYbKFn1UWGHXaAitcdVTkDGTykX8RFpGWzRFuLpoe9VE4 237856 http://127.0.0.1:$GWAY_PORT/ipfs/QmUow2T4P69nEsqTQDZCt8yg9CPS8GFmpuDAr5YtsPhTdM 262144
error zb2rhjddJ5DNzBrFu8G6CP1ApY25BukwCeskXHzN1H18CiVVZ 2222 http://127.0.0.1:$GWAY_PORT/ipfs/QmcHm3BL2cXuQ6rJdKQgPrmT9suqGkfy2KzH3MkXPEBXU6 0
EOF
test_expect_success "ipfs filestore verify is correct" '
ipfs filestore verify | sort > verify_actual_2 &&
test_cmp verify_expect_2 verify_actual_2
'
test_expect_success "files can not be retrieved via the urlstore" '
test_must_fail ipfs cat $HASH1 > /dev/null &&
test_must_fail ipfs cat $HASH2 > /dev/null
'
test_expect_success "add large file using gateway address via url store" '
HASH3=$(ipfs urlstore add http://127.0.0.1:$GWAY_PORT/ipfs/$HASH3a)
'
test_expect_success "make sure hashes are different" '
test $HASH3a != $HASH3
'
test_expect_success "get large file via urlstore" '
ipfs get $HASH3 -o file3.actual &&
test_cmp file3 file3.actual
'
test_kill_ipfs_daemon
test_expect_success "files can not be retrieved via the urlstore" '
test_must_fail ipfs cat $HASH1 > /dev/null &&
test_must_fail ipfs cat $HASH2 > /dev/null &&
test_must_fail ipfs cat $HASH3 > /dev/null
'
test_done