forked from servalproject/serval-dna
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmeshmb
executable file
·174 lines (162 loc) · 6.73 KB
/
meshmb
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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
#!/bin/bash
source "${0%/*}/../testframework.sh"
source "${0%/*}/../testdefs.sh"
source "${0%/*}/../testdefs_rhizome.sh"
rexp_age='[0-9]*'
setup_identities() {
setup_servald
set_instance +A
executeOk_servald config \
set debug.meshmb on \
set log.console.level debug \
set log.console.show_time on
create_identities $1
}
teardown() {
stop_all_servald_servers
kill_all_servald_processes
assert_no_servald_processes
report_all_servald_servers
}
doc_meshmbSend="Send broadcast meshmb message"
setup_meshmbSend() {
setup_identities 1
}
test_meshmbSend() {
executeOk_servald meshmb send $IDA1 "Message 1"
tfw_cat --stdout --stderr
executeOk_servald rhizome export bundle $IDA1 broadcast.manifest broadcast
tfw_cat -h broadcast.manifest
tfw_cat -h broadcast
executeOk_servald meshmb send $IDA1 "Message 2"
tfw_cat --stdout --stderr
executeOk_servald rhizome export bundle $IDA1 broadcast2.manifest broadcast2
tfw_cat -h broadcast2.manifest
tfw_cat -h broadcast2
}
doc_meshmbRead="Read meshmb messages"
setup_meshmbRead() {
setup_identities 1
executeOk_servald meshmb send $IDA1 "Message 1"
executeOk_servald meshmb send $IDA1 "Message 2"
}
test_meshmbRead() {
executeOk_servald meshmb read $IDA1
assertStdoutGrep --matches=1 "^_id:offset:age:message$"
assertStdoutGrep --matches=1 "^0:30:${rexp_age}:Message 2$"
assertStdoutGrep --matches=1 "^1:12:${rexp_age}:Message 1$"
assertStdoutLineCount '==' 4
}
doc_meshmbListFeeds="List meshmb feeds"
setup_meshmbListFeeds() {
setup_identities 3
executeOk_servald meshmb send $IDA1 "Message 1"
executeOk_servald meshmb send $IDA2 "Message 2"
executeOk_servald meshmb send $IDA3 "Message 3"
}
test_meshmbListFeeds() {
executeOk_servald meshmb find
tfw_cat --stdout
assertStdoutGrep --matches=1 "^_id:id:author:version:date:name$"
assertStdoutGrep --matches=1 ":${IDA1}:${SIDA1}:"
assertStdoutGrep --matches=1 ":${IDA2}:${SIDA2}:"
assertStdoutGrep --matches=1 ":${IDA3}:${SIDA3}:"
assertStdoutLineCount '==' 5
}
doc_meshmbFollow="Follow another feed"
setup_meshmbFollow() {
setup_identities 3
executeOk_servald keyring set did $SIDA1 "" "Feed A"
executeOk_servald keyring set did $SIDA2 "" "Feed B"
executeOk_servald keyring set did $SIDA3 "" "Feed C"
executeOk_servald meshmb send $IDA1 "Message 1"
executeOk_servald meshmb send $IDA2 "Message 2"
executeOk_servald meshmb send $IDA3 "Message 3"
}
test_meshmbFollow() {
executeOk_servald meshmb follow $IDA1 $IDA2
executeOk_servald meshmb list following $IDA1
assertStdoutGrep --matches=1 ":$IDA2:$SIDA2:false:Feed B:[0-9]\+:Message 2\$"
assertStdoutGrep --matches=0 ":$IDA3:$SIDA3:false:Feed C:[0-9]\+:Message 3\$"
executeOk_servald meshmb follow $IDA1 $IDA3
executeOk_servald meshmb list following $IDA1
assertStdoutGrep --matches=1 ":$IDA2:$SIDA2:false:Feed B:[0-9]\+:Message 2\$"
assertStdoutGrep --matches=1 ":$IDA3:$SIDA3:false:Feed C:[0-9]\+:Message 3\$"
executeOk_servald meshmb ignore $IDA1 $IDA2
executeOk_servald meshmb list following $IDA1
assertStdoutGrep --matches=0 ":$IDA2:$SIDA2:false:Feed B:[0-9]\+:Message 2\$"
assertStdoutGrep --matches=1 ":$IDA3:$SIDA3:false:Feed C:[0-9]\+:Message 3\$"
}
doc_meshmbThreading="Thread incoming message feeds"
setup_meshmbThreading() {
setup_identities 5
executeOk_servald keyring set did $SIDA1 "" "Feed A"
executeOk_servald keyring set did $SIDA2 "" "Feed B"
executeOk_servald keyring set did $SIDA3 "" "Feed C"
executeOk_servald keyring set did $SIDA4 "" "Feed D"
executeOk_servald keyring set did $SIDA5 "" "Feed E"
executeOk_servald meshmb send $IDA2 "Message 2"
executeOk_servald meshmb send $IDA3 "Message 3"
}
test_meshmbThreading() {
executeOk_servald meshmb follow $IDA1 $IDA2
executeOk_servald meshmb follow $IDA1 $IDA3
executeOk_servald meshmb activity $IDA1
assertStdoutGrep --matches=1 "0:$IDA3:$SIDA3:Feed C:[0-9]\+:[0-9]\+:Message 3\$"
assertStdoutGrep --matches=1 "1:$IDA2:$SIDA2:Feed B:[0-9]\+:[0-9]\+:Message 2\$"
executeOk_servald meshmb send $IDA4 "Message 4"
executeOk_servald meshmb follow $IDA1 $IDA4
executeOk_servald meshmb send $IDA4 "Message 5"
executeOk_servald meshmb activity $IDA1
assertStdoutGrep --matches=1 "0:$IDA4:$SIDA4:Feed D:[0-9]\+:[0-9]\+:Message 5\$"
assertStdoutGrep --matches=1 "1:$IDA4:$SIDA4:Feed D:[0-9]\+:[0-9]\+:Message 4\$"
executeOk_servald meshmb send $IDA5 "Message 6"
executeOk_servald meshmb follow $IDA1 $IDA5
executeOk_servald meshmb activity $IDA1
assertStdoutGrep --matches=1 "0:$IDA5:$SIDA5:Feed E:[0-9]\+:[0-9]\+:Message 6\$"
executeOk_servald meshmb send $IDA2 "Message 7"
executeOk_servald meshmb activity $IDA1
executeOk_servald meshmb send $IDA3 "Message 8"
executeOk_servald meshmb activity $IDA1
executeOk_servald meshmb send $IDA4 "Message 9"
executeOk_servald meshmb activity $IDA1
executeOk_servald meshmb send $IDA5 "Message 10"
executeOk_servald meshmb activity $IDA1
executeOk_servald meshmb send $IDA1 "Message 11"
executeOk_servald meshmb activity $IDA1
tfw_cat --stdout
assertStdoutGrep --matches=1 "0:$IDA1:$SIDA1:Feed A:[0-9]\+:[0-9]\+:Message 11\$"
assertStdoutGrep --matches=1 "1:$IDA5:$SIDA5:Feed E:[0-9]\+:[0-9]\+:Message 10\$"
assertStdoutGrep --matches=1 "2:$IDA4:$SIDA4:Feed D:[0-9]\+:[0-9]\+:Message 9\$"
assertStdoutGrep --matches=1 "3:$IDA3:$SIDA3:Feed C:[0-9]\+:[0-9]\+:Message 8\$"
assertStdoutGrep --matches=1 "4:$IDA2:$SIDA2:Feed B:[0-9]\+:[0-9]\+:Message 7\$"
assertStdoutGrep --matches=1 "5:$IDA5:$SIDA5:Feed E:[0-9]\+:[0-9]\+:Message 6\$"
}
doc_meshmbBlock="Record blocked feeds"
setup_meshmbBlock() {
setup_identities 4
executeOk_servald keyring set did $SIDA1 "" "Feed A"
executeOk_servald keyring set did $SIDA2 "" "Feed B"
executeOk_servald keyring set did $SIDA3 "" "Feed C"
executeOk_servald keyring set did $SIDA4 "" "Feed D"
executeOk_servald meshmb send $IDA2 "Message 1"
executeOk_servald meshmb send $IDA3 "Message 2"
executeOk_servald meshmb send $IDA4 "Message 3"
executeOk_servald meshmb follow $IDA1 $IDA2
executeOk_servald meshmb follow $IDA1 $IDA3
}
test_meshmbBlock() {
executeOk_servald meshmb block $IDA1 $IDA3 $SIDA3
executeOk_servald meshmb block $IDA1 $IDA4 $SIDA4
executeOk_servald meshmb activity $IDA1
tfw_cat --stdout
assertStdoutGrep --matches=1 "0:$IDA2:$SIDA2:Feed B:[0-9]\+:[0-9]\+:Message 1\$"
# what was followed, disappears
assertStdoutGrep --matches=0 ":$IDA3:$SIDA3:"
executeOk_servald meshmb list following $IDA1
tfw_cat --stdout
assertStdoutGrep --matches=1 ":$IDA2:$SIDA2:false:Feed B:[0-9]\+:Message 1\$"
assertStdoutGrep --matches=1 ":$IDA3:$SIDA3:true::-1:\$"
assertStdoutGrep --matches=1 ":$IDA4:$SIDA4:true::-1:\$"
}
runTests "$@"