resolve sharness test
License: MIT Signed-off-by: Juan Batiz-Benet <juan@benet.ai>
Juan Batiz-Benet committed
Sep 7, 2015 at 02:12 UTC
dd8267b9e08d14103aeb5bf590a5b43038190090
1 file changed
+84
test/sharness/t0160-resolve.sh
new
+84
@@ -0,0 +1,84 @@
1
+#!/bin/sh
2
+
3
+test_description="Test resolve command"
4
+
5
+. lib/test-lib.sh
6
+
7
+test_init_ipfs
8
+
9
+test_expect_success "resolve: prepare files" '
10
+ mkdir -p a/b &&
11
+ echo "a/b/c" >a/b/c &&
12
+ a_hash=$(ipfs add -q -r a | tail -n1) &&
13
+ b_hash=$(ipfs add -q -r a/b | tail -n1) &&
14
+ c_hash=$(ipfs add -q -r a/b/c | tail -n1)
15
+'
16
+
17
+test_expect_success "resolve: prepare name" '
18
+ id_hash=$(ipfs id -f="<id>") &&
19
+ ipfs name publish "$a_hash" &&
20
+ printf "/ipfs/$a_hash" >expected_nameval &&
21
+ ipfs name resolve >actual_nameval &&
22
+ test_cmp expected_nameval actual_nameval
23
+'
24
+
25
+test_resolve() {
26
+ src=$1
27
+ dst=$2
28
+
29
+ test_expect_success "resolve succeeds: $src" '
30
+ ipfs resolve "$src" >actual
31
+ '
32
+
33
+ test_expect_success "resolved correctly: $src -> $dst" '
34
+ printf "$dst" >expected &&
35
+ test_cmp expected actual
36
+ '
37
+}
38
+
39
+test_resolve_cmd() {
40
+
41
+ test_resolve "/ipfs/$a_hash" "/ipfs/$a_hash"
42
+ test_resolve "/ipfs/$a_hash/b" "/ipfs/$b_hash"
43
+ test_resolve "/ipfs/$a_hash/b/c" "/ipfs/$c_hash"
44
+
45
+ test_resolve "/ipns/$id_hash" "/ipfs/$a_hash"
46
+ test_resolve "/ipns/$id_hash/b" "/ipfs/$b_hash"
47
+ test_resolve "/ipns/$id_hash/b/c" "/ipfs/$c_hash"
48
+}
49
+
50
+#todo remove this once the online resolve is fixed
51
+test_resolve_fail() {
52
+ src=$1
53
+ dst=$2
54
+
55
+ test_expect_failure "resolve succeeds: $src" '
56
+ ipfs resolve "$src" >actual
57
+ '
58
+
59
+ test_expect_failure "resolved correctly: $src -> $dst" '
60
+ printf "$dst" >expected &&
61
+ test_cmp expected actual
62
+ '
63
+}
64
+
65
+test_resolve_cmd_fail() {
66
+
67
+ test_resolve_fail "/ipfs/$a_hash" "/ipfs/$a_hash"
68
+ test_resolve_fail "/ipfs/$a_hash/b" "/ipfs/$b_hash"
69
+ test_resolve_fail "/ipfs/$a_hash/b/c" "/ipfs/$c_hash"
70
+
71
+ test_resolve_fail "/ipns/$id_hash" "/ipfs/$a_hash"
72
+ test_resolve_fail "/ipns/$id_hash/b" "/ipfs/$b_hash"
73
+ test_resolve_fail "/ipns/$id_hash/b/c" "/ipfs/$c_hash"
74
+}
75
+
76
+# should work offline
77
+test_resolve_cmd
78
+
79
+# should work online
80
+test_launch_ipfs_daemon
81
+test_resolve_cmd_fail
82
+test_kill_ipfs_daemon
83
+
84
+test_done