[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