mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-07-27 13:06:51 +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.
|
you can run these commands as root.
|
||||||
|
|
||||||
```console
|
```console
|
||||||
make topotests-build
|
|
||||||
make topotests
|
make topotests
|
||||||
```
|
```
|
||||||
|
|
||||||
The first command will build a docker image with all the dependencies needed
|
This command will pull the most recent topotests image from dockerhub, compile FRR inside
|
||||||
to run the topotests.
|
|
||||||
|
|
||||||
The second command will spawn an instance of this image, compile FRR inside
|
|
||||||
of it, and run the topotests.
|
of it, and run the topotests.
|
||||||
|
|
||||||
## Advanced Usage
|
## 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.
|
container.
|
||||||
|
|
||||||
There are several environment variables which can be used to modify the behavior
|
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
|
```console
|
||||||
./tests/topotests/docker/frr-topotests.sh /bin/bash
|
./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
|
TOPOTEST_OPTIONS These options are appended to the docker-run
|
||||||
command for starting the tests.
|
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.
|
TOPOTEST_SANITIZER Controls whether to use the address sanitizer.
|
||||||
Enabled by default, set to 0 to disable.
|
Enabled by default, set to 0 to disable.
|
||||||
|
|
||||||
@ -132,6 +135,10 @@ if [ -z "$TOPOTEST_BUILDCACHE" ]; then
|
|||||||
|| docker volume create "${TOPOTEST_BUILDCACHE}"
|
|| docker volume create "${TOPOTEST_BUILDCACHE}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "${TOPOTEST_PULL:-1}" = "1" ]; then
|
||||||
|
docker pull frrouting/frr:topotests-latest
|
||||||
|
fi
|
||||||
|
|
||||||
set -- --rm -i \
|
set -- --rm -i \
|
||||||
-v "$TOPOTEST_LOGS:/tmp" \
|
-v "$TOPOTEST_LOGS:/tmp" \
|
||||||
-v "$TOPOTEST_FRR:/root/host-frr:ro" \
|
-v "$TOPOTEST_FRR:/root/host-frr:ro" \
|
||||||
|
Loading…
Reference in New Issue
Block a user