| This folder contains tests meant to be run with BabbleSim's physical layer | 
 | simulation, and therefore cannot be run directly from twister. | 
 |  | 
 | The compile.sh and run_parallel.sh scripts are used by the CI system to build | 
 | the needed images and execute these tests in batch. | 
 |  | 
 | You can also run them manually if desired, but be sure to call them setting | 
 | the variables they expect. For example, from Zephyr's root folder, you can run: | 
 |  | 
 | ``` | 
 | WORK_DIR=${ZEPHYR_BASE}/bsim_out tests/bsim/compile.sh | 
 | RESULTS_FILE=${ZEPHYR_BASE}/myresults.xml SEARCH_PATH=tests/bsim tests/bsim/run_parallel.sh | 
 | ``` | 
 |  | 
 | Or to run only a specific subset, e.g. host advertising tests: | 
 |  | 
 | ``` | 
 | WORK_DIR=${ZEPHYR_BASE}/bsim_out tests/bsim/bluetooth/host/compile.sh | 
 | RESULTS_FILE=${ZEPHYR_BASE}/myresults.xml \ | 
 | SEARCH_PATH=tests/bsim/bluetooth/host/adv tests/bsim/run_parallel.sh | 
 | ``` | 
 |  | 
 | Check the run_parallel.sh help for more options and examples on how to use this script to run these | 
 | tests in batch. | 
 |  | 
 | After building the tests' required binaries you can run a test directly with its individual | 
 | test scripts. | 
 |  | 
 | For example you can build the required binaries for the networking tests with | 
 |  | 
 | ``` | 
 | WORK_DIR=${ZEPHYR_BASE}/bsim_out tests/bsim/net/compile.sh | 
 | ``` | 
 | and then directly run one of the tests: | 
 |  | 
 | ``` | 
 | tests/bsim/net/sockets/echo_test/tests_scripts/echo_test_802154.sh | 
 | ``` | 
 |  | 
 |  | 
 | Generating coverage reports | 
 | --------------------------- | 
 |  | 
 | You can use `tests/bsim/generate_coverage_report.sh` to generate a coverage report | 
 | of the BabbleSim tests which have been run. Check its help for more info. | 
 |  | 
 |  | 
 | Conventions about these tests scripts | 
 | ------------------------------------- | 
 |  | 
 | Each test is defined by a shell script with the extension `.sh`. | 
 | Scripts starting with an underscore (`_`) are ignored. | 
 |  | 
 | Each of these test scripts expects the binaries their require already built, and will execute | 
 | the required simulated devices and physical layer simulation with the required command line | 
 | options. | 
 |  | 
 | Tests must return 0 to the invoking shell if the test passes, and not 0 if the test | 
 | fails. | 
 |  | 
 | It is recommended to have a single test for each test script. | 
 |  | 
 | Each test must have a unique simulation id, to enable running different tests in parallel. | 
 |  | 
 | These scripts should not compile the images on their own. | 
 |  | 
 | Neither the scripts nor the images should modify the workstation filesystem content beyond the | 
 | `${BSIM_OUT_PATH}/results/<simulation_id>/` or `/tmp/` folders. | 
 | That is, they should not leave straneous files behind. | 
 |  | 
 | If these scripts or the test binaries create temporary files, they should preferably do so by | 
 | placing them in the `${BSIM_OUT_PATH}/results/<simulation_id>/` folder. | 
 | Otherwise they should be named as to avoid conflicts with other test scripts which may be running | 
 | in parallel. | 
 |  | 
 | When running tests that require several consecutive simulations, for ex. if simulating a device | 
 | pairing, powering off, and powering up after as a new simulation, | 
 | they should strive for using separate simulation ids for each simulation part, | 
 | in that way ensuring that the simulation radio activity of each segment can be inspected a | 
 | posteriori. | 
 |  | 
 |  | 
 | Conventions about the build scripts | 
 | ----------------------------------- | 
 |  | 
 | The build scripts (compile.sh) simply build all the required test and sample applications | 
 | for the tests' scripts placed in the subfolders below. | 
 |  | 
 | This build scripts use the common compile.source which provide a function (compile) which calls | 
 | cmake and ninja with the provided application, configuration and overlay files. | 
 |  | 
 | To speed up compilation for users interested only in a subset of tests, several compile scripts | 
 | exist in several subfolders, where the upper ones call into the lower ones. | 
 |  | 
 | Note that cmake and ninja are used directly instead of the `west build` wrapper as west is not | 
 | required, and some Zephyr users do not use or have west, but still use this build and tests scripts. |