blob: 1eb127bfb044c37bc9dedc24b48d20655494b138 [file] [log] [blame]
# Testing for the 'lnt runtest nt' module.
#
# Check a basic nt run.
# RUN: lnt runtest nt \
# RUN: --sandbox %t.SANDBOX \
# RUN: --test-suite %S/Inputs/test-suite \
# RUN: --cc %{shared_inputs}/FakeCompilers/clang-r154331 \
# RUN: --no-timestamp > %t.log 2> %t.err
# RUN: FileCheck --check-prefix CHECK-STDOUT < %t.log %s
# RUN: FileCheck --check-prefix CHECK-BASIC < %t.err %s
# RUN: FileCheck --check-prefix CHECK-REPORT < %t.SANDBOX/build/report.json %s
# CHECK-REPORT: "run_order": "154331"
# CHECK-REPORT: "Name": "nts.{{[^.]+}}.exec"
# CHECK-REPORT: "Name": "nts.{{[^.]+}}.compile"
#
# CHECK-STDOUT: Import succeeded.
# CHECK-STDOUT: Added Machines: 1
# CHECK-STDOUT: Added Runs : 1
# CHECK-STDOUT: Added Tests : 130
#
# CHECK-BASIC: inferred C++ compiler under test
# CHECK-BASIC: checking source versions
# CHECK-BASIC: using nickname
# CHECK-BASIC: starting test
# CHECK-BASIC: configuring
# CHECK-BASIC: building test-suite tools
# CHECK-BASIC: executing "nightly tests" with -j1
# CHECK-BASIC: loading nightly test data
# CHECK-BASIC: capturing machine information
# CHECK-BASIC: generating report
# CHECK-BASIC: submitting result to dummy instance
#
# Use the same sandbox again with --no-configure
# RUN: lnt runtest nt \
# RUN: --sandbox %t.SANDBOX \
# RUN: --test-suite %S/Inputs/test-suite \
# RUN: --cc %{shared_inputs}/FakeCompilers/clang-r154331 \
# RUN: --no-timestamp --no-configure > %t.log 2> %t.err
# RUN: FileCheck --check-prefix CHECK-NOCONF < %t.err %s
# CHECK-NOCONF-NOT: configuring
#
# Check a basic nt run on a test-suite without binary hash support.
# RUN: lnt runtest nt \
# RUN: --sandbox %t.SANDBOX-NO-HASH \
# RUN: --test-suite %S/Inputs/test-suite-nohash \
# RUN: --cc %{shared_inputs}/FakeCompilers/clang-r154331 \
# RUN: --no-timestamp > %t.log 2> %t.err
# RUN: FileCheck --check-prefix CHECK-STDOUT < %t.log %s
# RUN: FileCheck --check-prefix CHECK-BASIC < %t.err %s
# RUN: FileCheck --check-prefix CHECK-REPORT < %t.SANDBOX-NO-HASH/build/report.json %s
#
# Manually set a run order.
# RUN: lnt runtest nt \
# RUN: --sandbox %t.SANDBOX \
# RUN: --test-suite %S/Inputs/test-suite \
# RUN: --cc %{shared_inputs}/FakeCompilers/clang-r154331 \
# RUN: --no-timestamp --run-order=123 > %t.log 2> %t.err
# RUN: FileCheck --check-prefix CHECK-RESULTS < %t.SANDBOX/build/report.json %s
# CHECK-RESULTS: "run_order": "123"
#
# Change the machine name. Don't use LLVM.
# RUN: lnt runtest nt \
# RUN: --sandbox %t.SANDBOX \
# RUN: --test-suite %S/Inputs/test-suite \
# RUN: --cc %{shared_inputs}/FakeCompilers/clang-r154331 \
# RUN: --no-auto-name foo > %t.log 2> %t.err
# RUN: FileCheck --check-prefix CHECK-AUTONAME < %t.err %s
# CHECK-AUTONAME: using nickname: 'foo'
# Run without LLVM.
# RUN: lnt runtest nt \
# RUN: --sandbox %t.SANDBOX \
# RUN: --test-suite %S/Inputs/test-suite \
# RUN: --cc %{shared_inputs}/FakeCompilers/clang-r154331 \
# RUN: --no-timestamp --without-llvm > %t.log 2> %t.err
# Check cflag handling
## With a lone cflag
# RUN: lnt runtest nt \
# RUN: --sandbox %t.SANDBOX \
# RUN: --test-suite %S/Inputs/test-suite \
# RUN: --cc %{shared_inputs}/FakeCompilers/clang-r154331 \
# RUN: --cflag '-Wall' \
# RUN: --no-timestamp > %t.log 2> %t.err
# RUN: FileCheck --check-prefix CHECK-CFLAG1 < %t.err %s
# CHECK-CFLAG1: inferred C++ compiler under test
# CHECK-CFLAG1: TARGET_FLAGS: -Wall
## With a couple of cflags
# RUN: lnt runtest nt \
# RUN: --sandbox %t.SANDBOX \
# RUN: --test-suite %S/Inputs/test-suite \
# RUN: --cc %{shared_inputs}/FakeCompilers/clang-r154331 \
# RUN: --cflag '-Wall' \
# RUN: --cflag '-mfloat-abi=hard' \
# RUN: --cflag '-O3' \
# RUN: --no-timestamp > %t.log 2> %t.err
# RUN: FileCheck --check-prefix CHECK-CFLAG2 < %t.err %s
# CHECK-CFLAG2: inferred C++ compiler under test
# CHECK-CFLAG2: TARGET_FLAGS: -Wall -mfloat-abi=hard -O3
## With a cflags
# RUN: lnt runtest nt \
# RUN: --sandbox %t.SANDBOX \
# RUN: --test-suite %S/Inputs/test-suite \
# RUN: --cc %{shared_inputs}/FakeCompilers/clang-r154331 \
# RUN: --cflags '-Wall -mfloat-abi=hard -O3' \
# RUN: --no-timestamp > %t.log 2> %t.err
# RUN: FileCheck --check-prefix CHECK-CFLAG3 < %t.err %s
# CHECK-CFLAG3: inferred C++ compiler under test
# CHECK-CFLAG3: TARGET_FLAGS: -Wall -mfloat-abi=hard -O3
## With a cflags with a quoted space and escaped spaces
# RUN: lnt runtest nt \
# RUN: --sandbox %t.SANDBOX \
# RUN: --test-suite %S/Inputs/test-suite \
# RUN: --cc %{shared_inputs}/FakeCompilers/clang-r154331 \
# RUN: --cflags "-Wall -test=escaped\ space -some-option='stay with me' -O3" \
# RUN: --no-timestamp > %t.log 2> %t.err
# RUN: FileCheck --check-prefix CHECK-CFLAG4 < %t.err %s
# CHECK-CFLAG4: inferred C++ compiler under test
# CHECK-CFLAG4: TARGET_FLAGS: -Wall '-test=escaped space' '-some-option=stay with me' -O3
## With cflag and cflags
# RUN: lnt runtest nt \
# RUN: --sandbox %t.SANDBOX \
# RUN: --test-suite %S/Inputs/test-suite \
# RUN: --cc %{shared_inputs}/FakeCompilers/clang-r154331 \
# RUN: --cflag '--target=armv7a-none-eabi' \
# RUN: --cflag '-Weverything' \
# RUN: --cflags '-Wall -test=escaped\ space -some-option="stay with me" -O3' \
# RUN: --no-timestamp > %t.log 2> %t.err
# RUN: FileCheck --check-prefix CHECK-CFLAG5 < %t.err %s
# CHECK-CFLAG5: inferred C++ compiler under test
# CHECK-CFLAG5: TARGET_FLAGS: --target=armv7a-none-eabi -Weverything -Wall '-test=escaped space'
# CHECK-CFLAG5: '-some-option=stay with me' -O3
# Qemu flag handling
# RUN: lnt runtest nt \
# RUN: --sandbox %t.SANDBOX \
# RUN: --test-suite %S/Inputs/test-suite \
# RUN: --cc %{shared_inputs}/FakeCompilers/clang-r154331 \
# RUN: --qemu-user-mode TEST \
# RUN: --qemu-flag '-soundhw gus' \
# RUN: --qemu-flag '-net nic' \
# RUN: --qemu-flags '-device gus,irq=5 -test=escaped\ space -some-option="stay with me"' \
# RUN: --no-timestamp > %t.log 2> %t.err
# RUN: FileCheck --check-prefix CHECK-QEMU-FLAG1 < %t.err %s
# CHECK-QEMU-FLAG1: QEMU_USER_MODE_COMMAND: TEST -soundhw gus -net nic -device gus,irq=5
# CHECK-QEMU-FLAG1: '-test=escaped space' '-some-option=stay with me'
# Check submission to a server through url works:
# RUN: rm -rf %{test_exec_root}/runtest/nt_server_instance
# RUN: mkdir -p %{test_exec_root}/runtest/nt_server_instance
# RUN: rsync -av --exclude .svn %S/Inputs/rerun_server_instance/ \
# RUN: %{test_exec_root}/runtest/nt_server_instance
# RUN: %{shared_inputs}/server_wrapper.sh \
# RUN: %{test_exec_root}/runtest/nt_server_instance 9089 \
# RUN: lnt runtest nt --submit "http://localhost:9089/db_default/submitRun" \
# RUN: --sandbox %t.SANDBOX \
# RUN: --test-suite %S/Inputs/rerun-test-suite1 \
# RUN: --cc %{shared_inputs}/FakeCompilers/clang-r154331 \
# RUN: --no-timestamp --rerun --run-order 1 > %t.log 2> %t.err
# RUN: FileCheck --check-prefix CHECK-SUBMIT-STDOUT < %t.log %s
# RUN: FileCheck --check-prefix CHECK-SUBMIT-STDERR < %t.err %s
# CHECK-SUBMIT-STDOUT: Import succeeded.
# CHECK-SUBMIT-STDOUT: PASS : 345
# CHECK-SUBMIT-STDERR: inferred C++ compiler under test
# CHECK-SUBMIT-STDERR: checking source versions
# CHECK-SUBMIT-STDERR: using nickname
# CHECK-SUBMIT-STDERR: starting test
# CHECK-SUBMIT-STDERR: configuring
# CHECK-SUBMIT-STDERR: building test-suite tools
# CHECK-SUBMIT-STDERR: executing "nightly tests" with -j1
# CHECK-SUBMIT-STDERR: loading nightly test data
# CHECK-SUBMIT-STDERR: capturing machine information
# CHECK-SUBMIT-STDERR: generating report
# CHECK-SUBMIT-STDERR: submitting result to
# CHECK-SUBMIT-STDERR: Rerunning 0 of 69 benchmarks.
# Check submission to a server through server instance works:
# RUN: rsync -av --exclude .svn %S/Inputs/rerun_server_instance/ \
# RUN: %{test_exec_root}/runtest/nt_server_instance
# RUN: %{shared_inputs}/server_wrapper.sh \
# RUN: %{test_exec_root}/runtest/nt_server_instance 9089 \
# RUN: lnt runtest nt --submit "http://localhost:9089/db_default/submitRun" \
# RUN: --commit 1 \
# RUN: --sandbox %t.SANDBOX \
# RUN: --test-suite %S/Inputs/rerun-test-suite1 \
# RUN: --cc %{shared_inputs}/FakeCompilers/clang-r154331 \
# RUN: --no-timestamp --rerun --run-order 2 > %t.log 2> %t.err
# RUN: FileCheck --check-prefix CHECK-SUBMIT-STDOUT < %t.log %s
# RUN: FileCheck --check-prefix CHECK-SUBMIT-STDERR < %t.err %s