0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-12-22 09:41:54 +00:00

Netlab tests can be called from this repository.

To allow this, I added bird-tools as a submodule (aux-tools). To run
netlab tests, call

	make aux-test-prepare
	make netlab-tests

and wait patiently until all the tests finish.

You may also request single netlab tests:

	make netlab-test-ospf-base

To rerun the tests, run

	make netlab-tests-reset

and all the test results are wiped to run a fresh batch.
This commit is contained in:
Maria Matejka 2022-11-08 11:26:11 +01:00
parent 84545a26cc
commit 01021b2e54
5 changed files with 57 additions and 39 deletions

View File

@ -4,7 +4,6 @@ variables:
GIT_STRATEGY: fetch GIT_STRATEGY: fetch
DOCKER_CMD: docker --config="$HOME/.docker/$CI_JOB_ID/" DOCKER_CMD: docker --config="$HOME/.docker/$CI_JOB_ID/"
IMG_BASE: registry.nic.cz/labs/bird IMG_BASE: registry.nic.cz/labs/bird
TOOLS_DIR: /var/lib/gitlab-runner/bird-tools
STAYRTR_BINARY: /var/lib/gitlab-runner/stayrtr-0.1-108-g8d18a41-linux-x86_64 STAYRTR_BINARY: /var/lib/gitlab-runner/stayrtr-0.1-108-g8d18a41-linux-x86_64
stages: stages:
@ -526,13 +525,8 @@ build-birdlab:
script: script:
- DIR=$(pwd) - DIR=$(pwd)
- autoreconf - autoreconf
- ./configure - ./configure --with-stayrtr=$STAYRTR_BINARY
- make - make aux-test-prepare
- cd $TOOLS_DIR
- sudo git clean -fx
- git pull --ff-only
- mv $DIR/bird $DIR/birdc netlab/common
- ln -s $STAYRTR_BINARY netlab/common/stayrtr
.test: &test-base .test: &test-base
stage: test stage: test
@ -541,146 +535,145 @@ build-birdlab:
- birdlab - birdlab
- amd64 - amd64
script: script:
- cd $TOOLS_DIR/netlab - cd aux-tools/netlab
- sudo ./stop - make -f tests-v2.mk NETLAB_TEST_SHOW_OUTPUT=1 netlab-test-$TEST_NAME
- sudo ./runtest -s v2 -m check $TEST_NAME
test-ospf-base: test-ospf-base:
<<: *test-base <<: *test-base
variables: variables:
TEST_NAME: cf-ospf-base TEST_NAME: ospf-base
test-ospf-default: test-ospf-default:
<<: *test-base <<: *test-base
variables: variables:
TEST_NAME: cf-ospf-default TEST_NAME: ospf-default
test-ospf-priority: test-ospf-priority:
<<: *test-base <<: *test-base
variables: variables:
TEST_NAME: cf-ospf-priority TEST_NAME: ospf-priority
test-ospf-nbma: test-ospf-nbma:
<<: *test-base <<: *test-base
variables: variables:
TEST_NAME: cf-ospf-nbma TEST_NAME: ospf-nbma
test-ospf-ptmp: test-ospf-ptmp:
<<: *test-base <<: *test-base
variables: variables:
TEST_NAME: cf-ospf-ptmp TEST_NAME: ospf-ptmp
test-ospf-authentication: test-ospf-authentication:
<<: *test-base <<: *test-base
variables: variables:
TEST_NAME: cf-ospf-authentication TEST_NAME: ospf-authentication
test-ospf-bfd: test-ospf-bfd:
<<: *test-base <<: *test-base
variables: variables:
TEST_NAME: cf-ospf-bfd TEST_NAME: ospf-bfd
test-ospf-custom: test-ospf-custom:
<<: *test-base <<: *test-base
variables: variables:
TEST_NAME: cf-ospf-custom TEST_NAME: ospf-custom
test-ospf-area: test-ospf-area:
<<: *test-base <<: *test-base
variables: variables:
TEST_NAME: cf-ospf-area TEST_NAME: ospf-area
test-ospf-vrf: test-ospf-vrf:
<<: *test-base <<: *test-base
variables: variables:
TEST_NAME: cf-ospf-vrf TEST_NAME: ospf-vrf
test-bgp-base: test-bgp-base:
<<: *test-base <<: *test-base
variables: variables:
TEST_NAME: cf-bgp-base TEST_NAME: bgp-base
test-bgp-auth: test-bgp-auth:
<<: *test-base <<: *test-base
variables: variables:
TEST_NAME: cf-bgp-auth TEST_NAME: bgp-auth
test-bgp-int: test-bgp-int:
<<: *test-base <<: *test-base
variables: variables:
TEST_NAME: cf-bgp-int TEST_NAME: bgp-int
test-bgp-merged: test-bgp-merged:
<<: *test-base <<: *test-base
variables: variables:
TEST_NAME: cf-bgp-merged TEST_NAME: bgp-merged
test-bgp-flowspec: test-bgp-flowspec:
<<: *test-base <<: *test-base
variables: variables:
TEST_NAME: cf-bgp-flowspec TEST_NAME: bgp-flowspec
test-bgp-rs-multitab: test-bgp-rs-multitab:
<<: *test-base <<: *test-base
variables: variables:
TEST_NAME: cf-bgp-rs-multitab TEST_NAME: bgp-rs-multitab
test-ebgp-loop: test-ebgp-loop:
<<: *test-base <<: *test-base
variables: variables:
TEST_NAME: cf-ebgp-loop TEST_NAME: ebgp-loop
test-ebgp-star: test-ebgp-star:
<<: *test-base <<: *test-base
variables: variables:
TEST_NAME: cf-ebgp-star TEST_NAME: ebgp-star
test-ebgp-role: test-ebgp-role:
<<: *test-base <<: *test-base
variables: variables:
TEST_NAME: cf-ebgp-role TEST_NAME: ebgp-role
test-ebgp-graceful: test-ebgp-graceful:
<<: *test-base <<: *test-base
variables: variables:
TEST_NAME: cf-ebgp-graceful TEST_NAME: ebgp-graceful
test-ebgp-import-limit: test-ebgp-import-limit:
<<: *test-base <<: *test-base
variables: variables:
TEST_NAME: cf-ebgp-import-limit TEST_NAME: ebgp-import-limit
test-ibgp-loop: test-ibgp-loop:
<<: *test-base <<: *test-base
variables: variables:
TEST_NAME: cf-ibgp-loop TEST_NAME: ibgp-loop
test-ibgp-loop-big: test-ibgp-loop-big:
<<: *test-base <<: *test-base
variables: variables:
TEST_NAME: cf-ibgp-loop-big TEST_NAME: ibgp-loop-big
test-ibgp-flat: test-ibgp-flat:
<<: *test-base <<: *test-base
variables: variables:
TEST_NAME: cf-ibgp-flat TEST_NAME: ibgp-flat
test-babel-base: test-babel-base:
<<: *test-base <<: *test-base
variables: variables:
TEST_NAME: cf-babel-base TEST_NAME: babel-base
test-babel-auth: test-babel-auth:
<<: *test-base <<: *test-base
variables: variables:
TEST_NAME: cf-babel-auth TEST_NAME: babel-auth
test-rip-base: test-rip-base:
<<: *test-base <<: *test-base
variables: variables:
TEST_NAME: cf-rip-base TEST_NAME: rip-base
test-kernel-learn: test-kernel-learn:
<<: *test-base <<: *test-base
variables: variables:
TEST_NAME: cf-kernel-learn TEST_NAME: kernel-learn

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "aux-tools"]
path = aux-tools
url = https://gitlab.nic.cz/labs/bird-tools.git

View File

@ -23,6 +23,9 @@ INSTALL=@INSTALL@
INSTALL_PROGRAM=@INSTALL_PROGRAM@ INSTALL_PROGRAM=@INSTALL_PROGRAM@
INSTALL_DATA=@INSTALL_DATA@ INSTALL_DATA=@INSTALL_DATA@
STAYRTR_BINARY=@STAYRTR_BINARY@
NETLAB_DATA_SUFFIX=v2
client=$(addprefix $(exedir)/,@CLIENT@) client=$(addprefix $(exedir)/,@CLIENT@)
daemon=$(exedir)/bird daemon=$(exedir)/bird
protocols=@protocols@ protocols=@protocols@
@ -185,6 +188,16 @@ check: tests tests_run
tests: $(tests_targets) tests: $(tests_targets)
tests_run: $(tests_targets_ok) tests_run: $(tests_targets_ok)
aux-test-prepare: all
$(E)echo Preparing netlab test suite ...
$(Q)cd $(srcdir) && git submodule update --init --force --checkout aux-tools
$(Q)cd $(srcdir)/aux-tools && git clean -fxdq || true
$(Q)cd $(srcdir)/aux-tools/netlab/common && ln $(shell readlink -f $(exedir)/bird) && ln $(shell readlink -f $(exedir)/birdc)
$(Q)cd $(srcdir)/aux-tools/netlab/common && ln -s $(STAYRTR_BINARY) stayrtr
$(E)echo Netlab test suite prepared.
-include $(srcdir)/aux-tools/netlab/tests-$(NETLAB_DATA_SUFFIX).mk
STATIC_CHECKERS_ENABLE := nullability.NullableDereferenced nullability.NullablePassedToNonnull nullability.NullableReturnedFromNonnull optin.portability.UnixAPI valist.CopyToSelf valist.Uninitialized valist.Unterminated STATIC_CHECKERS_ENABLE := nullability.NullableDereferenced nullability.NullablePassedToNonnull nullability.NullableReturnedFromNonnull optin.portability.UnixAPI valist.CopyToSelf valist.Uninitialized valist.Unterminated
STATIC_CHECKERS_DISABLE := deadcode.DeadStores STATIC_CHECKERS_DISABLE := deadcode.DeadStores
STATIC_SCAN_FLAGS := -o $(objdir)/static-scan/ $(addprefix -enable-checker ,$(STATIC_CHECKERS_ENABLE)) $(addprefix -disable-checker ,$(STATIC_CHECKERS_DISABLE)) STATIC_SCAN_FLAGS := -o $(objdir)/static-scan/ $(addprefix -enable-checker ,$(STATIC_CHECKERS_ENABLE)) $(addprefix -disable-checker ,$(STATIC_CHECKERS_DISABLE))

1
aux-tools Submodule

@ -0,0 +1 @@
Subproject commit 646d38aa85d41781ed2428d2e86ac7e078a568ff

View File

@ -74,10 +74,18 @@ AC_ARG_WITH([iproutedir],
[given_iproutedir="yes"] [given_iproutedir="yes"]
) )
AC_ARG_WITH([stayrtr],
[AS_HELP_STRING([--with-stayrtr=PATH], [path to stayrtr built binary for RPKI testing @<:@/usr/bin/stayrtr@:>@])],
[],
[with_stayrtr="/usr/bin/stayrtr"]
)
AC_ARG_VAR([FLEX], [location of the Flex program]) AC_ARG_VAR([FLEX], [location of the Flex program])
AC_ARG_VAR([BISON], [location of the Bison program]) AC_ARG_VAR([BISON], [location of the Bison program])
AC_ARG_VAR([M4], [location of the M4 program]) AC_ARG_VAR([M4], [location of the M4 program])
AC_SUBST([STAYRTR_BINARY], [${with_stayrtr}])
if test "$enable_debug_expensive" = yes; then if test "$enable_debug_expensive" = yes; then
enable_debug=yes enable_debug=yes
fi fi