[csl] test resync after parent is down for a long period (#7915)

Add test steps to verify that a CSL Receiver is able to re-establish
CSL synchronization after its peer has been absent for a long period.
This commit is contained in:
Eduardo Montoya
2022-07-20 15:11:34 -07:00
committed by Jonathan Hui
parent 7b60716713
commit 424005f695
@@ -125,6 +125,23 @@ class SSED_CslTransmission(thread_cert.TestCase):
ssed_messages = self.simulator.get_messages_sent_by(SSED_1)
self.assertIsNotNone(ssed_messages.next_data_poll())
# Check if SSED is able to resynchronize with the parent after it is gone longer than the timeout
self.nodes[LEADER].start()
self.simulator.go(config.LEADER_STARTUP_DELAY)
self.nodes[SSED_1].set_csl_timeout(8)
self.nodes[SSED_1].set_timeout(10)
self.simulator.go(2)
self.nodes[LEADER].stop()
self.simulator.go(25)
self.flush_all()
self.nodes[LEADER].start()
self.simulator.go(config.LEADER_STARTUP_DELAY)
self.assertEqual(self.nodes[LEADER].get_state(), 'leader')
self.simulator.go(5)
self.assertEqual(self.nodes[SSED_1].get_state(), 'child')
ssed_messages = self.simulator.get_messages_sent_by(SSED_1)
self.assertIsNotNone(ssed_messages.next_mle_message(mle.CommandType.CHILD_UPDATE_REQUEST))
if __name__ == '__main__':
unittest.main()