1 | // Check that we can operate on files from /dev/fd. |
2 | // REQUIRES: dev-fd-fs |
3 | // REQUIRES: shell |
4 | |
5 | // Check reading from named pipes. We cat the input here instead of redirecting |
6 | // it to ensure that /dev/fd/0 is a named pipe, not just a redirected file. |
7 | // |
8 | // RUN: cat %s | %clang -x c /dev/fd/0 -E > %t |
9 | // RUN: FileCheck --check-prefix DEV-FD-INPUT < %t %s |
10 | // |
11 | // DEV-FD-INPUT: int x; |
12 | |
13 | |
14 | // Check writing to /dev/fd named pipes. We use cat here as before to ensure we |
15 | // get a named pipe. |
16 | // |
17 | // RUN: %clang -x c %s -E -o /dev/fd/1 | cat > %t |
18 | // RUN: FileCheck --check-prefix DEV-FD-FIFO-OUTPUT < %t %s |
19 | // |
20 | // DEV-FD-FIFO-OUTPUT: int x; |
21 | |
22 | |
23 | // Check writing to /dev/fd regular files. |
24 | // |
25 | // RUN: %clang -x c %s -E -o /dev/fd/1 > %t |
26 | // RUN: FileCheck --check-prefix DEV-FD-REG-OUTPUT < %t %s |
27 | // |
28 | // DEV-FD-REG-OUTPUT: int x; |
29 | |
30 | int x; |
31 | |