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