1f1b4c4bfSJoel E. Denny# Check the not command 2ef4b3a45SRoman Lebedev 32f69c82cSMichał Górny# RUN: not %{lit} -a -v %{inputs}/shtest-not \ 4f1b4c4bfSJoel E. Denny# RUN: | FileCheck -match-full-lines %s 5f1b4c4bfSJoel E. Denny# 6f1b4c4bfSJoel E. Denny# END. 7f1b4c4bfSJoel E. Denny 8f1b4c4bfSJoel E. Denny# Make sure not and env commands are included in printed commands. 9f1b4c4bfSJoel E. Denny 10d0b03ec4SMartin Storsjö# CHECK: -- Testing: 17 tests{{.*}} 11efee5792SMartin Storsjö 12efee5792SMartin Storsjö# CHECK: FAIL: shtest-not :: exclamation-args-nested-none.txt {{.*}} 13f223022aSJoel E. Denny# CHECK: ! ! ! 14f223022aSJoel E. Denny# CHECK: # executed command: ! ! ! 15f223022aSJoel E. Denny# CHECK: # | Error: '!' requires a subcommand 16f223022aSJoel E. Denny# CHECK: # error: command failed with exit status: {{.*}} 17efee5792SMartin Storsjö 18efee5792SMartin Storsjö# CHECK: FAIL: shtest-not :: exclamation-args-none.txt {{.*}} 19f223022aSJoel E. Denny# CHECK: ! 20f223022aSJoel E. Denny# CHECK: # executed command: ! 21f223022aSJoel E. Denny# CHECK: # | Error: '!' requires a subcommand 22f223022aSJoel E. Denny# CHECK: # error: command failed with exit status: {{.*}} 23efee5792SMartin Storsjö 24efee5792SMartin Storsjö# CHECK: FAIL: shtest-not :: exclamation-calls-external.txt {{.*}} 25efee5792SMartin Storsjö 26f223022aSJoel E. Denny# CHECK: ! [[PYTHON:.*]] fail.py 27f223022aSJoel E. Denny# CHECK: # executed command: ! [[PYTHON_BARE:.*]] fail.py 28f223022aSJoel E. Denny# CHECK: ! ! [[PYTHON]] pass.py 29f223022aSJoel E. Denny# CHECK: # executed command: ! ! [[PYTHON_BARE]] pass.py 30f223022aSJoel E. Denny# CHECK: ! ! ! [[PYTHON]] fail.py 31f223022aSJoel E. Denny# CHECK: # executed command: ! ! ! [[PYTHON_BARE]] fail.py 32f223022aSJoel E. Denny# CHECK: ! ! ! ! [[PYTHON]] pass.py 33f223022aSJoel E. Denny# CHECK: # executed command: ! ! ! ! [[PYTHON_BARE]] pass.py 34efee5792SMartin Storsjö 35f223022aSJoel E. Denny# CHECK: ! [[PYTHON]] pass.py 36f223022aSJoel E. Denny# CHECK: # executed command: ! [[PYTHON_BARE]] pass.py 37f223022aSJoel E. Denny# CHECK: # error: command failed with exit status: {{.*}} 38f1b4c4bfSJoel E. Denny 39f1b4c4bfSJoel E. Denny# CHECK: FAIL: shtest-not :: not-args-last-is-crash.txt {{.*}} 40f223022aSJoel E. Denny# CHECK: not --crash 41f223022aSJoel E. Denny# CHECK: # executed command: not --crash 42f223022aSJoel E. Denny# CHECK: # | Error: 'not' requires a subcommand 43f223022aSJoel E. Denny# CHECK: # error: command failed with exit status: {{.*}} 44f1b4c4bfSJoel E. Denny 45f1b4c4bfSJoel E. Denny# CHECK: FAIL: shtest-not :: not-args-nested-none.txt {{.*}} 46f223022aSJoel E. Denny# CHECK: not not not 47f223022aSJoel E. Denny# CHECK: # executed command: not not not 48f223022aSJoel E. Denny# CHECK: # | Error: 'not' requires a subcommand 49f223022aSJoel E. Denny# CHECK: # error: command failed with exit status: {{.*}} 50f1b4c4bfSJoel E. Denny 51f1b4c4bfSJoel E. Denny# CHECK: FAIL: shtest-not :: not-args-none.txt {{.*}} 52f223022aSJoel E. Denny# CHECK: not 53f223022aSJoel E. Denny# CHECK: # executed command: not 54f223022aSJoel E. Denny# CHECK: # | Error: 'not' requires a subcommand 55f223022aSJoel E. Denny# CHECK: # error: command failed with exit status: {{.*}} 56f1b4c4bfSJoel E. Denny 57f1b4c4bfSJoel E. Denny# CHECK: FAIL: shtest-not :: not-calls-cd.txt {{.*}} 58f223022aSJoel E. Denny# CHECK: not not cd foobar 59f223022aSJoel E. Denny# CHECK: # executed command: not not cd foobar 60f223022aSJoel E. Denny# CHECK: not --crash cd foobar 61f223022aSJoel E. Denny# CHECK: # executed command: not --crash cd foobar 62f223022aSJoel E. Denny# CHECK: # | Error: 'not --crash' cannot call 'cd' 63f223022aSJoel E. Denny# CHECK: # error: command failed with exit status: {{.*}} 64f1b4c4bfSJoel E. Denny 65f1b4c4bfSJoel E. Denny# CHECK: FAIL: shtest-not :: not-calls-colon.txt {{.*}} 66f223022aSJoel E. Denny# CHECK: not not : foobar 67f223022aSJoel E. Denny# CHECK: # executed command: not not : foobar 68f223022aSJoel E. Denny# CHECK: not --crash : 69f223022aSJoel E. Denny# CHECK: # executed command: not --crash : 70f223022aSJoel E. Denny# CHECK: # | Error: 'not --crash' cannot call ':' 71f223022aSJoel E. Denny# CHECK: # error: command failed with exit status: {{.*}} 72f1b4c4bfSJoel E. Denny 73f1b4c4bfSJoel E. Denny# CHECK: FAIL: shtest-not :: not-calls-diff-with-crash.txt {{.*}} 74f223022aSJoel E. Denny# CHECK: not --crash diff -u {{.*}} 75f223022aSJoel E. Denny# CHECK: # executed command: not --crash diff -u {{.*}} 76f223022aSJoel E. Denny# CHECK-NOT: # executed command: {{.*}} 77f1b4c4bfSJoel E. Denny# CHECK-NOT: {{[Ee]rror}} 78f223022aSJoel E. Denny# CHECK: # error: command failed with exit status: {{.*}} 79f223022aSJoel E. Denny# CHECK-NOT: # executed command: {{.*}} 80f1b4c4bfSJoel E. Denny# CHECK-NOT: {{[Ee]rror}} 81f1b4c4bfSJoel E. Denny 82f1b4c4bfSJoel E. Denny# CHECK: FAIL: shtest-not :: not-calls-diff.txt {{.*}} 83f223022aSJoel E. Denny# CHECK: not diff {{.*}} 84f223022aSJoel E. Denny# CHECK: # executed command: not diff {{.*}} 85f223022aSJoel E. Denny# CHECK: not not not diff {{.*}} 86f223022aSJoel E. Denny# CHECK: # executed command: not not not diff {{.*}} 87f223022aSJoel E. Denny# CHECK: not not not not not diff {{.*}} 88f223022aSJoel E. Denny# CHECK: # executed command: not not not not not diff {{.*}} 89f223022aSJoel E. Denny# CHECK: diff {{.*}} 90f223022aSJoel E. Denny# CHECK: # executed command: diff {{.*}} 91f223022aSJoel E. Denny# CHECK: not not diff {{.*}} 92f223022aSJoel E. Denny# CHECK: # executed command: not not diff {{.*}} 93f223022aSJoel E. Denny# CHECK: not not not not diff {{.*}} 94f223022aSJoel E. Denny# CHECK: # executed command: not not not not diff {{.*}} 95f223022aSJoel E. Denny# CHECK: not diff {{.*}} 96f223022aSJoel E. Denny# CHECK: # executed command: not diff {{.*}} 97f223022aSJoel E. Denny# CHECK-NOT: # executed command: {{.*}} 98f1b4c4bfSJoel E. Denny 99f1b4c4bfSJoel E. Denny# CHECK: FAIL: shtest-not :: not-calls-echo.txt {{.*}} 100f223022aSJoel E. Denny# CHECK: not not echo hello world 101f223022aSJoel E. Denny# CHECK: # executed command: not not echo hello world 102f223022aSJoel E. Denny# CHECK: not --crash echo hello world 103f223022aSJoel E. Denny# CHECK: # executed command: not --crash echo hello world 104f223022aSJoel E. Denny# CHECK: # | Error: 'not --crash' cannot call 'echo' 105f223022aSJoel E. Denny# CHECK: # error: command failed with exit status: {{.*}} 106f1b4c4bfSJoel E. Denny 107f1b4c4bfSJoel E. Denny# CHECK: FAIL: shtest-not :: not-calls-env-builtin.txt {{.*}} 108f223022aSJoel E. Denny# CHECK: not --crash env -u FOO BAR=3 rm {{.*}}.no-such-file 109f223022aSJoel E. Denny# CHECK: # executed command: not --crash env -u FOO BAR=3 rm {{.+}}.no-such-file{{.*}} 110f223022aSJoel E. Denny# CHECK: # | Error: 'env' cannot call 'rm' 111f223022aSJoel E. Denny# CHECK: # error: command failed with exit status: {{.*}} 112f1b4c4bfSJoel E. Denny 113f1b4c4bfSJoel E. Denny# CHECK: FAIL: shtest-not :: not-calls-export.txt {{.*}} 114f223022aSJoel E. Denny# CHECK: not not export FOO=1 115f223022aSJoel E. Denny# CHECK: # executed command: not not export FOO=1 116f223022aSJoel E. Denny# CHECK: not --crash export BAZ=3 117f223022aSJoel E. Denny# CHECK: # executed command: not --crash export BAZ=3 118f223022aSJoel E. Denny# CHECK: # | Error: 'not --crash' cannot call 'export' 119f223022aSJoel E. Denny# CHECK: # error: command failed with exit status: {{.*}} 120f1b4c4bfSJoel E. Denny 121f1b4c4bfSJoel E. Denny 122f1b4c4bfSJoel E. Denny# CHECK: PASS: shtest-not :: not-calls-external.txt {{.*}} 123f1b4c4bfSJoel E. Denny 124f223022aSJoel E. Denny# CHECK: not [[PYTHON]] fail.py 125f223022aSJoel E. Denny# CHECK: # executed command: not [[PYTHON_BARE]] fail.py 126f223022aSJoel E. Denny# CHECK: not not [[PYTHON]] pass.py 127f223022aSJoel E. Denny# CHECK: # executed command: not not [[PYTHON_BARE]] pass.py 128f223022aSJoel E. Denny# CHECK: not not not [[PYTHON]] fail.py 129f223022aSJoel E. Denny# CHECK: # executed command: not not not [[PYTHON_BARE]] fail.py 130f223022aSJoel E. Denny# CHECK: not not not not [[PYTHON]] pass.py 131f223022aSJoel E. Denny# CHECK: # executed command: not not not not [[PYTHON_BARE]] pass.py 132f1b4c4bfSJoel E. Denny 133f223022aSJoel E. Denny# CHECK: not not --crash [[PYTHON]] pass.py 134f223022aSJoel E. Denny# CHECK: # executed command: not not --crash [[PYTHON_BARE]] pass.py 135f223022aSJoel E. Denny# CHECK: not not --crash [[PYTHON]] fail.py 136f223022aSJoel E. Denny# CHECK: # executed command: not not --crash [[PYTHON_BARE]] fail.py 137f223022aSJoel E. Denny# CHECK: not not --crash not [[PYTHON]] pass.py 138f223022aSJoel E. Denny# CHECK: # executed command: not not --crash not [[PYTHON_BARE]] pass.py 139f223022aSJoel E. Denny# CHECK: not not --crash not [[PYTHON]] fail.py 140f223022aSJoel E. Denny# CHECK: # executed command: not not --crash not [[PYTHON_BARE]] fail.py 141f1b4c4bfSJoel E. Denny 142f223022aSJoel E. Denny# CHECK: env not [[PYTHON]] fail.py | {{.*}} 143f223022aSJoel E. Denny# CHECK: # executed command: env not [[PYTHON_BARE]] fail.py 144f223022aSJoel E. Denny# CHECK: not env [[PYTHON]] fail.py | {{.*}} 145f223022aSJoel E. Denny# CHECK: # executed command: not env [[PYTHON_BARE]] fail.py 146f223022aSJoel E. Denny# CHECK: env FOO=1 not [[PYTHON]] fail.py | {{.*}} 147f223022aSJoel E. Denny# CHECK: # executed command: env FOO=1 not [[PYTHON_BARE]] fail.py 148f223022aSJoel E. Denny# CHECK: not env FOO=1 BAR=1 [[PYTHON]] fail.py | {{.*}} 149f223022aSJoel E. Denny# CHECK: # executed command: not env FOO=1 BAR=1 [[PYTHON_BARE]] fail.py 150f223022aSJoel E. Denny# CHECK: env FOO=1 BAR=1 not env -u FOO BAR=2 [[PYTHON]] fail.py | {{.*}} 151f223022aSJoel E. Denny# CHECK: # executed command: env FOO=1 BAR=1 not env -u FOO BAR=2 [[PYTHON_BARE]] fail.py 152f223022aSJoel E. Denny# CHECK: not env FOO=1 BAR=1 not env -u FOO -u BAR [[PYTHON]] pass.py | {{.*}} 153f223022aSJoel E. Denny# CHECK: # executed command: not env FOO=1 BAR=1 not env -u FOO -u BAR [[PYTHON_BARE]] pass.py 154f223022aSJoel E. Denny# CHECK: not not env FOO=1 env FOO=2 BAR=1 [[PYTHON]] pass.py | {{.*}} 155f223022aSJoel E. Denny# CHECK: # executed command: not not env FOO=1 env FOO=2 BAR=1 [[PYTHON_BARE]] pass.py 156f223022aSJoel E. Denny# CHECK: env FOO=1 -u BAR env -u FOO BAR=1 not not [[PYTHON]] pass.py | {{.*}} 157f223022aSJoel E. Denny# CHECK: # executed command: env FOO=1 -u BAR env -u FOO BAR=1 not not [[PYTHON_BARE]] pass.py 158f1b4c4bfSJoel E. Denny 159f223022aSJoel E. Denny# CHECK: not env FOO=1 BAR=1 env FOO=2 BAR=2 not --crash [[PYTHON]] pass.py | {{.*}} 160f223022aSJoel E. Denny# CHECK: # executed command: not env FOO=1 BAR=1 env FOO=2 BAR=2 not --crash [[PYTHON_BARE]] pass.py 161f223022aSJoel E. Denny# CHECK: not env FOO=1 BAR=1 not --crash not [[PYTHON]] pass.py | {{.*}} 162f223022aSJoel E. Denny# CHECK: # executed command: not env FOO=1 BAR=1 not --crash not [[PYTHON_BARE]] pass.py 163f223022aSJoel E. Denny# CHECK: not not --crash env -u BAR not env -u FOO BAR=1 [[PYTHON]] pass.py | {{.*}} 164f223022aSJoel E. Denny# CHECK: # executed command: not not --crash env -u BAR not env -u FOO BAR=1 [[PYTHON_BARE]] pass.py 165f1b4c4bfSJoel E. Denny 166f1b4c4bfSJoel E. Denny 167d0b03ec4SMartin Storsjö# CHECK: FAIL: shtest-not :: not-calls-fail2.txt {{.*}} 168d0b03ec4SMartin Storsjö# CHECK-NEXT: {{.*}} TEST 'shtest-not :: not-calls-fail2.txt' FAILED {{.*}} 169d0b03ec4SMartin Storsjö# CHECK-NEXT: Exit Code: 1 170d0b03ec4SMartin Storsjö 171f1b4c4bfSJoel E. Denny# CHECK: FAIL: shtest-not :: not-calls-mkdir.txt {{.*}} 172f223022aSJoel E. Denny# CHECK: not mkdir {{.*}} 173f223022aSJoel E. Denny# CHECK: # executed command: not mkdir {{.*}} 174f223022aSJoel E. Denny# CHECK: not --crash mkdir foobar 175f223022aSJoel E. Denny# CHECK: # executed command: not --crash mkdir foobar 176f223022aSJoel E. Denny# CHECK: # | Error: 'not --crash' cannot call 'mkdir' 177f223022aSJoel E. Denny# CHECK: # error: command failed with exit status: {{.*}} 178f1b4c4bfSJoel E. Denny 179f1b4c4bfSJoel E. Denny# CHECK: FAIL: shtest-not :: not-calls-rm.txt {{.*}} 180f223022aSJoel E. Denny# CHECK: not rm {{.*}} 181f223022aSJoel E. Denny# CHECK: # executed command: not rm {{.*}} 182f223022aSJoel E. Denny# CHECK: not --crash rm foobar 183f223022aSJoel E. Denny# CHECK: # executed command: not --crash rm foobar 184f223022aSJoel E. Denny# CHECK: # | Error: 'not --crash' cannot call 'rm' 185f223022aSJoel E. Denny# CHECK: # error: command failed with exit status: {{.*}} 186f1b4c4bfSJoel E. Denny 187*0b7ae41bSMadhur Amilkanthwar# CHECK: Total Discovered Tests: 17 188*0b7ae41bSMadhur Amilkanthwar# CHECK: Passed: 1 {{\([0-9]*\.[0-9]*%\)}} 189*0b7ae41bSMadhur Amilkanthwar# CHECK: Failed: 16 {{\([0-9]*\.[0-9]*%\)}} 190f1b4c4bfSJoel E. Denny# CHECK-NOT: {{.}} 191