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