Skip to main content
Version: 1.8.0

Test Carrier Wifi Access Gateway

This guide covers tips for quickly validating Carrier Wifi Access Gateway changes.

Dev environment

In general, all unit testing for CWAG is done on the CWAG test VM.

To SSH into the VM, run

[HOST] cd $MAGMA_ROOT/cwf/gateway
[HOST] vagrant up cwag_test
[HOST] vagrant ssh cwag_test

The commands shown below should be run inside the test VM unless specified otherwise.

Format and verify build

To run all existing unit tests, run

[VM] make -C ${MAGMA_ROOT}/cwf/gateway precommit
[VM] make -C ${MAGMA_ROOT}/cwf/gateway/integ_tests precommit

Run unit tests

To run all existing unit tests, run

[VM] make -C ${MAGMA_ROOT}/cwf/gateway test

Run integration tests

Test setup

CWF integration tests use 3 separate VMs listed below. cwf/gateway/fabfile.py can be used to automate all setup work.

cwag-dev

Runs CWAG docker containers and mock core services needed to run the test. See cwf/gateway/docker-compose.integ-test.yml for the complete list of services.

cwag-test

Runs a UE simulator service and all tests.

magma-trfserver

Runs an iperf3 server to drive traffic through CWAG.

Entire test suite

To run all setup work and the entire CWF integration test suite, run

[HOST] fab integ_test

Once the above command has been executed, which means that the set-up of the VMs etc. has been performed, command-line options can be utilized to rerun the tests without redoing the set-up

[HOST] fab integ_test:provision_vm=False,no_build=True

Individual tests

The command above can be further modified to run one integration test at a time

[HOST] fab integ_test:provision_vm=False,no_build=True,skip_unit_tests=True,test_re=<TEST_TO_RUN>

where <TEST_TO_RUN> is to be replaced by the desired test, e.g. TestGyReAuth. Run fab --display integ_test to see more available options.

Note that running a test can be further expedited by running it directly on the CWAG test VM using gotestsum, which echoes how it is run by the fab command. In particular, the above command can be run with run_tests=False to do the required set-up

[HOST] fab integ_test:run_tests=False,provision_vm=False,no_build=True,skip_unit_tests=True,test_re=<TEST_TO_RUN>

before logging into the CWAG test VM, navigating to the gateway folder and running the test directly

[HOST] vagrant ssh cwag_test
[VM] cd magma/cwf/gateway
[VM] gotestsum --format=standard-verbose --packages='./...' -- -test.short -timeout 50m -count 1 -tags=all -run=<TEST_TO_RUN>

This command can be used to execute the test multiple times in a way that is faster than can be done with the fab command, which may be helpful during development.