diff --git a/doc/TESTBenches.md b/doc/TESTBenches.md index 791b3e8284..31b8f9e85c 100644 --- a/doc/TESTBenches.md +++ b/doc/TESTBenches.md @@ -165,3 +165,53 @@ Webhook ~documentation ~BUILD-ONLY ~4G-LTE ~5G-NR - [RAN-SA-Module-CN5G](https://jenkins-oai.eurecom.fr/view/RAN/job/RAN-SA-Module-CN5G/) - asterix + N310 (gNB), nrmodule2 + Quectel, porcepix w/ OAI 5GC - NR 2x2 (standalone) + +## How to reproduce CI results + +The CI builds docker images at the beginning of every test run. To see the +exact command line steps, please refer to the `docker/Dockerfile.build.*` +files. Note that the console log of each pipeline run also lists the used +docker files. + +The CI uses these images for *most* of the pipelines. It uses docker-compose to +orchestrate the images. To identify the docker-compose file, follow these +steps: + +1. Each CI test run HTML lists the XML file used for a particular test run. + Open the corresponding XML file under `ci-scripts/xml_files/`. +2. The XML file has a "test case" that refers to deployment of the image; it + will reference a directory containing a YAML file (the docker-compose file) + using option `yaml_path`, which will be under `ci-scripts/yaml_files/`. Go + to this directory and open the docker-compose file. +3. The docker-compose file can be used to run images locally, or you can infer + the used configuration file and possible additional options that are to be + passed to the executable to run from source. + +For instance, to see how the CI runs the multi-UE 5G RFsim test case, the above +steps look like this: + +1. The first tab in the 5G RFsim test mentions + `xml_files/container_5g_rfsim.xml`, so open + `ci-scripts/xml_files/container_5g_rfsim.xml`. +2. This XML file has a `DeployGenObject` test case, referencing the directory + `yaml_files/5g_rfsimulator`. The corresponding docker-compose file path is + `ci-scripts/yaml_files/5g_rfsimulator/docker-compose.yaml`. +3. To know how to run the gNB, realize that there is a section `oai-gnb`. It + mounts the configuration + `ci-scripts/conf_files/gnb.sa.band78.106prb.rfsim.conf` (note that the path + is relative to the directory in which the docker-compose file is located). + Further, an environment variable `USE_ADDITIONAL_OPTIONS` is declared, + referencing the relevant options `--sa -E --rfsim` (you can ignore logging + options). You would therefore run the gNB from source like this: + ``` + sudo ./cmake_targets/ran_build/build/nr-softmodem -O ci-scripts/conf_files/gnb.sa.band78.106prb.rfsim.conf --sa -E --rfsim + ``` + To run this on your local machine, assuming you have a 5GC installed, you + might need to change IP information in the config to match your core. + +If you wish, you can rebuild CI images locally following [these +steps](../docker/README.md) and then use the docker-compose file directly. + +Some tests are run from source (e.g. +`ci-scripts/xml_files/gnb_phytest_usrp_run.xml`), which directly give the +options they are run with.