Compiler projects using llvm
## Show that llvm-strings can handle the -t/--radix switch properly.

RUN: split-file --no-leading-lines %s %t
#--- a.txt
one
two
three
four
five
six
seven
eight
nine
ten
#--- end

RUN: llvm-strings %t/a.txt | FileCheck %s -check-prefix CHECK-NONE --implicit-check-not={{.}}
RUN: llvm-strings -t d %t/a.txt | FileCheck %s -check-prefix CHECK-DEC --strict-whitespace --implicit-check-not={{.}}
RUN: llvm-strings -t o %t/a.txt | FileCheck %s -check-prefix CHECK-OCT --strict-whitespace --implicit-check-not={{.}}
RUN: llvm-strings -t x %t/a.txt | FileCheck %s -check-prefix CHECK-HEX --strict-whitespace --implicit-check-not={{.}}

## Show --radix works too.
RUN: llvm-strings --radix d %t/a.txt | FileCheck %s -check-prefix CHECK-DEC --strict-whitespace
RUN: llvm-strings --radix o %t/a.txt | FileCheck %s -check-prefix CHECK-OCT --strict-whitespace
RUN: llvm-strings --radix x %t/a.txt | FileCheck %s -check-prefix CHECK-HEX --strict-whitespace

## Show different syntaxes work.
RUN: llvm-strings --radix=d %t/a.txt | FileCheck %s -check-prefix CHECK-DEC --strict-whitespace
RUN: llvm-strings -t d %t/a.txt | FileCheck %s -check-prefix CHECK-DEC --strict-whitespace

CHECK-NONE: {{^}}three
CHECK-NONE: {{^}}four
CHECK-NONE: {{^}}five
CHECK-NONE: {{^}}seven
CHECK-NONE: {{^}}eight
CHECK-NONE: {{^}}nine

CHECK-DEC: {{^}}      8 three
CHECK-DEC: {{^}}     14 four
CHECK-DEC: {{^}}     19 five
CHECK-DEC: {{^}}     28 seven
CHECK-DEC: {{^}}     34 eight
CHECK-DEC: {{^}}     40 nine

CHECK-OCT: {{^}}     10 three
CHECK-OCT: {{^}}     16 four
CHECK-OCT: {{^}}     23 five
CHECK-OCT: {{^}}     34 seven
CHECK-OCT: {{^}}     42 eight
CHECK-OCT: {{^}}     50 nine

CHECK-HEX: {{^}}      8 three
CHECK-HEX: {{^}}      e four
CHECK-HEX: {{^}}     13 five
CHECK-HEX: {{^}}     1c seven
CHECK-HEX: {{^}}     22 eight
CHECK-HEX: {{^}}     28 nine

## Show that an invalid value is rejected.
RUN: not llvm-strings --radix z %t/a.txt 2>&1 | FileCheck %s --check-prefix=INVALID
INVALID: error: --radix value should be one of: '' (no offset), 'o' (octal), 'd' (decimal), 'x' (hexadecimal)