1# REQUIRES: lit-max-individual-test-time 2 3# llvm.org/PR33944 4# UNSUPPORTED: system-windows 5 6############################################################################### 7# Check tests can hit timeout when set 8############################################################################### 9 10# Test per test timeout using external shell 11# RUN: not %{lit} \ 12# RUN: %{inputs}/shtest-timeout/infinite_loop.py \ 13# RUN: -j 1 -v --debug --timeout 1 --param external=1 > %t.extsh.out 2> %t.extsh.err 14# RUN: FileCheck --check-prefix=CHECK-OUT-COMMON < %t.extsh.out %s 15# RUN: FileCheck --check-prefix=CHECK-EXTSH-ERR < %t.extsh.err %s 16# 17# CHECK-EXTSH-ERR: Using external shell 18 19# Test per test timeout using internal shell 20# RUN: not %{lit} \ 21# RUN: %{inputs}/shtest-timeout/infinite_loop.py \ 22# RUN: -j 1 -v --debug --timeout 1 --param external=0 > %t.intsh.out 2> %t.intsh.err 23# RUN: FileCheck --check-prefix=CHECK-OUT-COMMON < %t.intsh.out %s 24# RUN: FileCheck --check-prefix=CHECK-INTSH-OUT < %t.intsh.out %s 25# RUN: FileCheck --check-prefix=CHECK-INTSH-ERR < %t.intsh.err %s 26 27# CHECK-INTSH-OUT: TIMEOUT: per_test_timeout :: infinite_loop.py 28# CHECK-INTSH-OUT: command reached timeout: True 29 30# CHECK-INTSH-ERR: Using internal shell 31 32# Test per test timeout set via a config file rather than on the command line 33# RUN: not %{lit} \ 34# RUN: %{inputs}/shtest-timeout/infinite_loop.py \ 35# RUN: -j 1 -v --debug --param external=0 \ 36# RUN: --param set_timeout=1 > %t.cfgset.out 2> %t.cfgset.err 37# RUN: FileCheck --check-prefix=CHECK-OUT-COMMON < %t.cfgset.out %s 38# RUN: FileCheck --check-prefix=CHECK-CFGSET-ERR < %t.cfgset.err %s 39# 40# CHECK-CFGSET-ERR: Using internal shell 41 42# CHECK-OUT-COMMON: TIMEOUT: per_test_timeout :: infinite_loop.py 43# CHECK-OUT-COMMON: Timeout: Reached timeout of 1 seconds 44# CHECK-OUT-COMMON: Timed Out: 1 45 46 47############################################################################### 48# Check tests can complete in with a timeout set 49# 50# `short.py` should execute quickly so we shouldn't wait anywhere near the 51# 3600 second timeout. 52############################################################################### 53 54# Test per test timeout using external shell 55# RUN: %{lit} \ 56# RUN: %{inputs}/shtest-timeout/short.py \ 57# RUN: -j 1 -v --debug --timeout 3600 --param external=1 > %t.pass.extsh.out 2> %t.pass.extsh.err 58# RUN: FileCheck --check-prefix=CHECK-OUT-COMMON-SHORT < %t.pass.extsh.out %s 59# RUN: FileCheck --check-prefix=CHECK-EXTSH-ERR < %t.pass.extsh.err %s 60 61# Test per test timeout using internal shell 62# RUN: %{lit} \ 63# RUN: %{inputs}/shtest-timeout/short.py \ 64# RUN: -j 1 -v --debug --timeout 3600 --param external=0 > %t.pass.intsh.out 2> %t.pass.intsh.err 65# RUN: FileCheck --check-prefix=CHECK-OUT-COMMON-SHORT < %t.pass.intsh.out %s 66# RUN: FileCheck --check-prefix=CHECK-INTSH-ERR < %t.pass.intsh.err %s 67 68# CHECK-OUT-COMMON-SHORT: PASS: per_test_timeout :: short.py 69# CHECK-OUT-COMMON-SHORT: Passed: 1 70 71# Test per test timeout via a config file and on the command line. 72# The value set on the command line should override the config file. 73# RUN: %{lit} \ 74# RUN: %{inputs}/shtest-timeout/short.py \ 75# RUN: -j 1 -v --debug --param external=0 \ 76# RUN: --param set_timeout=1 --timeout=3600 > %t.pass.cmdover.out 2> %t.pass.cmdover.err 77# RUN: FileCheck --check-prefix=CHECK-OUT-COMMON-SHORT < %t.pass.cmdover.out %s 78# RUN: FileCheck --check-prefix=CHECK-CMDLINE-OVERRIDE-ERR < %t.pass.cmdover.err %s 79 80# CHECK-CMDLINE-OVERRIDE-ERR: Forcing timeout to be 3600 seconds 81