xref: /aosp_15_r20/external/llvm/utils/lit/tests/shtest-timeout.py (revision 9880d6810fe72a1726cb53787c6711e909410d58)
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