From 7f579180ced1326fba432101f543634e613f5da6 Mon Sep 17 00:00:00 2001 From: aya Date: Sat, 1 Feb 2025 17:29:32 +0200 Subject: [PATCH] Fix wrappers for relay --- testlibs/src/main-wrappers.go | 31 ++++++++++++++++++ testlibs/src/relay_wrapper.go | 2 +- testlibs/src/store_wrappers.go | 0 testlibs/utilities/test_data.go | 2 +- testlibs/waku-go-tests/relay_test.go | 46 +++++++++++++++++++++++++++ waku/store.sqlite3 | Bin 0 -> 4096 bytes waku/store.sqlite3-shm | Bin 0 -> 32768 bytes waku/store.sqlite3-wal | Bin 0 -> 284312 bytes 8 files changed, 79 insertions(+), 2 deletions(-) delete mode 100644 testlibs/src/store_wrappers.go create mode 100644 waku/store.sqlite3 create mode 100644 waku/store.sqlite3-shm create mode 100644 waku/store.sqlite3-wal diff --git a/testlibs/src/main-wrappers.go b/testlibs/src/main-wrappers.go index 86204bc..fe48e7e 100644 --- a/testlibs/src/main-wrappers.go +++ b/testlibs/src/main-wrappers.go @@ -9,6 +9,7 @@ import ( "github.com/waku-org/go-waku/waku/v2/protocol/pb" utilities "github.com/waku-org/waku-go-bindings/testlibs/utilities" "github.com/waku-org/waku-go-bindings/waku" + "github.com/waku-org/waku-go-bindings/waku/common" "go.uber.org/zap" "google.golang.org/protobuf/proto" ) @@ -379,3 +380,33 @@ func (wrapper *WakuNodeWrapper) Wrappers_CreateMessage() *pb.WakuMessage { utilities.Debug("Successfully created a valid WakuMessage") return message } + +func (wrapper *WakuNodeWrapper) Wrappers_VerifyMessageReceived(expectedMessage *pb.WakuMessage, expectedHash common.MessageHash) error { + logger, _ := zap.NewDevelopment() + logger.Debug("Verifying if the message was received") + + select { + case envelope := <-wrapper.MsgChan: + if envelope == nil { + logger.Debug("Received envelope is nil") + return errors.New("received envelope is nil") + } + if string(expectedMessage.Payload) != string(envelope.Message().Payload) { + logger.Debug("Payload does not match") + return errors.New("payload does not match") + } + if expectedMessage.ContentTopic != envelope.Message().ContentTopic { + logger.Debug("Content topic does not match") + return errors.New("content topic does not match") + } + if expectedHash != envelope.Hash() { + logger.Debug("Message hash does not match") + return errors.New("message hash does not match") + } + logger.Debug("Message received and verified successfully") + return nil + case <-time.After(5 * time.Second): + logger.Debug("Timeout: message not received within 5 seconds") + return errors.New("timeout: message not received within 5 seconds") + } +} diff --git a/testlibs/src/relay_wrapper.go b/testlibs/src/relay_wrapper.go index 7f3d059..2d6700f 100644 --- a/testlibs/src/relay_wrapper.go +++ b/testlibs/src/relay_wrapper.go @@ -28,7 +28,7 @@ func (wrapper *WakuNodeWrapper) Wrappers_RelaySubscribe(pubsubTopic string) erro // Ensure the subscription happened by checking the number of connected relay peers numRelayPeers, err := wrapper.Wrappers_GetNumConnectedRelayPeers(pubsubTopic) if err != nil || numRelayPeers == 0 { - utilities.Error("Subscription verification failed: no connected relay peers found", zap.Error(err)) + //utilities.Error("Subscription verification failed: no connected relay peers found", zap.Error(err)) return errors.New("subscription verification failed: no connected relay peers") } diff --git a/testlibs/src/store_wrappers.go b/testlibs/src/store_wrappers.go deleted file mode 100644 index e69de29..0000000 diff --git a/testlibs/utilities/test_data.go b/testlibs/utilities/test_data.go index 19d3556..357a852 100644 --- a/testlibs/utilities/test_data.go +++ b/testlibs/utilities/test_data.go @@ -6,5 +6,5 @@ import ( var ConnectPeerTimeout = 10 * time.Second //default timeout for node to connect to another node -var DefaultPubsubTopic = "/waku/2/rs/3/0" +var DefaultPubsubTopic = "/waku/2/rs/16/64" var PubsubTopic1 = "/waku/2/rs/3/1" diff --git a/testlibs/waku-go-tests/relay_test.go b/testlibs/waku-go-tests/relay_test.go index 52828b7..7f2185f 100644 --- a/testlibs/waku-go-tests/relay_test.go +++ b/testlibs/waku-go-tests/relay_test.go @@ -2,6 +2,7 @@ package waku_go_tests import ( "testing" + "time" "github.com/stretchr/testify/require" testlibs "github.com/waku-org/waku-go-bindings/testlibs/src" @@ -48,3 +49,48 @@ func TestRelaySubscribeToDefaultTopic(t *testing.T) { utilities.Debug("Test successfully verified subscription to the default pubsub topic", zap.String("topic", defaultPubsubTopic)) } + +func TestRelayMessageTransmission(t *testing.T) { + logger, err := zap.NewDevelopment() + require.NoError(t, err) + + logger.Debug("Starting TestRelayMessageTransmission") + + // Configuration for sender node + senderConfig := *utilities.DefaultWakuConfig + senderConfig.Relay = true + senderNode, err := testlibs.Wrappers_StartWakuNode(&senderConfig, logger.Named("SenderNode")) + require.NoError(t, err) + defer senderNode.Wrappers_StopAndDestroy() + + // Configuration for receiver node + receiverConfig := *utilities.DefaultWakuConfig + receiverConfig.Relay = true + receiverNode, err := testlibs.Wrappers_StartWakuNode(&receiverConfig, logger.Named("ReceiverNode")) + require.NoError(t, err) + defer receiverNode.Wrappers_StopAndDestroy() + + logger.Debug("Connecting sender and receiver") + err = senderNode.Wrappers_ConnectPeer(receiverNode) + require.NoError(t, err) + + logger.Debug("Subscribing receiver to the default pubsub topic") + defaultPubsubTopic := utilities.DefaultPubsubTopic + err = receiverNode.Wrappers_RelaySubscribe(defaultPubsubTopic) + require.NoError(t, err) + + logger.Debug("Creating and publishing message") + message := senderNode.Wrappers_CreateMessage() + msgHash, err := senderNode.Wrappers_RelayPublish(defaultPubsubTopic, message) + require.NoError(t, err) + require.NotEmpty(t, msgHash) + + logger.Debug("Waiting to ensure message delivery") + time.Sleep(2 * time.Second) + + logger.Debug("Verifying message reception using the new wrapper") + err = receiverNode.Wrappers_VerifyMessageReceived(message, msgHash) + require.NoError(t, err, "message verification failed") + + logger.Debug("TestRelayMessageTransmission completed successfully") +} diff --git a/waku/store.sqlite3 b/waku/store.sqlite3 new file mode 100644 index 0000000000000000000000000000000000000000..0de02ecf623141161c863ee065d9f7dd83cbe849 GIT binary patch literal 4096 zcmWFz^vNtqRY=P(%1ta$FlG>7U}9o$P*7lCU|@t|AVoG{WYDWB7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3MkOw z0-5kWL!Le!@Q^_sG0X^~j8oz%&zR%|Gt7p!F&0>4g*DcB!&}~UxQf^74uLGa^fN?} z37+trDPFO}M?SH^7CY>*&)4pt@RnUCkYj)Xj~U}N@2T*aO}5$P3svGPNQMHPD=^JG z%ar-hxmWaN3bYZJW3|nUWd#&aKmi35P(T3%6i`3`1r$&~0Rm;t-6BPR#8cd#fne6psv=%F6g#+!>z3Hxa(G-m8+Ku-S?e2b2&+vGa1Nj z@|`y1GH1@r`OL-V{NLaEfAd$RH5o=9y2xM{XpooF`N#KW?5aPt<%8=6P9Oi)E8B>ws+2gKN=cdB9^IzGR~_(F2b{hdZ$)TVt+%PEbNlPu@i%cbEb+NQ z4<@?vWu98U*H_)@?t_moN10vhoZ={RDy5Fu#YF-=c%C1w7t}3%*Ee)W|2_TXvk@vK zbn^4U-64Pg0tg_000IagfB*srAb>z83TW~Ik1sy7|IKlqoYBb(m}4HFtScm)7cf~4 zioAgMhYJD-AbXVt%@BJFL%2t7T49Nqu}aq=C(%2 z)$5d094RL+pymbSIleiZ7uak3uK^F59EZsZbimt@T_S)00tg_000IagfB*srAkh5; zG?_Kr|LGil~6)AbElA_p;y-A%Fk^2q1s}0tg_0 zKxzn(7YI%4Z+m9FF^&EL;&m?1?<0AEckdg&Y31x|UrvqJKSzN80tg_000IagfB*sr zAb(bc7X%PM009ILKmY**5I`US zfu=lju!H=%v9Yt|)oJqQ(m}q~Q{nN7F7D1qCwbA0-ril>$VVH^`#sf_XML1yjfs;N zATJPI4k7jxl4ec|zvDD{fk9(e&0q05>ksKK5a!`K0tg_000IagfB*srAbk)kYl{SZpP<*PA<1Tkw9J`d_;0WLehBw*N#UDYQEZmFcC$(+W!GDpPH9qn#a6wgZKDziILUw~Q?N z%6#jqFVbHi-X{^)A%Fk^2q1s}0tg_000IagkTL?Ayg=sWPcE&Ro7gh zyg>NKFAzT@ofj}!R*SrV_=gJu2q1s}0tg_000Iagkbpoc<^`I@_D#L9A&QXRR=uP0jICVTM?RMU*d2oC1rMdbR@c_&h4*r$KS-& zu*ByIP1BFwaG9sp@AXwHXTSTFgWN5*Y-=?E@&au>lPxJlX9c?welpu~6mL6CUSO5t zZ@4Ps-qrLMNZx=HWby)<^$2q9rVWm7^IqwkcQp5c00IagfB*srAbvQAEmYqE=m3^_T*bu(idGL*Yr6^rX?)V>VrZ`$?@BeYkJAa@bUT?FR>7{YadePc%5 z^2+UN{*pjlApE&8K>Uz&UBF}+E9(Md!#m?U0tg_000IagfB*srAP`TW+tdY`8q$Kz z0`Dx2JvUX)JIx6-3yk*VtMycPyrMau(_7{72V7M(aXR#M^9F&@gPP+ zaa6LLQCwZ=saK|#7EdcEovTc>%~i5ngx+%%Z)L6$)88*HK%X z;{B$XN3b*fn>(A=Ubcq5gYiCzxDEjX5I_I{1Q0*~0R#|00D+Vd(DWVr)zx*sS4M64 zj|B1pavcMC+YIrQTwXxTAux)lfMqOsfs}bQaUcjFfB*srAb(eQvf-eE zc?1b9QkckkkK!$>S*P$5$HcmW@4c|OgWt;R9svXpKmY**5I_I{1Q0*~0R*~-fF>_c z^xUC^KmYTDeF@|R!jIk}en>hmAo~kg#%4Yg-WlH!KmY**5I_I{1Q0*~fp`Ms1;`7C zynx|O3Li^=u!YN4gJr$iK}6W&s7<`I(kE~CW7DVt8UfCKDVhxU49||JS@N9 z5BO?5l?8#;cN1)vuZT<69A)J0TMVnmd7vG)>OyDc1vK*r$`{s8e7Nx^4<%3+2=^V# z6mR?F>H?x1V5Bb4!JnG!9svXpKmY**5I_Kd)DoaB&^2ew)CFvl+idjLadiRl#`Si| zJc8@y+@1a7hcA_D7ji)W0R#|0009ILKmY**5I_Kd)ECg?1#XzJaq;uNUeum>1Oo+8 za(Mx9LotuQ%shhBf01#72q1s}0tg_000Ib{F9Grb_Bvn9IKJc3HmcW}7q zJNR9-@8HrpPi@0lIu8b~lf4J4Jbu4xfhT_NL3J8Ou<2kMeFuNP>dx!#cr^1~`VOA2 zPc8O?00IagfB*srAb~y7G)pe}UM1z#wsSvA+lRr*p(6 z!xGuQ3-~po&fyM$IrJCk^!@^!nHP}f^nFg}AK#m?tNzrp_46he zlxKcQUVx8W1Q0*~0R#|0009ILKmY**dWC=--;dM<+_MIoCa=gXXh&Y)JM#81QisE1-EHO$)UR5U-#T8T`nJxgYJb+;;vW&fSIj3uxvM7=~`%=zQYzXF7F(zA+zC zgT>ED*9H1y3|8v`8FD{d5I_I{1Q0*~0R#|0pnC{3<@F0TJzF<6cnYtcd#K;~YR)j# zKgtu!xQ*cApPbjUIOksGsr7q()oq>(2E5`v1Fou?Hm{8-9E8uc+T1R&1?FN}wB^Pg zUrzrVWp=T1ilfY_lsaY?7f~0e4mf=^-U_AA?kH4BT31!--2OUu{7qWC2tw@zsWPmIxq#00IagfB*srAb;x z4FLoYKmY**5I_I{1Q0*~0R&PRVc{y<;2q1s}0tg_000Jo@Kz{-H3xs<8D@xo|9YPz$UuzP_wXe4?r6E4EG<^quJjF6D{{zRH3DyN>@Sem|r*L`v9-|ik&*@ylDsqj(GF(7~d0tg_0 z00IagfB*srAfPLt=`S$ziVZh83asnYTgfZ|{RMOh*#H3q5I_I{1Q0*~0R#|00D&GW zpqWRIclGM)-(Qn;GQoKSvSyGazLJ|qAbJZJ#XJH_A@c}&?5l?djsOA(AbFQ9sk;%#)ek$43jqWWKmY**5I_I{1Q0*~fnF{k&-o+k5$s=Z;PxN>?dehU7wF}$3JxCu z1Q0*~0R#|0009ILK%ln>$aw^jx`6#}>2JSqjdG?P^9U{yw@+>!fw-a3y4qk}%{+qM z@?zsS5kLR|1Q0*~0R(!C0P_f#N8l*zr1c1zR;a5v%wRQ#gjRD9s}KZSp%o*J zP#5SXb%CaGwQ6u-cdQzCD5Mz@G6fTTo+hhvE`k4%dbDtj=I1w@xgcwb%DnW z*2ky|^p^j)aGVGrfB*srAbfrRSb>OwznZo;Pb#$)IBnu&yT~?2kyj{=5@lLw)jcIUa#EZ_ zUZ8bB;{4|Y%<>Z;To+jRlKHEXgDx&)J%U!Bi~Ior1Q0*~0R#|0009ILKmdVM6p&;6 zk@W~ZT%Wn;Pgm_(q#kInC!xGP6%U+aLI42-5I_I{1Q0*~0R#|000D!X3lPZ*80K$# zcA)2_dt_d~nE9+h{GST~2q1s}0tg_000IagfB*srbiIJHpFQ^~>jj21!@avdyXCKs z?w(cY*k97Lso$`_HlA^(-Sg+iFP>gLXvk;VN9HYeEw0P^US6#~@9J@RcHrLuf|(pxJbzwUoi1sn#Ezsc?6NXfN9HXWnYZW91*Guylu#QyXy~}M}PnV z2q1s}0tg_000IagfB*uC3ydE$Qi*B{z922b&SeOF_2r+O#*`a3;qUSQ?r?gz7ve{Wu>F0fVP1v0ntoFae# z0tg_000IagfB*srAb>#E3PdshqClWmYlv(s<_YMP5X4bw@&b!?zgpMt#ACmebpdmx zQRW3?n*lBeAbe>+GD?b{fga3hczFc z*gWQ?4?RUg8v^^+>yN^ld+YzlEb9V& ztlQMQfcSw60tg_000IagfB*srAbz?EcdG(9_?H_HTa2c+b`& zLnhpMWY)%0Q zh#$BhfB*srAbVU{$kiuS8n}C)&=@n zXN$amb++sQO5I_I{1Q0*~0R#|00D-7LbQIo}`=84fKCszc|5{^-Z^w}_ zBd%Vtao?#oK0LnTqW3lr%eY&A6uyrf+MjgMM?0fC)jQ+X-zj;4tnme+FQItK%;Kx> z>HOn+Gj`RVdf~zM8dgu+yee21$Q&8T3y2@NAb{P1qsp0%=y0nisH|NDTDKmp%uL00IagfB*srAb>tuUzwe(1ovP3MMcyCtYOA)q_4JyG4$#ok!^cHUSQDn$?iwqC_W?W0_m3Kn7n|cnH~eZ z;;q3!B7gt_2q1s}0tg_0KzA01ju>zMpnT(y-~RF8yK3FrYtt&$Eq3K!TIMbsvh!ab z{gLw7$P@Y_#%XfIxG3Y^r=mO6J3rRnDS3gc@p9F{sA;C#`Q^{PJ}~vZQ#anW;^6)F zUpDaQ3}ybInfZH4vp2o`&t3~Ug0FXEqMWhNj{bfgykZ0tg_000IagfIv4Ch>jTF^nB%p;U`WW95ngZq4a{c9FN>O z^~kc*M;|(~>A$PK@fYpWA2Ci34(-o;?VjjP^-g>BcS>GB4DE}>1f!^?fI`S`@UFV0tg_000IagfB*srAb