174989affSNico Weber // RUN: %clangxx -O0 %s -o %t
2*4c39f341SDan Liew // RUN: %env_tool_opts=help=1,include_if_exists=___some_path_that_does_not_exist___  %run %t 2>&1 | FileCheck %s
3*4c39f341SDan Liew // RUN: %env_tool_opts=help=1,symbolize=0 %run %t 2>&1 | FileCheck --check-prefix=CHECK-CV %s
4*4c39f341SDan Liew // RUN: %env_tool_opts=help=1,sancov_path=/long/path/that/requires/truncation/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaB \
5*4c39f341SDan Liew // RUN:   %run %t 2>&1 | FileCheck --check-prefix=CHECK-TRUNCATION %s
674989affSNico Weber 
main()774989affSNico Weber int main() {
874989affSNico Weber }
974989affSNico Weber 
1074989affSNico Weber // CHECK: Available flags for {{.*}}Sanitizer:
11*4c39f341SDan Liew 
12*4c39f341SDan Liew //
13*4c39f341SDan Liew // Bool option
14*4c39f341SDan Liew // CHECK: {{^[ \t]+symbolize$}}
15*4c39f341SDan Liew // CHECK-NEXT: (Current Value: true)
16*4c39f341SDan Liew //
17*4c39f341SDan Liew // String option
18*4c39f341SDan Liew // CHECK: {{^[ \t]+log_path$}}
19*4c39f341SDan Liew // CHECK-NEXT: (Current Value: {{.+}})
20*4c39f341SDan Liew //
21*4c39f341SDan Liew // int option
22*4c39f341SDan Liew // CHECK: {{^[ \t]+verbosity$}}
23*4c39f341SDan Liew // CHECK-NEXT: (Current Value: {{-?[0-9]+}})
24*4c39f341SDan Liew //
25*4c39f341SDan Liew // HandleSignalMode option
26*4c39f341SDan Liew // CHECK: {{^[ \t]+handle_segv$}}
27*4c39f341SDan Liew // CHECK-NEXT: (Current Value: {{0|1|2}})
28*4c39f341SDan Liew //
29*4c39f341SDan Liew // uptr option
30*4c39f341SDan Liew // CHECK: {{^[ \t]+mmap_limit_mb$}}
31*4c39f341SDan Liew // CHECK-NEXT: (Current Value: 0x{{[0-9a-fA-F]+}})
32*4c39f341SDan Liew //
33*4c39f341SDan Liew // FlagHandlerInclude option
34*4c39f341SDan Liew // CHECK: include_if_exists
35*4c39f341SDan Liew // CHECK-NEXT: (Current Value: ___some_path_that_does_not_exist___)
36*4c39f341SDan Liew 
37*4c39f341SDan Liew // Test we show the current value and not the default.
38*4c39f341SDan Liew // CHECK-CV: {{^[ \t]+symbolize$}}
39*4c39f341SDan Liew // CHECK-CV-NEXT: (Current Value: false)
40*4c39f341SDan Liew 
41*4c39f341SDan Liew // Test truncation of long paths.
42*4c39f341SDan Liew // CHECK-TRUNCATION: sancov_path
43*4c39f341SDan Liew // CHECK-TRUNCATION-NEXT: (Current Value Truncated: /long/path/that/requires/truncation/aaa{{a+}})
44