labath added inline comments.

================
Comment at: lit/lit.cfg:59
 
-debugserver = lit.util.which('debugserver', lldb_tools_dir)
+if platform.system() in ['Darwin']:
+    debugserver = lit.util.which('debugserver', lldb_tools_dir)
----------------
apolyakov wrote:
> Do we have `debugserver` only on macOS? On other OS it's called `lldb-server`?
That is correct (well.. some platforms like FreeBSD and Windows have neither).


================
Comment at: lit/tools/lldb-mi/target/inputs/target-select-so-path.py:8-11
+def get_free_port():
+    s = socket.socket()
+    s.bind(('', 0))
+    return s.getsockname()[1]
----------------
This is still racy, because the port can be snatched from under you between the 
time you get the free port and the time when lldb-server binds to it.  If this 
was the only test doing it then it might be fine, but since this is going to be 
running concurrently with other tests, all of which are fetching free ports, 
the chances of that happening add up.

(Also, binding to the wildcard address will trigger a firewall popup on some 
machines.)


================
Comment at: lit/tools/lldb-mi/target/inputs/target-select-so-path.py:25-26
+# Run debugserver, lldb-mi and FileCheck.
+debugserver_proc = subprocess.Popen(debugserver, shell=True)
+lldbmi_proc = subprocess.Popen(lldbmi, stdin=subprocess.PIPE,
+                               stdout=subprocess.PIPE, shell=True)
----------------
Another race here: lldb-mi can attempt to connect before lldb-server has had a 
chance to start listening. (That's another reason to implement the port 
handshake, as it will serve as an synchronization point -- you get the port 
number only after lldb-server has successfully started and set up it's socket).


https://reviews.llvm.org/D49739



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to