[PATCH] D44914: Revert "Revert "[lit] Generalized /dev/null support on Windows.""

Mircea Trofin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 26 17:58:24 PDT 2018


mtrofin created this revision.
Herald added subscribers: llvm-commits, delcypher.
mtrofin added a reviewer: rnk.

This reverts commit 35e080b5365a9ab7ffd167b9f58d8f5d6cb4e82a.

Checking if the arguments are strings before testing if they
contain "/dev/null".


Repository:
  rL LLVM

https://reviews.llvm.org/D44914

Files:
  test/tools/llvm-profdata/invalid-profdata.test
  utils/lit/lit/TestRunner.py
  utils/lit/tests/Inputs/shtest-shell/check_args.py
  utils/lit/tests/Inputs/shtest-shell/dev-null.txt


Index: utils/lit/tests/Inputs/shtest-shell/dev-null.txt
===================================================================
--- /dev/null
+++ utils/lit/tests/Inputs/shtest-shell/dev-null.txt
@@ -0,0 +1,14 @@
+# Check handling of /dev/null in command line options
+# On windows, it should be redirected to a temp file.
+#
+# RUN: "%{python}" %S/check_args.py --my_arg /dev/null | FileCheck %s --check-prefix=CHECK1
+# CHECK1: OK
+
+# RUN: "%{python}" %S/check_args.py --my_arg=/dev/null | FileCheck %s --check-prefix=CHECK2
+# CHECK2: OK
+
+# RUN: "%{python}" %S/check_args.py -a /dev/null | FileCheck %s --check-prefix=CHECK3
+# CHECK3: OK
+
+# RUN: "%{python}" %S/check_args.py -a=/dev/null | FileCheck %s --check-prefix=CHECK4
+# CHECK4: OK
Index: utils/lit/tests/Inputs/shtest-shell/check_args.py
===================================================================
--- /dev/null
+++ utils/lit/tests/Inputs/shtest-shell/check_args.py
@@ -0,0 +1,14 @@
+#!/usr/bin/env python
+
+import argparse
+import platform
+
+parser = argparse.ArgumentParser()
+parser.add_argument("--my_arg", "-a")
+
+args = parser.parse_args()
+
+answer = (platform.system() == "Windows" and
+          args.my_arg == "/dev/null" and "ERROR") or "OK"
+
+print(answer)
Index: utils/lit/lit/TestRunner.py
===================================================================
--- utils/lit/lit/TestRunner.py
+++ utils/lit/lit/TestRunner.py
@@ -36,6 +36,7 @@
 
 # Use temporary files to replace /dev/null on Windows.
 kAvoidDevNull = kIsWindows
+kDevNull = "/dev/null"
 
 class ShellEnvironment(object):
 
@@ -626,7 +627,7 @@
            raise InternalShellError(cmd, "Unsupported: glob in "
                                     "redirect expanded to multiple files")
         name = name[0]
-        if kAvoidDevNull and name == '/dev/null':
+        if kAvoidDevNull and name == kDevNull:
             fd = tempfile.TemporaryFile(mode=mode)
         elif kIsWindows and name == '/dev/tty':
             # Simulate /dev/tty on Windows.
@@ -797,11 +798,11 @@
         # Replace uses of /dev/null with temporary files.
         if kAvoidDevNull:
             for i,arg in enumerate(args):
-                if arg == "/dev/null":
+                if isinstance(arg, basestring) and kDevNull in arg:
                     f = tempfile.NamedTemporaryFile(delete=False)
                     f.close()
                     named_temp_files.append(f.name)
-                    args[i] = f.name
+                    args[i] = arg.replace(kDevNull, f.name)
 
         # Expand all glob expressions
         args = expand_glob_expressions(args, cmd_shenv.cwd)
Index: test/tools/llvm-profdata/invalid-profdata.test
===================================================================
--- test/tools/llvm-profdata/invalid-profdata.test
+++ test/tools/llvm-profdata/invalid-profdata.test
@@ -20,7 +20,7 @@
 RUN: echo "1"                                            >> %t.input
 RUN: echo ":10"                                          >> %t.input
 
-RUN: not llvm-profdata merge %t.input -text -o /dev/null 2>&1  | FileCheck %s --check-prefix=BROKEN
+RUN: not llvm-profdata merge %t.input -text -output=/dev/null 2>&1  | FileCheck %s --check-prefix=BROKEN
 BROKEN: Malformed instrumentation profile data
 
 RUN: echo ":ir"                     > %t.input


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D44914.139872.patch
Type: text/x-patch
Size: 3307 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180327/4156ddd3/attachment.bin>


More information about the llvm-commits mailing list