apolyakov updated this revision to Diff 166290.
apolyakov retitled this revision from "[lldb-mi] Improve lldb-mi LIT tests" to 
"[lldb-mi] Fix hanging of target-select-so-path.test".
apolyakov edited the summary of this revision.
apolyakov added a comment.

I found out that the reason of hanging of the test suite was in incorrect usage 
of Filecheck and lldb-mi processes in target-select-so-path.test. Current patch 
has been tested on CentOS 7.


https://reviews.llvm.org/D52139

Files:
  lit/tools/lldb-mi/target/inputs/target-select-so-path.py


Index: lit/tools/lldb-mi/target/inputs/target-select-so-path.py
===================================================================
--- lit/tools/lldb-mi/target/inputs/target-select-so-path.py
+++ lit/tools/lldb-mi/target/inputs/target-select-so-path.py
@@ -19,7 +19,7 @@
 debugserver_proc = subprocess.Popen(debugserver.split())
 lldbmi_proc = subprocess.Popen(lldbmi, stdin=subprocess.PIPE,
                                stdout=subprocess.PIPE, shell=True)
-filecheck_proc = subprocess.Popen(filecheck, stdin=lldbmi_proc.stdout,
+filecheck_proc = subprocess.Popen(filecheck, stdin=subprocess.PIPE,
                                   shell=True)
 
 # Get a tcp port chosen by debugserver.
@@ -32,8 +32,8 @@
     # Replace '$PORT' with a free port number and pass
     # test's content to lldb-mi.
     lldbmi_proc.stdin.write(f.read().replace('$PORT', port))
-    lldbmi_proc.wait()
-    filecheck_proc.wait()
+    out, err = lldbmi_proc.communicate()
+    filecheck_proc.stdin.write(out)
 
 debugserver_proc.kill()
 exit(filecheck_proc.returncode)


Index: lit/tools/lldb-mi/target/inputs/target-select-so-path.py
===================================================================
--- lit/tools/lldb-mi/target/inputs/target-select-so-path.py
+++ lit/tools/lldb-mi/target/inputs/target-select-so-path.py
@@ -19,7 +19,7 @@
 debugserver_proc = subprocess.Popen(debugserver.split())
 lldbmi_proc = subprocess.Popen(lldbmi, stdin=subprocess.PIPE,
                                stdout=subprocess.PIPE, shell=True)
-filecheck_proc = subprocess.Popen(filecheck, stdin=lldbmi_proc.stdout,
+filecheck_proc = subprocess.Popen(filecheck, stdin=subprocess.PIPE,
                                   shell=True)
 
 # Get a tcp port chosen by debugserver.
@@ -32,8 +32,8 @@
     # Replace '$PORT' with a free port number and pass
     # test's content to lldb-mi.
     lldbmi_proc.stdin.write(f.read().replace('$PORT', port))
-    lldbmi_proc.wait()
-    filecheck_proc.wait()
+    out, err = lldbmi_proc.communicate()
+    filecheck_proc.stdin.write(out)
 
 debugserver_proc.kill()
 exit(filecheck_proc.returncode)
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to