Author: Aiden Grossman Date: 2025-09-19T21:43:52-07:00 New Revision: 7a3fa0671b34c067262f14aa07779a1f13908314
URL: https://github.com/llvm/llvm-project/commit/7a3fa0671b34c067262f14aa07779a1f13908314 DIFF: https://github.com/llvm/llvm-project/commit/7a3fa0671b34c067262f14aa07779a1f13908314.diff LOG: [lit] Make builtin cat work with stdin cat with no files passed to it is supposed to read from STDIN according to POSIX. The builtin cat lacking this behavior led to the clang test in dev-fd-fs.c to fail because it expected this behavior. This is a simple modification and I do not think it is possible to rewrite the test without this easily while preserving the semantics around named pipes. Reviewers: petrhosek, arichardson, ilovepi, cmtice, jh7370 Reviewed By: jh7370, arichardson, ilovepi, cmtice Pull Request: https://github.com/llvm/llvm-project/pull/158447 Added: Modified: clang/test/Misc/dev-fd-fs.c llvm/utils/lit/lit/builtin_commands/cat.py llvm/utils/lit/tests/Inputs/shtest-cat/cat.txt Removed: ################################################################################ diff --git a/clang/test/Misc/dev-fd-fs.c b/clang/test/Misc/dev-fd-fs.c index ea94d950b0716..b989ab8a439cf 100644 --- a/clang/test/Misc/dev-fd-fs.c +++ b/clang/test/Misc/dev-fd-fs.c @@ -1,6 +1,5 @@ // Check that we can operate on files from /dev/fd. // REQUIRES: dev-fd-fs -// REQUIRES: shell // Check reading from named pipes. We cat the input here instead of redirecting // it to ensure that /dev/fd/0 is a named pipe, not just a redirected file. diff --git a/llvm/utils/lit/lit/builtin_commands/cat.py b/llvm/utils/lit/lit/builtin_commands/cat.py index ddab555662045..2797e0cbb4154 100644 --- a/llvm/utils/lit/lit/builtin_commands/cat.py +++ b/llvm/utils/lit/lit/builtin_commands/cat.py @@ -49,6 +49,9 @@ def main(argv): import os, msvcrt msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY) + if len(filenames) == 0: + sys.stdout.write(sys.stdin.read()) + sys.exit(0) for filename in filenames: try: contents = None diff --git a/llvm/utils/lit/tests/Inputs/shtest-cat/cat.txt b/llvm/utils/lit/tests/Inputs/shtest-cat/cat.txt index 4014b0fca1f24..c5b5d247c2f95 100644 --- a/llvm/utils/lit/tests/Inputs/shtest-cat/cat.txt +++ b/llvm/utils/lit/tests/Inputs/shtest-cat/cat.txt @@ -70,3 +70,7 @@ # NP-CAT-OUTPUT-NEXT:M-HM-IM-JM-KM-LM-MM-NM-OM-PM-QM-RM-SM-TM-UM-VM-WM-XM-YM-ZM-[ # NP-CAT-OUTPUT-NEXT:M-\M-]M-^M-_M-`M-aM-bM-cM-dM-eM-fM-gM-hM-iM-jM-kM-lM-mM-nM-o # NP-CAT-OUTPUT-NEXT:M-pM-qM-rM-sM-tM-uM-vM-wM-xM-yM-zM-{M-|M-}M-~M-^? + +## Test that cat will pipe stdin to stdout if no other files are specified. +# RUN: echo test | cat | FileCheck --check-prefix=CAT-STDIN %s +# CAT-STDIN: test _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
