osmith submitted this change.

View Change

Approvals: fixeria: Looks good to me, approved Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve
testenv: README: document env vars set by testenv

Change-Id: I1a43d6b71c4dbc00abd8a4347fb2b35704491591
---
M _testenv/README.md
M _testenv/testenv/cmd.py
2 files changed, 76 insertions(+), 28 deletions(-)

diff --git a/_testenv/README.md b/_testenv/README.md
index 1b62d65..53d3440 100644
--- a/_testenv/README.md
+++ b/_testenv/README.md
@@ -128,34 +128,6 @@
`qemu_functions.sh` and using functions from there. See the `ggsn` testsuite
for reference.

-### Executables
-
-#### $PATH
-
-Executables mentioned in `program=`, `prepare=`, `setup=` and `clean=` run
-with a `PATH` environment variable containing:
-
-* The directory of the testsuite
-* The directory for binaries built from source
-* The directory `_testenv/data/scripts` (which has e.g. `respawn.sh`)
-* The directory `_testenv/data/scripts/qemu`
-
-#### $PWD (current working dir)
-
-The executables run inside a directory with the component name, inside the log
-dir. For example:
-
-```
-/tmp/logs
-├── ggsn # Executables from [ggsn] section run in this dir
-│   ├── ggsn.log
-│   └── osmo-ggsn.cfg
-└── testsuite # Executables from [testsuite] run in this dir
- ├── Common.cfg
- ├── GGSN_Tests.cfg
- └── GGSN_Tests.default
-```
-
### Latest configs

Sometimes we need to run test components and/or testsuites with different
@@ -186,6 +158,10 @@

## Environment variables

+### Environment variables read by testenv
+
+You can set the following environment variables to change testenv behaviour.
+
* `TESTENV_SRC_DIR`:
Set the directory for sources of Osmocom components. The default is the
directory above your osmo-ttcn3-hacks.git clone.
@@ -225,6 +201,76 @@
Instead of attempting to automatically detect the LXC host IP, use this IP.
This can be set to 127.0.0.1 for testing.

+### Environment variables set by testenv
+
+Testenv sets the following variables while running shell commands from
+`program=`, `prepare=`, `setup=` and `clean=`. The variables are set in
+`testenv/cmd.py:init_env()`.
+
+* `PATH`:
+ The user's `PATH` environment variable is prefixed with the following paths:
+ * The directory of the testsuite.
+ * The directory for binaries built from source.
+ * The directory `_testenv/data/scripts` (which has e.g. `respawn.sh`).
+ * The directory `_testenv/data/scripts/qemu`.
+
+* `PWD`:
+ The executables run inside a directory with the component name, inside the
+ log dir. For example:
+
+```
+/tmp/logs
+├── ggsn # Executables from [ggsn] section run in this dir
+│   ├── ggsn.log
+│   └── osmo-ggsn.cfg
+└── testsuite # Executables from [testsuite] run in this dir
+ ├── Common.cfg
+ ├── GGSN_Tests.cfg
+ └── GGSN_Tests.default
+```
+
+* `TESTENV_INSTALL_DIR`:
+ The directory into which the SUT binaries and other files are installed. It
+ is set to `/` for `--podman --binary-repo`,
+ `~/.cache/osmo-ttcn3-testenv/podman` for `--podman` and
+ `~/.cache/osmo-ttcn3-testenv/host` otherwise. The
+ `~/.cache/osmo-ttcn3-testenv` part can be changed with the `--cache`
+ argument. Different cache directories for podman and for the host are used
+ as it is very likely that the binary objects from both are incompatible.
+
+* `TESTENV_SRC_DIR`:
+ Is set to the directory for sources of Osmocom components. The default is the
+ directory above the osmo-ttcn3-hacks.git clone. This can be changed by the
+ user by having `TESTENV_USR_DIR` set while running `testenv.py`.
+
+* `OSMO_DEV_MAKE_DIR`:
+ This variable is unset if `--binary-repo` is used as argument. Otherwise it
+ is set to `~/.cache/osmo-ttcn3-testenv/host/make2` or
+ `~/.cache/osmo-ttcn3-testenv/podman/make2` (with `--podman`) by default. The
+ `~/.cache/osmo-ttcn3-testenv` part can be changed with the `--cache`
+ argument.
+
+* `TESTENV_QEMU_KERNEL`:
+ Is only set if `-C`/`--custom-kernel` or `-D`/`--debian-kernel` parameters
+ are set. With `-C` it is set to `<path to osmo-ttcn3-hacks>/.linux`. With
+ `-D` it is set to `debian`.
+
+* `TESTENV_QEMU_SCRIPTS`:
+ Is set to `<path to osmo-ttcn3-hacks>/_testenv/data/scripts/qemu`.
+
+* `CCACHE_DIR`:
+ Is set to the value of the `--ccache` parameter, which is
+ `~/.cache/osmo-ttcn3-testenv/ccache` by default.
+
+* `PKG_CONFIG_PATH`:
+ Is prefixed with `$TESTENV_INSTALL_DIR/usr/lib/pkgconfig:`.
+
+* `LD_LIBRARY_PATH`:
+ Is prefixed with `$TESTENV_INSTALL_DIR/usr/lib:`.
+
+* `TERM`:
+ Is set to the same `TERM` passed to testenv with fallback to `dumb`.
+
## Troubleshooting

### Timeout waiting for RESET-ACK after sending RESET
diff --git a/_testenv/testenv/cmd.py b/_testenv/testenv/cmd.py
index 24dc110..9a81e30 100644
--- a/_testenv/testenv/cmd.py
+++ b/_testenv/testenv/cmd.py
@@ -12,6 +12,8 @@


def init_env():
+ """Adjust "Environment variables set by testenv" in README.md when making
+ changes here."""
global env_extra
global install_dir


To view, visit change 40373. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: merged
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I1a43d6b71c4dbc00abd8a4347fb2b35704491591
Gerrit-Change-Number: 40373
Gerrit-PatchSet: 5
Gerrit-Owner: osmith <osmith@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de>
Gerrit-Reviewer: osmith <osmith@sysmocom.de>
Gerrit-Reviewer: pespin <pespin@sysmocom.de>