blob: ae000480de1b2a295dd9642b03296857177e0d9c (
plain)
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
|
module attach
import common
test Attach:
let services = "attach,sync"
spawn as p1
spawn as p2
send "create-identity Device1 Owner" to p1
send "create-identity Device2" to p2
send "watch-local-identity" to p1
send "watch-local-identity" to p2
send "start-server services $services" to p1
send "start-server services $services" to p2
expect from p1:
/local-identity Device1 Owner/
/peer 1 addr ${p2.node.ip} 29665/
/peer 1 id Device2/
expect from p2:
/local-identity Device2/
/peer 1 addr ${p1.node.ip} 29665/
/peer 1 id Device1 Owner/
send "attach-to 1" to p2
expect /attach-request 1 .*/ from p1
expect /attach-response 1 .*/ from p2
send "attach-reject 1" to p1
expect /attach-request-failed 1 user/ from p1
expect /attach-response-failed 1 rejected/ from p2
send "attach-to 1" to p2
expect /attach-request 1 .*/ from p1
expect /attach-response 1 .*/ from p2
send "attach-reject 1" to p2
expect /attach-request-failed 1 rejected/ from p1
expect /attach-response-failed 1 user/ from p2
send "attach-to 1" to p2
expect /attach-request 1 ([0-9]*)/ from p1 capture code1
expect /attach-response 1 ([0-9]*)/ from p2 capture code2
guard (code1 == code2)
send "attach-accept 1" to p1
send "attach-accept 1" to p2
expect /attach-request-done 1/ from p1
expect /attach-response-done 1/ from p2
expect /local-identity Device2 Owner/ from p2
expect /peer 1 id Device2 Owner/ from p1
test SyncAfterAttach:
let services_1 = "attach"
let services_2 = "discovery,sync"
let services_d = "discovery"
subnet sd
subnet s1
subnet s2
subnet s3
node nd on sd
node n1 on s1
node n2 on s2
node n3 on s3
local:
spawn as pd on nd
spawn as p1 on n1
spawn as p2 on n2
spawn as p3 on n3
send "create-identity Discovery" to pd
send "create-identity Device1 Owner" to p1
send "create-identity Device2" to p2
send "create-identity Device3" to p3
expect /create-identity-done ref $refpat.*/ from pd
expect /create-identity-done ref $refpat.*/ from p1
expect /create-identity-done ref $refpat.*/ from p2
expect /create-identity-done ref $refpat.*/ from p3
send "start-server services $services_1" to p1
for p in [ p2, p3 ]:
with p:
send "start-server services $services_1"
send "peer-add ${p1.node.ip}"
expect /peer 1 addr ${p1.node.ip} 29665/
expect /peer 1 id Device1 Owner/
expect /peer ([0-9]+) addr ${p.node.ip} 29665/ from p1 capture pidx
expect /peer $pidx id Device./ from p1
send "attach-to 1"
expect /attach-request $pidx ([0-9]*)/ from p1 capture code1
expect /attach-response 1 ([0-9]*)/ capture code2
guard (code1 == code2)
send "attach-accept $pidx" to p1
send "attach-accept 1"
expect /attach-request-done $pidx/ from p1
expect /attach-response-done 1/
spawn as pd on nd
spawn as p1 on n1
spawn as p2 on n2
spawn as p3 on n3
send "start-server services $services_d" to pd
for p in [ p1, p2, p3 ]:
send "start-server services $services_2" to p
# Shared identity sync after explicit direct connection
send "peer-add ${p1.node.ip}" to p2
expect /peer 1 addr ${p2.node.ip} 29665/ from p1
expect /peer 1 id Device. Owner/ from p1
# Shared identity sync after automatic discovery
for p in [ p1, p3 ]:
send "peer-add ${pd.node.ip}" to p
expect /peer 2 addr ${pd.node.ip} 29665/ from p1
expect /peer 2 id Discovery/ from p1
expect /peer 3 addr ${p3.node.ip} 29665/ from p1
expect /peer 3 id Device. Owner/ from p1
|