[Lldb-commits] [PATCH] D20193: test infra: catch bad decorators and import-time errors
Todd Fiala via lldb-commits
lldb-commits at lists.llvm.org
Fri May 13 13:31:59 PDT 2016
tfiala added a comment.
This chunk of code:
with tempfile.NamedTemporaryFile(
prefix="lldb_test_event_pickled_event_output",
delete=False) as temp_file:
return temp_file.name
inside event_collector.py comes up with a temp file name. (It opens and then immediately closes the file). That temp file name is then used as the file for which a "dotest.py" inferior will write output to, similar to how the real test suite has the dotest.py inferiors send messages over sockets. So the part that is really doing the writing is the dotest.py inferior.
Most likely, the dotest.py inferior isn't running. That means this subprocess is probably failing to run inside event_collector.py:
def _collect_events_with_command(command, events_filename):
# Run the single test with dotest.py, outputting
# the raw pickled events to a temp file.
with open(os.devnull, 'w') as dev_null_file:
subprocess.call(
command,
stdout=dev_null_file,
stderr=dev_null_file)
# Unpickle the events
events = []
if os.path.exists(events_filename):
with open(events_filename, "rb") as events_file:
while True:
try:
# print("reading event")
event = cPickle.load(events_file)
# print("read event: {}".format(event))
if event:
events.append(event)
except EOFError:
# This is okay.
break
os.remove(events_filename)
return events
There's a part that pipes that output to devnull. If you were to remove that piping to dev null, and just do this:
subprocess.call(command)
We'd probably see the actual error in trying to invoke dotest.py.
But at this point, I'd say you've helped a ton and put in more than enough time by verifying this isn't working quite yet. I will get a setup to repro and get it running there and address it directly.
Thanks, Zachary!
http://reviews.llvm.org/D20193
More information about the lldb-commits
mailing list