1#!/usr/bin/expect -f 2# 3# Copyright (c) 2023, The OpenThread Authors. 4# All rights reserved. 5# 6# Redistribution and use in source and binary forms, with or without 7# modification, are permitted provided that the following conditions are met: 8# 1. Redistributions of source code must retain the above copyright 9# notice, this list of conditions and the following disclaimer. 10# 2. Redistributions in binary form must reproduce the above copyright 11# notice, this list of conditions and the following disclaimer in the 12# documentation and/or other materials provided with the distribution. 13# 3. Neither the name of the copyright holder nor the 14# names of its contributors may be used to endorse or promote products 15# derived from this software without specific prior written permission. 16# 17# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 18# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 21# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 22# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 25# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 27# POSSIBILITY OF SUCH DAMAGE. 28# 29 30source "tests/scripts/expect/_common.exp" 31source "tests/scripts/expect/_multinode.exp" 32 33spawn_node 2 "cli" 34spawn_node 1 "cli" 35setup_leader 36setup_node 2 "rnd" "router" 37 38switch_node 1 39send "tcp init tls\n" 40expect_line "Done" 41 42switch_node 2 43send "tcp init tls\n" 44expect_line "Done" 45set addr_2 [get_ipaddr mleid] 46send "tcp listen :: 30000\n" 47expect_line "Done" 48send "tcp stoplistening\n" 49expect_line "Done" 50 51switch_node 1 52send "tcp connect $addr_2 30000\n" 53expect_line "Done" 54expect "TCP: Connection refused" 55 56switch_node 2 57send "tcp listen :: 30000\n" 58expect_line "Done" 59 60switch_node 1 61set addr_1 [get_ipaddr mleid] 62send "tcp bind $addr_1 25000\n" 63expect_line "Done" 64send "tcp connect $addr_2 30000 fast\n" 65expect_line "Done" 66expect "TCP: Connection established" 67expect "TLS Handshake Complete" 68 69switch_node 2 70expect "Accepted connection from \\\[$addr_1\\\]:25000" 71expect "TCP: Connection established" 72expect "TLS Handshake Complete" 73 74switch_node 1 75send "tcp send hello\n" 76expect_line "Done" 77 78switch_node 2 79expect "TLS: Received 5 bytes: hello" 80expect "(TCP: Received 26 bytes)" 81send "tcp send world\n" 82expect_line "Done" 83 84switch_node 1 85expect "TLS: Received 5 bytes: world" 86expect "(TCP: Received 26 bytes)" 87send "tcp sendend\n" 88expect_line "Done" 89send "tcp send more\n" 90expect_line "Error 1: Failed" 91 92switch_node 2 93expect "TCP: Reached end of stream" 94send "tcp send goodbye\n" 95expect_line "Done" 96 97switch_node 1 98expect "TLS: Received 7 bytes: goodbye" 99expect "(TCP: Received 28 bytes)" 100 101switch_node 2 102send "tcp sendend\n" 103expect_line "Done" 104expect "TCP: Disconnected" 105 106switch_node 1 107expect "TCP: Reached end of stream" 108expect "TCP: Entered TIME-WAIT state" 109set timeout 130 110expect "TCP: Disconnected" 111 112dispose_all 113