From a5bf726260deb3476b803428f6cbe91a99f29a5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Smr=C5=BE?= Date: Sat, 23 Mar 2024 13:27:46 +0100 Subject: (test) Chatroom shared type --- chatroom.test | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 chatroom.test diff --git a/chatroom.test b/chatroom.test new file mode 100644 index 0000000..b63b01b --- /dev/null +++ b/chatroom.test @@ -0,0 +1,14 @@ +test LocalChatrooms: + spawn as p1 + with p1: + send "create-identity Device1 Owner1" + + send "chatroom-create first" + send "chatroom-create second" + + send "chatroom-list-local" + expect /chatroom-list-item [a-z0-9#]+ first/ + expect /chatroom-list-item [a-z0-9#]+ second/ + local: + expect /chatroom-list-(.*)/ capture done + guard (done == "done") -- cgit v1.2.3 From 22b7ce9d3d1ba91a2e7f5be1ecfe38d295c1d193 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Smr=C5=BE?= Date: Sat, 6 Apr 2024 19:07:27 +0200 Subject: (test) Chatroom service --- chatroom.test | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/chatroom.test b/chatroom.test index b63b01b..89cf18a 100644 --- a/chatroom.test +++ b/chatroom.test @@ -1,4 +1,6 @@ -test LocalChatrooms: +test ChatroomSetup: + # Local chatrooms + spawn as p1 with p1: send "create-identity Device1 Owner1" @@ -12,3 +14,40 @@ test LocalChatrooms: local: expect /chatroom-list-(.*)/ capture done guard (done == "done") + + # Send chatrooms to new peers + + spawn as p2 + send "create-identity Device2 Owner2" to p2 + + spawn as p3 + send "create-identity Device3 Owner3" to p3 + + for p in [ p1, p2, p3 ]: + with p: + send "chatroom-watch-local" + send "start-server" + + for p in [ p2, p3 ]: + with p: + expect /chatroom-watched-added [a-z0-9#]+ first/ + expect /chatroom-watched-added [a-z0-9#]+ second/ + + with p2: + send "chatroom-list-local" + expect /chatroom-list-item [a-z0-9#]+ first/ + expect /chatroom-list-item [a-z0-9#]+ second/ + local: + expect /chatroom-list-(.*)/ capture done + guard (done == "done") + + # Create and sync additional chatrooms + + send "chatroom-create third" to p1 + send "chatroom-create fourth" to p2 + send "chatroom-create fifth" to p3 + for p in [ p1, p2, p3 ]: + with p: + expect /chatroom-watched-added [a-z0-9#]+ third/ + expect /chatroom-watched-added [a-z0-9#]+ fourth/ + expect /chatroom-watched-added [a-z0-9#]+ fifth/ -- cgit v1.2.3 From 4317031296d3c13925c9309db98a96a2a660372a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Smr=C5=BE?= Date: Sat, 13 Apr 2024 08:29:25 +0200 Subject: (test) Chatroom metadata updates --- chatroom.test | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/chatroom.test b/chatroom.test index 89cf18a..ac66f38 100644 --- a/chatroom.test +++ b/chatroom.test @@ -9,12 +9,16 @@ test ChatroomSetup: send "chatroom-create second" send "chatroom-list-local" - expect /chatroom-list-item [a-z0-9#]+ first/ + + expect /chatroom-list-item ([a-z0-9#]+) first/ capture first expect /chatroom-list-item [a-z0-9#]+ second/ local: expect /chatroom-list-(.*)/ capture done guard (done == "done") + expect /chatroom-create-done ([a-z0-9#]+) first.*/ from p1 capture first + expect /chatroom-create-done ([a-z0-9#]+) second.*/ from p1 capture second + # Send chatrooms to new peers spawn as p2 @@ -46,8 +50,26 @@ test ChatroomSetup: send "chatroom-create third" to p1 send "chatroom-create fourth" to p2 send "chatroom-create fifth" to p3 + + expect /chatroom-create-done ([a-z0-9#]+) fourth.*/ from p2 capture fourth + expect /chatroom-create-done ([a-z0-9#]+) fifth.*/ from p3 capture fifth + for p in [ p1, p2, p3 ]: with p: expect /chatroom-watched-added [a-z0-9#]+ third/ expect /chatroom-watched-added [a-z0-9#]+ fourth/ expect /chatroom-watched-added [a-z0-9#]+ fifth/ + + # Update chatroom name + + send "chatroom-set-name $first first2" to p1 + for p in [ p1, p2, p3 ]: + with p: + expect /chatroom-watched-updated [a-z0-9#]+ first2.*/ + + send "chatroom-set-name $fourth fourth2" to p2 + send "chatroom-set-name $fifth fifth2" to p3 + for p in [ p1, p2, p3 ]: + with p: + expect /chatroom-watched-updated [a-z0-9#]+ fourth2.*/ + expect /chatroom-watched-updated [a-z0-9#]+ fifth2.*/ -- cgit v1.2.3 From 213fe4786c22d88fe567f351402d09087605606e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Smr=C5=BE?= Date: Wed, 1 May 2024 20:21:55 +0200 Subject: (test) Network: reuse stream numbers after closing --- network.test | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/network.test b/network.test index 3df7376..93f9743 100644 --- a/network.test +++ b/network.test @@ -135,8 +135,10 @@ test LargeData: for i in [0..10]: with p1: + # Create blob with (i * 1000) bytes send "store blob" for j in [1 .. i * 10]: + # 100 bytes each line send "123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789" send "" expect /store-done (blake2#[0-9a-f]*)/ capture ref @@ -144,3 +146,33 @@ test LargeData: send "test-message-send 1 $ref" expect /test-message-send done/ expect /test-message-received blob ${i*1000} $ref/ from p2 + + +test ManyStreams: + spawn as p1 + spawn as p2 + send "create-identity Device1" to p1 + send "create-identity Device2" to p2 + send "start-server" to p1 + send "start-server" to p2 + expect from p1: + /peer 1 addr ${p2.node.ip} 29665/ + /peer 1 id Device2/ + expect from p2: + /peer 1 addr ${p1.node.ip} 29665/ + /peer 1 id Device1/ + + for i in [0..100]: + with p1: + # Create blob with 1000 bytes + decimal i + send "store blob" + for j in [1 .. 10]: + # 100 bytes each line + send "123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789" + send "$i" + send "" + expect /store-done (blake2#[0-9a-f]*)/ capture ref + + send "test-message-send 1 $ref" + expect /test-message-send done/ + expect /test-message-received blob 100[2-4] $ref/ from p2 -- cgit v1.2.3 From b64804a2d2b0e60885c315e1439e76a334513937 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Smr=C5=BE?= Date: Sat, 18 May 2024 21:01:59 +0200 Subject: (test) Chatroom messages --- chatroom.test | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/chatroom.test b/chatroom.test index ac66f38..ffb7b4d 100644 --- a/chatroom.test +++ b/chatroom.test @@ -73,3 +73,29 @@ test ChatroomSetup: with p: expect /chatroom-watched-updated [a-z0-9#]+ fourth2.*/ expect /chatroom-watched-updated [a-z0-9#]+ fifth2.*/ + + +test ChatroomMessages: + spawn as p1 + + send "create-identity Device1 Owner1" to p1 + + for p in [ p1 ]: + with p: + send "chatroom-watch-local" + send "start-server" + + send "chatroom-create room" to p1 + expect /chatroom-create-done ([a-z0-9#]+) room.*/ from p1 capture room + + for p in [ p1 ]: + with p: + expect /chatroom-watched-added $room room/ + + send "chatroom-message-send $room message1" to p1 + expect /chatroom-message-new $room from Owner1 text message1/ from p1 + + send "chatroom-message-send $room message2" to p1 + local: + expect /chatroom-message-new $room from Owner1 text (.*)/ from p1 capture msg + guard (msg == "message2") -- cgit v1.2.3 From 178fcb720895f3c597b171f8a6235334d9e465b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Smr=C5=BE?= Date: Sat, 25 May 2024 10:40:03 +0200 Subject: (test) Handle peer reconnection after its restart Allow the handshake and channel request to proceed correcty even with already established channel to handle the case where peer attempts to reconnect after restart. Changelog: Handle peer reconnection after its restart --- network.test | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/network.test b/network.test index 93f9743..ea57a77 100644 --- a/network.test +++ b/network.test @@ -176,3 +176,52 @@ test ManyStreams: send "test-message-send 1 $ref" expect /test-message-send done/ expect /test-message-received blob 100[2-4] $ref/ from p2 + + +test Reconnection: + spawn as p1 + with p1: + send "create-identity Device1" + send "start-server" + + node n + local: + spawn as p2 on n + send "create-identity Device2" to p2 + send "start-server" to p2 + + expect from p1: + /peer 1 addr ${p2.node.ip} 29665/ + /peer 1 id Device2/ + expect from p2: + /peer 1 addr ${p1.node.ip} 29665/ + /peer 1 id Device1/ + + with p1: + send "store blob" + send "message1" + send "" + expect /store-done (blake2#[0-9a-f]*)/ from p1 capture message + + send "test-message-send 1 $message" + expect /test-message-send done/ + expect /test-message-received blob [0-9]+ $message/ from p2 + + local: + spawn as p2 on n + send "start-server" to p2 + send "peer-add ${p1.node.ip}" to p2 + + expect from p2: + /peer 1 addr ${p1.node.ip} 29665/ + /peer 1 id Device1/ + + with p1: + send "store blob" + send "message2" + send "" + expect /store-done (blake2#[0-9a-f]*)/ from p1 capture message + + send "test-message-send 1 $message" + expect /test-message-send done/ + expect /test-message-received blob [0-9]+ $message/ from p2 -- cgit v1.2.3 From d62af5c632a6f349f7ec2b656575b63d87416000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Smr=C5=BE?= Date: Sun, 26 May 2024 14:04:09 +0200 Subject: (test) Manual peer drop --- network.test | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 101 insertions(+), 2 deletions(-) diff --git a/network.test b/network.test index ea57a77..9540bf6 100644 --- a/network.test +++ b/network.test @@ -201,12 +201,19 @@ test Reconnection: send "store blob" send "message1" send "" - expect /store-done (blake2#[0-9a-f]*)/ from p1 capture message + expect /store-done (blake2#[0-9a-f]*)/ capture message send "test-message-send 1 $message" expect /test-message-send done/ expect /test-message-received blob [0-9]+ $message/ from p2 + send "peer-list" + expect /peer-list-item 1 addr ${p2.node.ip} 29665 id Device2/ + local: + expect /peer-list-(.*)/ capture done + guard (done == "done") + + # Restart process on node 'n' local: spawn as p2 on n send "start-server" to p2 @@ -220,8 +227,100 @@ test Reconnection: send "store blob" send "message2" send "" - expect /store-done (blake2#[0-9a-f]*)/ from p1 capture message + expect /store-done (blake2#[0-9a-f]*)/ capture message send "test-message-send 1 $message" expect /test-message-send done/ expect /test-message-received blob [0-9]+ $message/ from p2 + + # Drop and re-add peer p2: + with p1: + send "peer-list" + expect /peer-list-item 1 addr ${p2.node.ip} 29665 id Device2/ + local: + expect /peer-list-(.*)/ capture done + guard (done == "done") + + send "peer-drop 1" + send "peer-list" + local: + expect /peer-list-(.*)/ capture done + guard (done == "done") + + send "peer-add ${p2.node.ip}" + expect /peer 2 addr ${p2.node.ip} 29665/ + expect /peer 2 id Device2/ + + send "peer-list" + expect /peer-list-item 2 addr ${p2.node.ip} 29665 id Device2/ + local: + expect /peer-list-(.*)/ capture done + guard (done == "done") + + send "store blob" + send "message3" + send "" + expect /store-done (blake2#[0-9a-f]*)/ capture message + + send "test-message-send 2 $message" + expect /test-message-send done/ + expect /test-message-received blob [0-9]+ $message/ from p2 + + # Drop on both sides and re-add: + with p2: + send "peer-list" + expect /peer-list-item 1 addr ${p1.node.ip} 29665 id Device1/ + local: + expect /peer-list-(.*)/ capture done + guard (done == "done") + + send "peer-drop 1" + send "peer-list" + local: + expect /peer-list-(.*)/ capture done + guard (done == "done") + + with p1: + send "peer-list" + expect /peer-list-item 2 addr ${p2.node.ip} 29665 id Device2/ + local: + expect /peer-list-(.*)/ capture done + guard (done == "done") + + send "peer-drop 2" + send "peer-list" + local: + expect /peer-list-(.*)/ capture done + guard (done == "done") + + send "peer-add ${p1.node.ip}" to p2 + + with p2: + expect /peer 2 addr ${p1.node.ip} 29665/ from p2 + expect /peer 2 id Device1/ from p2 + + send "peer-list" + expect /peer-list-item 2 addr ${p1.node.ip} 29665 id Device1/ + local: + expect /peer-list-(.*)/ capture done + guard (done == "done") + + send "store blob" + send "message4" + send "" + expect /store-done (blake2#[0-9a-f]*)/ capture message + + send "test-message-send 2 $message" + expect /test-message-send done/ + + with p1: + expect /peer 3 addr ${p2.node.ip} 29665/ + expect /peer 3 id Device2/ + + send "peer-list" + expect /peer-list-item 3 addr ${p2.node.ip} 29665 id Device2/ + local: + expect /peer-list-(.*)/ capture done + guard (done == "done") + + expect /test-message-received blob [0-9]+ $message/ -- cgit v1.2.3