44 lines
2.0 KiB
Markdown
44 lines
2.0 KiB
Markdown
### Running the tests
|
|
|
|
#### Java versions
|
|
|
|
Open Telemetry Auto Instrumentation's minimal supported version is java 7.
|
|
All jar files that we produce, unless noted otherwise, have bytecode
|
|
compatible with java 7 runtime. In addition to that we test our code with all
|
|
later java versions as well: from 8 to 14.
|
|
|
|
Some libraries that we auto-instrument may have higher minimal requirements.
|
|
In this case we compile and test corresponding auto-instrumentation with
|
|
higher java version as required by library. The resulting classes will have
|
|
higher bytecode level, but as it matches library's java version, no runtime
|
|
problem arise.
|
|
|
|
#### Instrumentation tests
|
|
|
|
Executing `./gradlew instrumentation:test` will run tests for all supported
|
|
auto-instrumentations using that java version which runs the Gradle build
|
|
itself. These tests usually use the minimal supported version of the
|
|
instrumented library.
|
|
|
|
In addition to that each instrumentation has a separate test set called
|
|
`latestDepTest`. It was created by [Gradle test sets
|
|
plugin](https://github.com/unbroken-dome/gradle-testsets-plugin). It uses the
|
|
very same tests as before, but declares a dynamic dependency on the latest
|
|
available version of this library. You can run them all by executing
|
|
`./gradlew latestDepTest`.
|
|
|
|
#### Executing tests with specific java version
|
|
|
|
In order to run tests on a specific java version, just execute `./gradlew
|
|
testJava7` (or `testJava11` or `latestDepTestJava14` etc). Then Gradle task
|
|
rule will kick in and do the following:
|
|
|
|
- check, if Gradle already runs on a java with required version
|
|
- if not, look for an environment variable named `JAVA_N_HOME`, where `N` is the requested java version
|
|
- if Gradle could not found requested java version, then build will fail
|
|
- Gradle will now find all corresponding test tasks and configure them to use java executable of the requested version.
|
|
|
|
This works both for tasks named `test` and `latestDepTest`. But currently
|
|
does not work for other custom test tasks, such as those created by test sets
|
|
plugin.
|