# 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