| 
 | 1 | +# Check interleaved builds feature (--build-only, --test-prebuilt, --exec-interleaved-builds)  | 
 | 2 | + | 
 | 3 | +# Test 1: Build-only mode  | 
 | 4 | +# RUN: rm -rf %t.SANDBOX-A %t.SANDBOX-B %t.SANDBOX-RESULTS  | 
 | 5 | +# RUN: lnt runtest test-suite \  | 
 | 6 | +# RUN:     --sandbox %t.SANDBOX-A \  | 
 | 7 | +# RUN:     --no-timestamp \  | 
 | 8 | +# RUN:     --test-suite %S/Inputs/test-suite-cmake \  | 
 | 9 | +# RUN:     --cc %{shared_inputs}/FakeCompilers/clang-r154331 \  | 
 | 10 | +# RUN:     --use-cmake %S/Inputs/test-suite-cmake/fake-cmake \  | 
 | 11 | +# RUN:     --use-make %S/Inputs/test-suite-cmake/fake-make \  | 
 | 12 | +# RUN:     --use-lit %S/Inputs/test-suite-cmake/fake-lit \  | 
 | 13 | +# RUN:     --build-only \  | 
 | 14 | +# RUN:     > %t.build-a.log 2> %t.build-a.err  | 
 | 15 | +# RUN: filecheck --check-prefix CHECK-BUILD-ONLY < %t.build-a.err %s  | 
 | 16 | +# CHECK-BUILD-ONLY: Building tests (--build-only mode)...  | 
 | 17 | +# CHECK-BUILD-ONLY: Build complete. Build directory: {{.*}}SANDBOX-A/build  | 
 | 18 | +# CHECK-BUILD-ONLY: Use --test-prebuilt --build-dir {{.*}}SANDBOX-A/build to run tests.  | 
 | 19 | + | 
 | 20 | +# Test 2: Build a second sandbox  | 
 | 21 | +# RUN: lnt runtest test-suite \  | 
 | 22 | +# RUN:     --sandbox %t.SANDBOX-B \  | 
 | 23 | +# RUN:     --no-timestamp \  | 
 | 24 | +# RUN:     --test-suite %S/Inputs/test-suite-cmake \  | 
 | 25 | +# RUN:     --cc %{shared_inputs}/FakeCompilers/clang-r154331 \  | 
 | 26 | +# RUN:     --use-cmake %S/Inputs/test-suite-cmake/fake-cmake \  | 
 | 27 | +# RUN:     --use-make %S/Inputs/test-suite-cmake/fake-make \  | 
 | 28 | +# RUN:     --use-lit %S/Inputs/test-suite-cmake/fake-lit \  | 
 | 29 | +# RUN:     --build-only \  | 
 | 30 | +# RUN:     > %t.build-b.log 2> %t.build-b.err  | 
 | 31 | + | 
 | 32 | +# Test 3: Test prebuilt with single build  | 
 | 33 | +# RUN: lnt runtest test-suite \  | 
 | 34 | +# RUN:     --sandbox %t.SANDBOX-RESULTS \  | 
 | 35 | +# RUN:     --no-timestamp \  | 
 | 36 | +# RUN:     --test-prebuilt \  | 
 | 37 | +# RUN:     --build-dir %t.SANDBOX-A/build \  | 
 | 38 | +# RUN:     --use-cmake %S/Inputs/test-suite-cmake/fake-cmake \  | 
 | 39 | +# RUN:     --use-lit %S/Inputs/test-suite-cmake/fake-lit \  | 
 | 40 | +# RUN:     --output %t.prebuilt.report \  | 
 | 41 | +# RUN:     > %t.prebuilt.log 2> %t.prebuilt.err  | 
 | 42 | +# RUN: filecheck --check-prefix CHECK-PREBUILT < %t.prebuilt.err %s  | 
 | 43 | +# CHECK-PREBUILT-NOT: Configuring  | 
 | 44 | +# CHECK-PREBUILT-NOT: Building  | 
 | 45 | +# CHECK-PREBUILT: Testing  | 
 | 46 | + | 
 | 47 | +# Test 4: Interleaved builds execution with multisample  | 
 | 48 | +# RUN: rm -rf %t.SANDBOX-RESULTS  | 
 | 49 | +# RUN: lnt runtest test-suite \  | 
 | 50 | +# RUN:     --sandbox %t.SANDBOX-RESULTS \  | 
 | 51 | +# RUN:     --no-timestamp \  | 
 | 52 | +# RUN:     --exec-interleaved-builds %t.SANDBOX-A/build,%t.SANDBOX-B/build \  | 
 | 53 | +# RUN:     --use-cmake %S/Inputs/test-suite-cmake/fake-cmake \  | 
 | 54 | +# RUN:     --use-lit %S/Inputs/test-suite-cmake/fake-lit \  | 
 | 55 | +# RUN:     --exec-multisample 2 \  | 
 | 56 | +# RUN:     > %t.interleaved.log 2> %t.interleaved.err  | 
 | 57 | +# RUN: filecheck --check-prefix CHECK-INTERLEAVED < %t.interleaved.err %s  | 
 | 58 | +# RUN: filecheck --check-prefix CHECK-REPORT-A < %t.SANDBOX-A/build/report.json %s  | 
 | 59 | +# RUN: filecheck --check-prefix CHECK-REPORT-B < %t.SANDBOX-B/build/report.json %s  | 
 | 60 | + | 
 | 61 | +# CHECK-INTERLEAVED: Running interleaved builds mode with 2 builds  | 
 | 62 | +# CHECK-INTERLEAVED: Loading build from: {{.*}}SANDBOX-A/build  | 
 | 63 | +# CHECK-INTERLEAVED: Compiler: clang  | 
 | 64 | +# CHECK-INTERLEAVED: Loading build from: {{.*}}SANDBOX-B/build  | 
 | 65 | +# CHECK-INTERLEAVED: Compiler: clang  | 
 | 66 | +# CHECK-INTERLEAVED: Running sample 1 of 2  | 
 | 67 | +# CHECK-INTERLEAVED: Testing build 1/2: {{.*}}SANDBOX-A/build  | 
 | 68 | +# CHECK-INTERLEAVED: Testing build 2/2: {{.*}}SANDBOX-B/build  | 
 | 69 | +# CHECK-INTERLEAVED: Running sample 2 of 2  | 
 | 70 | +# CHECK-INTERLEAVED: Testing build 1/2: {{.*}}SANDBOX-A/build  | 
 | 71 | +# CHECK-INTERLEAVED: Testing build 2/2: {{.*}}SANDBOX-B/build  | 
 | 72 | +# CHECK-INTERLEAVED: Interleaved testing complete. Generating reports...  | 
 | 73 | +# CHECK-INTERLEAVED: Writing report for build: {{.*}}SANDBOX-A/build  | 
 | 74 | +# CHECK-INTERLEAVED: Report: {{.*}}SANDBOX-A/build/report.json  | 
 | 75 | +# CHECK-INTERLEAVED: Writing report for build: {{.*}}SANDBOX-B/build  | 
 | 76 | +# CHECK-INTERLEAVED: Report: {{.*}}SANDBOX-B/build/report.json  | 
 | 77 | +# CHECK-INTERLEAVED: Reports written to each build directory  | 
 | 78 | + | 
 | 79 | +# Verify reports were created in each build directory  | 
 | 80 | +# CHECK-REPORT-A: "run_order": "154331"  | 
 | 81 | +# CHECK-REPORT-A: "Name": "nts.foo.  | 
 | 82 | +# CHECK-REPORT-B: "run_order": "154331"  | 
 | 83 | +# CHECK-REPORT-B: "Name": "nts.foo.  | 
 | 84 | + | 
 | 85 | +# Test 5: Verify XML and CSV files were also created  | 
 | 86 | +# RUN: test -f %t.SANDBOX-A/build/test-results.xunit.xml  | 
 | 87 | +# RUN: test -f %t.SANDBOX-A/build/test-results.csv  | 
 | 88 | +# RUN: test -f %t.SANDBOX-B/build/test-results.xunit.xml  | 
 | 89 | +# RUN: test -f %t.SANDBOX-B/build/test-results.csv  | 
 | 90 | + | 
 | 91 | +# Test 6: Error case - --build-only with --test-prebuilt should fail  | 
 | 92 | +# RUN: not lnt runtest test-suite \  | 
 | 93 | +# RUN:     --sandbox %t.SANDBOX-ERR \  | 
 | 94 | +# RUN:     --no-timestamp \  | 
 | 95 | +# RUN:     --test-suite %S/Inputs/test-suite-cmake \  | 
 | 96 | +# RUN:     --cc %{shared_inputs}/FakeCompilers/clang-r154331 \  | 
 | 97 | +# RUN:     --build-only \  | 
 | 98 | +# RUN:     --test-prebuilt \  | 
 | 99 | +# RUN:     > %t.err1.log 2> %t.err1.err  | 
 | 100 | +# RUN: filecheck --check-prefix CHECK-ERR1 < %t.err1.err %s  | 
 | 101 | +# CHECK-ERR1: --build-only and --test-prebuilt are mutually exclusive  | 
 | 102 | + | 
 | 103 | +# Test 7: Error case - --test-prebuilt without --build-dir or --exec-interleaved-builds should fail  | 
 | 104 | +# RUN: not lnt runtest test-suite \  | 
 | 105 | +# RUN:     --sandbox %t.SANDBOX-ERR2 \  | 
 | 106 | +# RUN:     --no-timestamp \  | 
 | 107 | +# RUN:     --test-prebuilt \  | 
 | 108 | +# RUN:     --use-lit %S/Inputs/test-suite-cmake/fake-lit \  | 
 | 109 | +# RUN:     > %t.err2.log 2> %t.err2.err  | 
 | 110 | +# RUN: filecheck --check-prefix CHECK-ERR2 < %t.err2.err %s  | 
 | 111 | +# CHECK-ERR2: --test-prebuilt requires --build-dir (or use --exec-interleaved-builds)  | 
0 commit comments