mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-07-27 10:04:18 +00:00
Merge pull request #3459 from opensourcerouting/feature/topotests-registry
tests/topotests: Pull docker image from registry
This commit is contained in:
commit
33fc89ddf2
@ -10,19 +10,15 @@ Your current user needs to have access to the Docker daemon. Alternatively
|
||||
you can run these commands as root.
|
||||
|
||||
```console
|
||||
make topotests-build
|
||||
make topotests
|
||||
```
|
||||
|
||||
The first command will build a docker image with all the dependencies needed
|
||||
to run the topotests.
|
||||
|
||||
The second command will spawn an instance of this image, compile FRR inside
|
||||
This command will pull the most recent topotests image from dockerhub, compile FRR inside
|
||||
of it, and run the topotests.
|
||||
|
||||
## Advanced Usage
|
||||
|
||||
Internally, the topotests make target uses a shell script to spawn the docker
|
||||
Internally, the topotests make target uses a shell script to pull the image and spawn the docker
|
||||
container.
|
||||
|
||||
There are several environment variables which can be used to modify the behavior
|
||||
@ -55,3 +51,22 @@ And to compile FRR but drop into a shell instead of running pytest:
|
||||
```console
|
||||
./tests/topotests/docker/frr-topotests.sh /bin/bash
|
||||
```
|
||||
|
||||
## Development
|
||||
|
||||
The docker image just includes all the components to run the topotests, but not the topotests
|
||||
themselves. So if you just want to write tests and don't want to make changes to the environment
|
||||
provided by the docker image. You don't need to build your own docker image if you do not want to.
|
||||
|
||||
When developing new tests, there is one caveat though: The startup script of the container will
|
||||
run a `git-clean` on its copy of the FRR tree to avoid any pollution of the container with build
|
||||
artefacts from the host. This will also result in your newly written tests being unavailable in the
|
||||
container unless at least added to the index with `git-add`.
|
||||
|
||||
If you do want to test changes to the docker image, you can locally build the image and run the tests
|
||||
without pulling from the registry using the following commands:
|
||||
|
||||
```console
|
||||
make topotests-build
|
||||
TOPOTEST_PULL=0 make topotests
|
||||
```
|
||||
|
@ -61,6 +61,9 @@ if [[ "$1" = "-h" ]] || [[ "$1" = "--help" ]]; then
|
||||
TOPOTEST_OPTIONS These options are appended to the docker-run
|
||||
command for starting the tests.
|
||||
|
||||
TOPOTEST_PULL If set to 0, don't try to pull the most recent
|
||||
version of the docker image from dockerhub.
|
||||
|
||||
TOPOTEST_SANITIZER Controls whether to use the address sanitizer.
|
||||
Enabled by default, set to 0 to disable.
|
||||
|
||||
@ -132,6 +135,10 @@ if [ -z "$TOPOTEST_BUILDCACHE" ]; then
|
||||
|| docker volume create "${TOPOTEST_BUILDCACHE}"
|
||||
fi
|
||||
|
||||
if [ "${TOPOTEST_PULL:-1}" = "1" ]; then
|
||||
docker pull frrouting/frr:topotests-latest
|
||||
fi
|
||||
|
||||
set -- --rm -i \
|
||||
-v "$TOPOTEST_LOGS:/tmp" \
|
||||
-v "$TOPOTEST_FRR:/root/host-frr:ro" \
|
||||
|
Loading…
Reference in New Issue
Block a user