Skip to content

Commit 4b4caf3

Browse files
authored
[nexus] stabilize srp_auto_start test (openthread#12954)
This commit stabilizes the Nexus SRP auto-start test by increasing the synchronization wait time from 20 seconds to 30 seconds. The test was occasionally failing in the Nexus environment because the 20-second wait was sometimes insufficient for the SRP server registration to fully propagate through the network data and for the SRP client to process the update and complete its server selection. Increasing the wait time to 30 seconds provides a more robust buffer for these network synchronization events. Verified by running the test 100 times in a loop without failures.
1 parent 39b982c commit 4b4caf3

1 file changed

Lines changed: 14 additions & 14 deletions

File tree

tests/nexus/test_srp_auto_start.cpp

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ void TestSrpAutoStart(void)
6767
server1.Join(client);
6868
server2.Join(client);
6969
server3.Join(client);
70-
nexus.AdvanceTime(20 * Time::kOneSecondInMsec);
70+
nexus.AdvanceTime(30 * Time::kOneSecondInMsec);
7171
VerifyOrQuit(server1.Get<Mle::Mle>().IsFullThreadDevice());
7272
VerifyOrQuit(server2.Get<Mle::Mle>().IsFullThreadDevice());
7373
VerifyOrQuit(server3.Get<Mle::Mle>().IsFullThreadDevice());
@@ -80,7 +80,7 @@ void TestSrpAutoStart(void)
8080
Log("Enable server1 with unicast address mode");
8181
SuccessOrQuit(server1.Get<Srp::Server>().SetAddressMode(Srp::Server::kAddressModeUnicast));
8282
server1.Get<Srp::Server>().SetEnabled(true);
83-
nexus.AdvanceTime(20 * Time::kOneSecondInMsec);
83+
nexus.AdvanceTime(30 * Time::kOneSecondInMsec);
8484

8585
// Check auto start mode on client and check that server1 is selected
8686
Log("Check auto start mode on client and check that server1 is selected");
@@ -93,28 +93,28 @@ void TestSrpAutoStart(void)
9393
// Disable server1 and check client is stopped/disabled.
9494
Log("Disable server1 and check client is stopped/disabled.");
9595
server1.Get<Srp::Server>().SetEnabled(false);
96-
nexus.AdvanceTime(20 * Time::kOneSecondInMsec);
96+
nexus.AdvanceTime(30 * Time::kOneSecondInMsec);
9797
VerifyOrQuit(!client.Get<Srp::Client>().IsRunning());
9898

9999
// Enable server2 with unicast address mode and check client starts again.
100100
Log("Enable server2 with unicast address mode and check client starts again.");
101101
SuccessOrQuit(server2.Get<Srp::Server>().SetAddressMode(Srp::Server::kAddressModeUnicast));
102102
server2.Get<Srp::Server>().SetEnabled(true);
103-
nexus.AdvanceTime(20 * Time::kOneSecondInMsec);
103+
nexus.AdvanceTime(30 * Time::kOneSecondInMsec);
104104
VerifyOrQuit(client.Get<Srp::Client>().IsRunning());
105105
VerifyOrQuit(client.Get<Srp::Client>().GetServerAddress().GetAddress() == server2Mleid);
106106

107107
// Enable server1 and check that client stays with server2
108108
Log("Enable server1 and check that client stays with server2");
109109
server1.Get<Srp::Server>().SetEnabled(true);
110-
nexus.AdvanceTime(20 * Time::kOneSecondInMsec);
110+
nexus.AdvanceTime(30 * Time::kOneSecondInMsec);
111111
VerifyOrQuit(client.Get<Srp::Client>().IsRunning());
112112
VerifyOrQuit(client.Get<Srp::Client>().GetServerAddress().GetAddress() == server2Mleid);
113113

114114
// Disable server2 and check client switches to server1.
115115
Log("Disable server2 and check client switches to server1.");
116116
server2.Get<Srp::Server>().SetEnabled(false);
117-
nexus.AdvanceTime(20 * Time::kOneSecondInMsec);
117+
nexus.AdvanceTime(30 * Time::kOneSecondInMsec);
118118
VerifyOrQuit(client.Get<Srp::Client>().IsRunning());
119119
VerifyOrQuit(client.Get<Srp::Client>().GetServerAddress().GetAddress() == server1Mleid);
120120

@@ -123,7 +123,7 @@ void TestSrpAutoStart(void)
123123
SuccessOrQuit(server2.Get<Srp::Server>().SetAddressMode(Srp::Server::kAddressModeAnycast));
124124
SuccessOrQuit(server2.Get<Srp::Server>().SetAnycastModeSequenceNumber(1));
125125
server2.Get<Srp::Server>().SetEnabled(true);
126-
nexus.AdvanceTime(20 * Time::kOneSecondInMsec);
126+
nexus.AdvanceTime(30 * Time::kOneSecondInMsec);
127127

128128
VerifyOrQuit(server2.Get<Srp::Server>().GetAnycastModeSequenceNumber() == 1);
129129
VerifyOrQuit(client.Get<Srp::Client>().IsRunning());
@@ -135,7 +135,7 @@ void TestSrpAutoStart(void)
135135
SuccessOrQuit(server3.Get<Srp::Server>().SetAddressMode(Srp::Server::kAddressModeAnycast));
136136
SuccessOrQuit(server3.Get<Srp::Server>().SetAnycastModeSequenceNumber(2));
137137
server3.Get<Srp::Server>().SetEnabled(true);
138-
nexus.AdvanceTime(20 * Time::kOneSecondInMsec);
138+
nexus.AdvanceTime(30 * Time::kOneSecondInMsec);
139139

140140
VerifyOrQuit(server3.Get<Srp::Server>().GetAnycastModeSequenceNumber() == 2);
141141
VerifyOrQuit(client.Get<Srp::Client>().IsRunning());
@@ -145,7 +145,7 @@ void TestSrpAutoStart(void)
145145
// Disable server3 and check that client goes back to server2.
146146
Log("Disable server3 and check that client goes back to server2.");
147147
server3.Get<Srp::Server>().SetEnabled(false);
148-
nexus.AdvanceTime(20 * Time::kOneSecondInMsec);
148+
nexus.AdvanceTime(30 * Time::kOneSecondInMsec);
149149
VerifyOrQuit(client.Get<Srp::Client>().IsRunning());
150150
VerifyOrQuit(client.Get<Srp::Client>().GetServerAddress().GetAddress().GetIid().IsAnycastServiceLocator());
151151
VerifyOrQuit(client.Get<Srp::Client>().GetServerAddress().GetPort() == anycastPort);
@@ -155,7 +155,7 @@ void TestSrpAutoStart(void)
155155
Log("Enable server3 with anycast mode seq-num 0 and check that client stays with server2.");
156156
SuccessOrQuit(server3.Get<Srp::Server>().SetAnycastModeSequenceNumber(0));
157157
server3.Get<Srp::Server>().SetEnabled(true);
158-
nexus.AdvanceTime(20 * Time::kOneSecondInMsec);
158+
nexus.AdvanceTime(30 * Time::kOneSecondInMsec);
159159
VerifyOrQuit(server3.Get<Srp::Server>().GetAnycastModeSequenceNumber() == 0);
160160
VerifyOrQuit(client.Get<Srp::Client>().IsRunning());
161161
VerifyOrQuit(client.Get<Srp::Client>().GetServerAddress().GetAddress().GetIid().IsAnycastServiceLocator());
@@ -164,15 +164,15 @@ void TestSrpAutoStart(void)
164164
// Disable server2 and check that client goes back to server3.
165165
Log("Disable server2 and check that client goes back to server3.");
166166
server2.Get<Srp::Server>().SetEnabled(false);
167-
nexus.AdvanceTime(20 * Time::kOneSecondInMsec);
167+
nexus.AdvanceTime(30 * Time::kOneSecondInMsec);
168168
VerifyOrQuit(client.Get<Srp::Client>().IsRunning());
169169
VerifyOrQuit(client.Get<Srp::Client>().GetServerAddress().GetAddress().GetIid().IsAnycastServiceLocator());
170170
VerifyOrQuit(client.Get<Srp::Client>().GetServerAddress().GetPort() == anycastPort);
171171

172172
// Disable server3 and check that client goes back to server1 with unicast address.
173173
Log("Disable server3 and check that client goes back to server1 with unicast address.");
174174
server3.Get<Srp::Server>().SetEnabled(false);
175-
nexus.AdvanceTime(20 * Time::kOneSecondInMsec);
175+
nexus.AdvanceTime(30 * Time::kOneSecondInMsec);
176176
VerifyOrQuit(client.Get<Srp::Client>().IsRunning());
177177
VerifyOrQuit(client.Get<Srp::Client>().GetServerAddress().GetAddress() == server1Mleid);
178178

@@ -181,7 +181,7 @@ void TestSrpAutoStart(void)
181181
SuccessOrQuit(server2.Get<Srp::Server>().SetAddressMode(Srp::Server::kAddressModeAnycast));
182182
SuccessOrQuit(server2.Get<Srp::Server>().SetAnycastModeSequenceNumber(5));
183183
server2.Get<Srp::Server>().SetEnabled(true);
184-
nexus.AdvanceTime(20 * Time::kOneSecondInMsec);
184+
nexus.AdvanceTime(30 * Time::kOneSecondInMsec);
185185
VerifyOrQuit(server2.Get<Srp::Server>().GetAnycastModeSequenceNumber() == 5);
186186
VerifyOrQuit(client.Get<Srp::Client>().IsRunning());
187187
VerifyOrQuit(client.Get<Srp::Client>().GetServerAddress().GetAddress().GetIid().IsAnycastServiceLocator());
@@ -231,7 +231,7 @@ void TestSrpAutoStart(void)
231231
// Finally disable server2, and check that client is disabled.
232232
Log("Finally disable server2, and check that client is disabled.");
233233
server2.Get<Srp::Server>().SetEnabled(false);
234-
nexus.AdvanceTime(20 * Time::kOneSecondInMsec);
234+
nexus.AdvanceTime(30 * Time::kOneSecondInMsec);
235235
VerifyOrQuit(!client.Get<Srp::Client>().IsRunning());
236236
}
237237

0 commit comments

Comments
 (0)