]>
nmode's Git Repositories - signal-cli/blob - run_tests.sh
3 echo "Usage: $0 NUMBER_1 NUMBER_2"
11 TEST_PIN_1
=456test_pin_foo123
16 PATH_TEST_CONFIG
="$PWD/test-config"
17 PATH_MAIN
="$PATH_TEST_CONFIG/main"
18 PATH_LINK
="$PATH_TEST_CONFIG/link"
20 if [ "$NATIVE" -eq 1 ]; then
21 SIGNAL_CLI
="$PWD/build/native/nativeCompile/signal-cli"
22 elif [ "$JSON_RPC" -eq 1 ]; then
23 (cd client
&& cargo build
)
24 "$PWD/build/install/signal-cli/bin/signal-cli" --verbose --verbose --trust-new-identities=always
--config="$PATH_MAIN" --service-environment="staging" --log-file="$PATH_MAIN/log" daemon
--socket --receive-mode=manual
&
25 "$PWD/build/install/signal-cli/bin/signal-cli" --verbose --verbose --trust-new-identities=always
--config="$PATH_LINK" --service-environment="staging" --log-file="$PATH_LINK/log" daemon
--tcp --receive-mode=manual
&
27 SIGNAL_CLI
="$PWD/client/target/debug/signal-cli-client"
30 SIGNAL_CLI
="$PWD/build/install/signal-cli/bin/signal-cli"
34 # To update graalvm config, set GRAALVM_HOME, e.g:
35 # export GRAALVM_HOME=/usr/lib/jvm/java-21-graalvm
36 if [ ! -z "$GRAALVM_HOME" ]; then
37 export JAVA_HOME
=$GRAALVM_HOME
38 export SIGNAL_CLI_OPTS
="-agentlib:native-image-agent=config-merge-dir=graalvm-config-dir-${SIGNAL_CLI_AGENT_ID}/"
42 if [ "$JSON_RPC" -eq 1 ]; then
45 "$SIGNAL_CLI" --service-environment="staging" --verbose --verbose $@
51 export SIGNAL_CLI_AGENT_ID
=main
52 if [ "$JSON_RPC" -eq 1 ]; then
53 run
--json-rpc-socket="$XDG_RUNTIME_DIR/signal-cli/socket" $@
55 run
--config="$PATH_MAIN" --log-file="$PATH_MAIN/log" $@
57 unset SIGNAL_CLI_AGENT_ID
61 export SIGNAL_CLI_AGENT_ID
=linked
62 if [ "$JSON_RPC" -eq 1 ]; then
63 run
--json-rpc-tcp="127.0.0.1:7583" $@
65 run
--config="$PATH_LINK" --log-file="$PATH_LINK/log" $@
67 unset SIGNAL_CLI_AGENT_ID
73 echo -n "Enter a captcha token (https://signalcaptchas.org/staging/registration/generate.html): "
75 run_main
-a "$NUMBER" register
--captcha "$CAPTCHA"
76 echo -n "Enter validation code for ${NUMBER}: "
78 if [ -z "$PIN" ]; then
79 run_main
-a "$NUMBER" verify
"$CODE"
81 run_main
-a "$NUMBER" verify
"$CODE" --pin "$PIN"
87 LINK_CODE_FILE
="$PATH_TEST_CONFIG/link_code"
88 rm -f "$LINK_CODE_FILE"
89 mkfifo "$LINK_CODE_FILE"
90 run_linked link
-n "test-device" >"$LINK_CODE_FILE" &
91 read LINK_CODE
<"$LINK_CODE_FILE"
92 run_main
-a "$NUMBER" addDevice
--uri "$LINK_CODE"
94 run_linked
-a "$NUMBER" send
--note-to-self -m hi
95 run_main
-a "$NUMBER" receive
96 run_linked
-a "$NUMBER" receive
97 run_main
-a "$NUMBER" receive
105 if [ "$TEST_REGISTER" -eq 1 ]; then
106 register
"$NUMBER_1" "$TEST_PIN_1"
112 run_main listAccounts
113 run_main
--output=json listAccounts
114 run_main
--scrub-log listAccounts
116 if [ "$JSON_RPC" -eq 0 ]; then
118 #run_main -a "$NUMBER_1" --dbus send "$NUMBER_2" -m daemon_not_running || true
122 #run_main -a "$NUMBER_1" --dbus send "$NUMBER_2" -m hii
123 #run_main -a "$NUMBER_2" --dbus receive
128 FIFO_FILE
="${PATH_MAIN}/dbus-fifo"
133 run_main
-a "$NUMBER_1" send
"$NUMBER_2" -m hi
134 run_main
-a "$NUMBER_2" jsonRpc
< "$FIFO_FILE" &
137 echo '{"jsonrpc":"2.0","id":"id","method":"updateContact","params":{"recipient":"'"$NUMBER_1"'","name":"NUMBER_1","expiration":10}}' >&3
138 echo '{"jsonrpc":"2.0","id":5,"method":"block","params":{"recipient":"'"$NUMBER_1"'"}}' >&3
139 echo '{"jsonrpc":"2.0","id":null,"method":"unblock","params":{"recipient":"'"$NUMBER_1"'"}}' >&3
140 echo '{"jsonrpc":"2.0","id":"id","method":"listContacts"}' >&3
141 echo '{"jsonrpc":"2.0","id":"id","method":"listGroups"}' >&3
142 echo '{"jsonrpc":"2.0","id":"id","method":"listDevices"}' >&3
143 echo '{"jsonrpc":"2.0","id":"id","method":"listIdentities"}' >&3
144 echo '{"jsonrpc":"2.0","id":"id","method":"listStickerPacks"}' >&3
145 echo '{"jsonrpc":"2.0","id":"id","method":"sendSyncRequest"}' >&3
146 echo '{"jsonrpc":"2.0","id":"id","method":"sendContacts"}' >&3
147 echo '{"jsonrpc":"2.0","id":"id","method":"version"}' >&3
148 echo '{"jsonrpc":"2.0","id":"id","method":"updateAccount"}' >&3
149 echo '{"jsonrpc":"2.0","id":7,"method":"sendReceipt","params":{"recipient":"'"$NUMBER_1"'","targetTimestamp":1629919505575}}' >&3
150 echo '{"jsonrpc":"2.0","id":7,"method":"sendTyping","params":{"recipient":"'"$NUMBER_1"'"}}' >&3
151 echo '{"jsonrpc":"2.0","id":7,"method":"send","params":{"recipient":"'"$NUMBER_1"'","message":"some text"}}' >&3
152 echo '{"jsonrpc":"2.0","id":7,"method":"send","params":{"recipients":["'"$NUMBER_1"'","'"$NUMBER_2"'"],"message":"some other text"}}' >&3
153 echo '{"jsonrpc":"2.0","id":7,"method":"sendReaction","params":{"recipients":["'"$NUMBER_2"'"],"targetAuthor":"'"$NUMBER_1"'","emoji":"👍","targetTimestamp":4756473756}}' >&3
154 echo '{"jsonrpc":"2.0","id":7,"method":"updateProfile","params":{"givenName":"n1","familyName":"n2","about":"ABA","aboutEmoji":"EMO","avatar":"LICENSE"}}' >&3
155 echo '{"jsonrpc":"2.0","id":7,"method":"getUserStatus","params":{"recipient":"'"$NUMBER_1"'"}}' >&3
158 echo '{"jsonrpc":"2.0","id":7,"method":"sendReceipt","params":{"recipient":5}}' >&3
164 run_main
-a "$NUMBER_1" setPin
"$TEST_PIN_1"
165 run_main
-a "$NUMBER_1" register
--reregister
166 run_main
-a "$NUMBER_2" removePin
169 run_main
-a "$NUMBER_2" updateContact
"$NUMBER_1" -n NUMBER_1
-e 10
170 run_main
-a "$NUMBER_2" block
"$NUMBER_1"
171 run_main
-a "$NUMBER_2" unblock
"$NUMBER_1"
172 run_main
-a "$NUMBER_2" listContacts
174 run_main
-a "$NUMBER_1" send
"$NUMBER_2" -m hi
175 run_main
-a "$NUMBER_2" receive
176 run_main
-a "$NUMBER_2" send
"$NUMBER_1" -m hi
177 run_main
-a "$NUMBER_1" receive
178 run_main
-a "$NUMBER_2" receive
180 GROUP_ID
=$
(run_main
-a "$NUMBER_1" --output=json updateGroup
-n GRUPPE
-a LICENSE
-m "$NUMBER_1" | jq
-r '.groupId')
181 run_main
-a "$NUMBER_1" send
"$NUMBER_2" -m first
182 run_main
-a "$NUMBER_1" updateGroup
-g "$GROUP_ID" -n GRUPPE_UMB
-m "$NUMBER_2" --admin "$NUMBER_2" --description DESCRIPTION
--link=enabled
-with-approval --set-permission-add-member=only
-admins --set-permission-edit-details=only
-admins --set-permission-send-messages=only
-admins -e 42
183 run_main
-a "$NUMBER_1" updateGroup
-g "$GROUP_ID" --remove-admin "$NUMBER_2" --reset-link --set-permission-send-messages=every
-member
184 run_main
-a "$NUMBER_1" updateGroup
-g "$GROUP_ID" -r "$NUMBER_2"
185 run_main
-a "$NUMBER_1" updateGroup
-g "$GROUP_ID" -m "$NUMBER_2"
186 run_main
-a "$NUMBER_1" listGroups
-d
187 run_main
-a "$NUMBER_1" --output=json listGroups
-d
188 run_main
-a "$NUMBER_2" receive
189 run_main
-a "$NUMBER_2" quitGroup
-g "$GROUP_ID"
190 run_main
-a "$NUMBER_2" listGroups
-d
191 run_main
-a "$NUMBER_2" --output=json listGroups
-d
192 run_main
-a "$NUMBER_1" receive
193 run_main
-a "$NUMBER_1" updateGroup
-g "$GROUP_ID" -m "$NUMBER_2"
194 run_main
-a "$NUMBER_1" block
-g "$GROUP_ID"
195 run_main
-a "$NUMBER_1" unblock
-g "$GROUP_ID"
196 run_main
-a "$NUMBER_1" submitRateLimitChallenge
--challenge 8xxxxxx8
-0xx2-4xx9-9xx2-4xxxxxxxxxx7 --captcha signalcaptcha
://signal
-hcaptcha.5fa.registration.P.h.
-K || true
198 ## Basic send/receive
199 for OUTPUT
in "plain-text" "json"; do
200 run_main
-a "$NUMBER_1" --output="$OUTPUT" getUserStatus
"$NUMBER_1" "$NUMBER_2" "+111111111"
201 run_main
-a "$NUMBER_1" --output="$OUTPUT" send
"$NUMBER_2" -m hi
202 run_main
-a "$NUMBER_2" --output="$OUTPUT" send
"$NUMBER_1" -m hi
203 run_main
-a "$NUMBER_1" --output="$OUTPUT" send
-g "$GROUP_ID" -m hi
-a LICENSE
--mention "1:1:$NUMBER_2"
204 TIMESTAMP
=$
(uname
-a | run_main
-a "$NUMBER_1" --output=json send
--message-from-stdin "$NUMBER_2" | jq
'.timestamp')
205 run_main
-a "$NUMBER_2" --output="$OUTPUT" sendReaction
"$NUMBER_1" -e 🍀
-a "$NUMBER_1" -t "$TIMESTAMP"
206 run_main
-a "$NUMBER_1" --output="$OUTPUT" remoteDelete
"$NUMBER_2" -t "$TIMESTAMP"
207 run_main
-a "$NUMBER_2" --output="$OUTPUT" receive
208 run_main
-a "$NUMBER_1" --output="$OUTPUT" receive
209 run_main
-a "$NUMBER_1" --output="$OUTPUT" send
-e "$NUMBER_2"
210 run_main
-a "$NUMBER_2" --output="$OUTPUT" receive
214 run_main
-a "$NUMBER_1" updateProfile
--given-name=GIVEN
--family-name=FAMILY
--about=ABOUT
--about-emoji=EMOJI
--avatar=LICENSE
--mobile-coin-address="YWJjCg=="
219 run_main
-a "$NUMBER_1" listDevices
220 run_linked
-a "$NUMBER_1" sendSyncRequest
221 run_main
-a "$NUMBER_1" sendContacts
224 run_main
-a "$NUMBER_1" updateConfiguration
--read-receipts=true
227 run_main
-a "$NUMBER_1" listIdentities
228 run_main
-a "$NUMBER_2" listIdentities
229 run_main
-a "$NUMBER_2" trust
"$NUMBER_1" -a
231 for OUTPUT
in "plain-text" "json"; do
232 run_main
-a "$NUMBER_1" --output="$OUTPUT" send
"$NUMBER_2" -m hi
233 run_main
-a "$NUMBER_1" --output="$OUTPUT" send
"$NUMBER_2" -m hi
--edit-timestamp 123456677
234 run_main
-a "$NUMBER_2" --output="$OUTPUT" send
"$NUMBER_1" -m hi
--text-style "1:1:BOLD" --quote-timestamp 12345 --quote-author "$NUMBER_1" --quote-message hitest
--quote-text-style "1:1:BOLD" --preview-url "https://example.com" --preview-title preview
--preview-description foo
--preview-image LICENSE
--story-timestamp 1234567 --story-author "$NUMBER_1"
235 run_main
-a "$NUMBER_1" --output="$OUTPUT" sendPaymentNotification
--receipt "YWJjCg==" --note notefoo
"$NUMBER_2"
236 run_main
-a "$NUMBER_2" --output="$OUTPUT" receive
237 run_main
-a "$NUMBER_1" --output="$OUTPUT" receive
238 run_linked
-a "$NUMBER_1" --output="$OUTPUT" receive
241 run_main
-a "$NUMBER_1" removeDevice
-d 2
244 if [ "$TEST_REGISTER" -eq 1 ]; then
245 run_main
-a "$NUMBER_1" unregister
246 run_main
-a "$NUMBER_2" unregister
--delete-account
248 run_main
-a "$NUMBER_2" deleteLocalAccountData
|| true
250 if [ ! -z "$GRAALVM_HOME" ]; then
251 "$GRAALVM_HOME"/lib
/svm
/bin
/native
-image-configure generate
--input-dir=graalvm
-config-dir/ --input-dir=graalvm
-config-dir-linked/ --input-dir=graalvm
-config-dir-main/ --output-dir=graalvm
-config-dir//
252 rm -r graalvm
-config-dir-main graalvm
-config-dir-linked