1# REQUIRES: python-psutil 2 3# Test per test timeout using external shell 4# RUN: not %{lit} \ 5# RUN: %{inputs}/shtest-timeout/infinite_loop.py \ 6# RUN: %{inputs}/shtest-timeout/quick_then_slow.py \ 7# RUN: %{inputs}/shtest-timeout/short.py \ 8# RUN: %{inputs}/shtest-timeout/slow.py \ 9# RUN: -j 1 -v --debug --timeout 1 --param external=1 > %t.extsh.out 2> %t.extsh.err 10# RUN: FileCheck --check-prefix=CHECK-OUT-COMMON < %t.extsh.out %s 11# RUN: FileCheck --check-prefix=CHECK-EXTSH-ERR < %t.extsh.err %s 12# 13# CHECK-EXTSH-ERR: Using external shell 14 15# Test per test timeout using internal shell 16# RUN: not %{lit} \ 17# RUN: %{inputs}/shtest-timeout/infinite_loop.py \ 18# RUN: %{inputs}/shtest-timeout/quick_then_slow.py \ 19# RUN: %{inputs}/shtest-timeout/short.py \ 20# RUN: %{inputs}/shtest-timeout/slow.py \ 21# RUN: -j 1 -v --debug --timeout 1 --param external=0 > %t.intsh.out 2> %t.intsh.err 22# RUN: FileCheck --check-prefix=CHECK-OUT-COMMON < %t.intsh.out %s 23# RUN: FileCheck --check-prefix=CHECK-INTSH-OUT < %t.intsh.out %s 24# RUN: FileCheck --check-prefix=CHECK-INTSH-ERR < %t.intsh.err %s 25# 26# CHECK-INTSH-OUT: TIMEOUT: per_test_timeout :: infinite_loop.py 27# CHECK-INTSH-OUT: Command 0 Reached Timeout: True 28# CHECK-INTSH-OUT: Command 0 Output: 29# CHECK-INTSH-OUT-NEXT: Running infinite loop 30 31 32# CHECK-INTSH-OUT: TIMEOUT: per_test_timeout :: quick_then_slow.py 33# CHECK-INTSH-OUT: Timeout: Reached timeout of 1 seconds 34# CHECK-INTSH-OUT: Command Output 35# CHECK-INTSH-OUT: Command 0 Reached Timeout: False 36# CHECK-INTSH-OUT: Command 0 Output: 37# CHECK-INTSH-OUT-NEXT: Running in quick mode 38# CHECK-INTSH-OUT: Command 1 Reached Timeout: True 39# CHECK-INTSH-OUT: Command 1 Output: 40# CHECK-INTSH-OUT-NEXT: Running in slow mode 41 42# CHECK-INTSH-OUT: TIMEOUT: per_test_timeout :: slow.py 43# CHECK-INTSH-OUT: Command 0 Reached Timeout: True 44# CHECK-INTSH-OUT: Command 0 Output: 45# CHECK-INTSH-OUT-NEXT: Running slow program 46 47# CHECK-INTSH-ERR: Using internal shell 48 49# Test per test timeout set via a config file rather than on the command line 50# RUN: not %{lit} \ 51# RUN: %{inputs}/shtest-timeout/infinite_loop.py \ 52# RUN: %{inputs}/shtest-timeout/quick_then_slow.py \ 53# RUN: %{inputs}/shtest-timeout/short.py \ 54# RUN: %{inputs}/shtest-timeout/slow.py \ 55# RUN: -j 1 -v --debug --param external=0 \ 56# RUN: --param set_timeout=1 > %t.cfgset.out 2> %t.cfgset.err 57# RUN: FileCheck --check-prefix=CHECK-OUT-COMMON < %t.cfgset.out %s 58# RUN: FileCheck --check-prefix=CHECK-CFGSET-ERR < %t.cfgset.err %s 59# 60# CHECK-CFGSET-ERR: Using internal shell 61 62# CHECK-OUT-COMMON: TIMEOUT: per_test_timeout :: infinite_loop.py 63# CHECK-OUT-COMMON: Timeout: Reached timeout of 1 seconds 64# CHECK-OUT-COMMON: Command {{([0-9]+ )?}}Output 65# CHECK-OUT-COMMON: Running infinite loop 66 67# CHECK-OUT-COMMON: TIMEOUT: per_test_timeout :: quick_then_slow.py 68# CHECK-OUT-COMMON: Timeout: Reached timeout of 1 seconds 69# CHECK-OUT-COMMON: Command {{([0-9]+ )?}}Output 70# CHECK-OUT-COMMON: Running in quick mode 71# CHECK-OUT-COMMON: Running in slow mode 72 73# CHECK-OUT-COMMON: PASS: per_test_timeout :: short.py 74 75# CHECK-OUT-COMMON: TIMEOUT: per_test_timeout :: slow.py 76# CHECK-OUT-COMMON: Timeout: Reached timeout of 1 seconds 77# CHECK-OUT-COMMON: Command {{([0-9]+ )?}}Output 78# CHECK-OUT-COMMON: Running slow program 79 80# CHECK-OUT-COMMON: Expected Passes{{ *}}: 1 81# CHECK-OUT-COMMON: Individual Timeouts{{ *}}: 3 82 83# Test per test timeout via a config file and on the command line. 84# The value set on the command line should override the config file. 85# RUN: not %{lit} \ 86# RUN: %{inputs}/shtest-timeout/infinite_loop.py \ 87# RUN: %{inputs}/shtest-timeout/quick_then_slow.py \ 88# RUN: %{inputs}/shtest-timeout/short.py \ 89# RUN: %{inputs}/shtest-timeout/slow.py \ 90# RUN: -j 1 -v --debug --param external=0 \ 91# RUN: --param set_timeout=1 --timeout=2 > %t.cmdover.out 2> %t.cmdover.err 92# RUN: FileCheck --check-prefix=CHECK-CMDLINE-OVERRIDE-OUT < %t.cmdover.out %s 93# RUN: FileCheck --check-prefix=CHECK-CMDLINE-OVERRIDE-ERR < %t.cmdover.err %s 94 95# CHECK-CMDLINE-OVERRIDE-ERR: Forcing timeout to be 2 seconds 96 97# CHECK-CMDLINE-OVERRIDE-OUT: TIMEOUT: per_test_timeout :: infinite_loop.py 98# CHECK-CMDLINE-OVERRIDE-OUT: Timeout: Reached timeout of 2 seconds 99# CHECK-CMDLINE-OVERRIDE-OUT: Command {{([0-9]+ )?}}Output 100# CHECK-CMDLINE-OVERRIDE-OUT: Running infinite loop 101 102# CHECK-CMDLINE-OVERRIDE-OUT: TIMEOUT: per_test_timeout :: quick_then_slow.py 103# CHECK-CMDLINE-OVERRIDE-OUT: Timeout: Reached timeout of 2 seconds 104# CHECK-CMDLINE-OVERRIDE-OUT: Command {{([0-9]+ )?}}Output 105# CHECK-CMDLINE-OVERRIDE-OUT: Running in quick mode 106# CHECK-CMDLINE-OVERRIDE-OUT: Running in slow mode 107 108# CHECK-CMDLINE-OVERRIDE-OUT: PASS: per_test_timeout :: short.py 109 110# CHECK-CMDLINE-OVERRIDE-OUT: TIMEOUT: per_test_timeout :: slow.py 111# CHECK-CMDLINE-OVERRIDE-OUT: Timeout: Reached timeout of 2 seconds 112# CHECK-CMDLINE-OVERRIDE-OUT: Command {{([0-9]+ )?}}Output 113# CHECK-CMDLINE-OVERRIDE-OUT: Running slow program 114 115# CHECK-CMDLINE-OVERRIDE-OUT: Expected Passes{{ *}}: 1 116# CHECK-CMDLINE-OVERRIDE-OUT: Individual Timeouts{{ *}}: 3 117