Files
openthread/tests/scripts/thread-cert/border_router
Jason Zhang 67717618b7 [test] support multiple backbone interfaces in otbr docker test (#10550)
In previous otbr docker tests, when creating docker containers, all the
containers(otbr nodes) are connected to the same docker network bridge `backbone0`
(when the env PORT_OFFSET is not set or set to 0), this means all the
otbr nodes are connected to the same infrastructures.

This commit adds support to enable user to config otbr instance
infrastructures seperately in `TOPOLOGY` when defining test cases, this
provides flexibility to run multi-ail related test cases.

The format to define backbone interface per node is:

```
class NewTestCase(thread_cert.TestCase):
    ...
    BR = 1
    ...
    TOPOLOGY = {
        BR: {
            ...
	    'is_otbr': True,
	    'backbone': <backbone-name>,
	    ...
	}
	...
    }
    ...
```

`'backbone': <backbone-name>` is optional, when it's not given when
defining a otbr node, the backbone is default as
`BACKBONE_DOCKER_NETWORK_NAME`. The `<backbone-name>` is suggested to be
defined as `backbone[0-9]` to make it more easy to read and understand.

This commit also adds test_multi_ail.py as an example test case to use
this new method, this test case checks the two otbr nodes are connected
to the different infra and are in the same Thread mesh network.
2024-08-08 07:44:26 -07:00
..

OpenThread Border Router Tests

Run Border Router (BR) tests locally

BR tests run in isolated Docker network and containers, so a new OTBR Docker image needs to be created before running these tests:

# Use root privilege when necessary.

# Download OpenThread's branch of wireshark. Run this for the first time.
./script/test get_thread_wireshark

# Clear current OpenThread directory (remember to add new source files).
git clean -xfd

# Rebuild the OTBR Docker image if OTBR source code is updated.
LOCAL_OTBR_DIR=$HOME/ot-br-posix ./script/test build_otbr_docker

# Build simulated OpenThread firmware.
VIRTUAL_TIME=0 ./script/test build

# Run the BR tests locally.
TEST_CASE=./tests/scripts/thread-cert/border_router/test_advertising_proxy.py
VERBOSE=1 PACKET_VERIFICATION=1 VIRTUAL_TIME=0 ./script/test cert_suite ${TEST_CASE}