| ## Show that llvm-strings can handle stdin input properly. | |
| ## On z/OS, ebcdic output from printf is converted into utf-8 as | |
| ## the output being redirected, causing the values to be incorrect. | |
| ## TODO: use a builtin version of printf | |
| # UNSUPPORTED: system-zos | |
| ## Case 1: output with single string. | |
| RUN: printf "abcdefg" | llvm-strings - | FileCheck %s --check-prefix=CASE1 --implicit-check-not={{.}} | |
| CASE1: abcdefg | |
| ## Case 2: output too short for string. | |
| RUN: printf "abc" | llvm-strings - | FileCheck %s --implicit-check-not={{.}} --allow-empty | |
| ## Case 3: output with new line. | |
| RUN: printf "abcd\nefgh" | llvm-strings - | FileCheck %s --check-prefix=CASE3 --implicit-check-not={{.}} | |
| CASE3: abcd | |
| CASE3-NEXT: efgh | |
| ## Case 4: output containing unprintable characters. | |
| RUN: printf "abcd\000ef\037ghij\177klmn" | llvm-strings - | FileCheck %s --check-prefix=CASE4 --implicit-check-not={{.}} | |
| CASE4: abcd | |
| CASE4-NEXT: ghij | |
| CASE4-NEXT: klmn | |
| ## Case 5: no file name specified is equivalent to explicitly requesting stdin. | |
| RUN: printf "abcdefg" | llvm-strings | FileCheck %s --check-prefix=CASE1 --implicit-check-not={{.}} |