Benchmark Tests

Description:

The benchmark test provides data points to help in the checking of application performance and establishes whether changes to code base, improved or deteriorated the performance.

The CI system is responsible of running the benchmark tests regularly.

Details:

  • Can run against any build type

  • Executed by CI-pipeline

  • Written in pure shell to run on targets with very limited environment

To run the benchmark test from within the source (Developer):

First ensure the build is present that shall be tested. Debug is assumed as default.

./ci/build.sh [Release]
    Run the benchmark test suite or parts of it against actual build. Default
    is to run all benchmark tests.

    Usage: run_benchmark.sh [option] [build type]

    Options:

    -h|--help:                  print this help

    Build Type:

    Debug   - Run benchmark test or interactive shell against the Debug Build
    Release - Run benchmark test or interactive shell against the Release Build
    ...     - Any build type located in build/ can be provided

    <Debug> is the default build type, if nothing is specified.

    Examples:

    $>run_benchmark.sh # run all benchmark tests on Debug build

    $>run_benchmark.sh Release # run all benchmark tests on Release build

Run on a Target (Integrator):

To run the benchmark test install all content in tests/benchmark to a custom location on the target system. Currently it is not packaged and installed by samconf build system itself.

Prerequisites :

  • Samconf is installed on target system

  • Samconf benchmark test package is installed

  • At least a writeable directory to store results and for intermediate files

Running the Test Suite:

To execute the benchmark tests run the installed bench_test.sh script. Here is an example script to for benchmark test integration.

./test/benchmark/bench_test_env.sh

Extended configuration

Depending on the installation and configuration it could be necessary to adjust some settings. The following Environment variables can be used:

#!/bin/sh

export DIST_DIR="${DIST_DIR-"${BUILD_DIR}/dist"}"
export LD_LIBRARY_PATH="${BASE_DIR}/build/deps/lib:${DIST_DIR}/usr/local/lib"
export PATH="${PATH}:${DIST_DIR}/usr/local/bin/"
export BENCHMARK_DIR="${BENCHMARK_DIR-"$(dirname "$0")"}"
export BENCHMARK_RESULT_DIR="${BENCHMARK_RESULT_DIR-"$BUILD_DIR/result/benchmark_results"}"
export SAMCONF_SIGNATURE_KEY="${PUBLIC_KEY}"