I think I can fix the issue without you debugging. Getting the single pass test runner to use it isn't impossible but will take some work. Can you direct-send me the backtrace from the point of failure from your system? Thanks!
-Todd On Wed, Dec 2, 2015 at 12:34 PM, Zachary Turner <ztur...@google.com> wrote: > Is there any way to force the single process test runner to use this same > system? I'm trying to debug the problem, but this codepath doesn't execute > in the single process test runner, and it executes in the child process in > the multiprocess test runner. Basically I need the following callstack to > execute in the single process test runner: > > Command invoked: C:\Python35\python_d.exe > D:\src\llvm\tools\lldb\test\dotest.py -q --arch=i686 --executable > D:/src/llvmbuild/ninja_py35/bin/lldb.exe -s > D:/src/llvmbuild/ninja_py35/lldb-test-traces -u CXXFLAGS -u CFLAGS > --enable-crash-dialog -C d:\src\llvmbuild\ninja_release\bin\clang.exe > --results-port 60794 --inferior -p TestIntegerTypesExpr.py > D:\src\llvm\tools\lldb\packages\Python\lldbsuite\test --event-add-entries > worker_index=7:int > 411 out of 412 test suites processed - TestIntegerTypesExpr.py > Traceback (most recent call last): > File "D:\src\llvm\tools\lldb\test\dotest.py", line 7, in <module> > lldbsuite.test.run_suite() > File "D:\src\llvm\tools\lldb\packages\Python\lldbsuite\test\dotest.py", > line 1476, in run_suite > setupTestResults() > File "D:\src\llvm\tools\lldb\packages\Python\lldbsuite\test\dotest.py", > line 982, in setupTestResults > results_formatter_object.handle_event(initialize_event) > File > "D:\src\llvm\tools\lldb\packages\Python\lldbsuite\test\test_results.py", > line 1033, in handle_event > "{}#{}".format(len(pickled_message), pickled_message)) > TypeError: a bytes-like object is required, not 'str' > > On Wed, Dec 2, 2015 at 11:40 AM Zachary Turner <ztur...@google.com> wrote: > >> When I run this under Python 3 I get "A bytes object is used like a >> string" on Line 1033 of test_results.py. I'm going to dig into it a little >> bit, but maybe you know off the top of your head the right way to fix it. >> >> On Wed, Dec 2, 2015 at 11:32 AM Zachary Turner <ztur...@google.com> >> wrote: >> >>> Oh yea, I made up that decorator idea because I didn't know all the >>> formatters were derived from a common base. But your idea is better if >>> everything is derived from a common base. To be honest you could even just >>> generate an error if there are two ResultsFormatter derived classes in the >>> same module. We should be encouraging more smaller files with single >>> responsibility. One of the things I plan to do as part of some cleanup in >>> a week or two is to split up dotest, dosep, and lldbtest.py into a couple >>> different files by breaking out things like TestBase, etc into separate >>> files. So that it's easier to keep a mental map of where different code is. >>> >>> On Wed, Dec 2, 2015 at 11:26 AM Todd Fiala <todd.fi...@gmail.com> wrote: >>> >>>> On Wed, Dec 2, 2015 at 11:20 AM, Todd Fiala <todd.fi...@gmail.com> >>>> wrote: >>>> >>>>> Yeah I'd be good with that. I can change that as well. >>>>> >>>>> -Todd >>>>> >>>>> On Wed, Dec 2, 2015 at 11:10 AM, Zachary Turner <ztur...@google.com> >>>>> wrote: >>>>> >>>>>> Also another stylistic suggestion. I've been thinking about how to >>>>>> more logically organize all the source files now that we have a package. >>>>>> So it makes sense conceptually to group all of the different result >>>>>> formatters under a subpackage called formatters. So right now you've got >>>>>> lldbsuite.test.basic_results_formatter.BasicResultsFormatter but it >>>>>> might make sense for this to be >>>>>> lldbsuite.test.formatters.basic.BasicResultsFormatter. If you do things >>>>>> this way, it can actually result in a substantially shorter command line, >>>>>> because the --results-formatter option can use lldbsuite.test.formatters >>>>>> as >>>>>> a starting point. So you could instead write: >>>>>> >>>>>> test/dotest.py --results-formatter basic >>>>>> >>>>>> dotest then looks for a `basic.py` module in the >>>>>> `lldbsuite.test.formatters` package, looks for a class inside with a >>>>>> @result_formatter decorator, and instantiates that. >>>>>> >>>>>> This has the advantage of making the command line shorter *and* a >>>>>> more logical source file organization. >>>>>> >>>>> >>>> The other thing that could allow me to do is possibly short-circuit the >>>> results formatter specifier so that, if just the module is specified, and >>>> if the module only has one ResultsFormatter-derived class, I can probably >>>> rig up code that figures out the right results formatter, shortening the >>>> required discriminator to something even shorter (i.e. module.classname >>>> becomes just module.) >>>> >>>> >>>>> >>>>>> On Wed, Dec 2, 2015 at 11:04 AM Zachary Turner <ztur...@google.com> >>>>>> wrote: >>>>>> >>>>>>> Can --results-file=stdout be the default so that we don't have to >>>>>>> specify that? >>>>>>> >>>>>>> On Wed, Dec 2, 2015 at 11:02 AM Todd Fiala via lldb-dev < >>>>>>> lldb-dev@lists.llvm.org> wrote: >>>>>>> >>>>>>>> Also, all the text in the summary is fixed-width lined up nicely, >>>>>>>> which may not show in the commit message description if you're using a >>>>>>>> variable-width font. On a terminal it looks nice. >>>>>>>> >>>>>>>> On Wed, Dec 2, 2015 at 11:01 AM, Todd Fiala <todd.fi...@gmail.com> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On Wed, Dec 2, 2015 at 10:57 AM, Todd Fiala <todd.fi...@gmail.com> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> Hi all, >>>>>>>>>> >>>>>>>>>> I just put up an optional test results formatter that is a >>>>>>>>>> prototype of what we may move towards for our default test summary >>>>>>>>>> results. It went in here: >>>>>>>>>> >>>>>>>>>> r254530 >>>>>>>>>> >>>>>>>>>> and you can try it out with something like: >>>>>>>>>> >>>>>>>>>> time test/dotest.py --executable `pwd`/build/Debug/lldb >>>>>>>>>> --results-formatter >>>>>>>>>> lldbsuite.test.basic_results_formatter.BasicResultsFormatter >>>>>>>>>> --results-file >>>>>>>>>> st >>>>>>>>>> out >>>>>>>>>> >>>>>>>>>> >>>>>>>>> I cut and paste my line, but more than likely for most people >>>>>>>>> you'd just want this: >>>>>>>>> >>>>>>>>> test/dotest.py --results-formatter >>>>>>>>> lldbsuite.test.basic_results_formatter.BasicResultsFormatter >>>>>>>>> --results-file >>>>>>>>> stdout >>>>>>>>> >>>>>>>>> The other stuff was specific to my setup. That line assumes you >>>>>>>>> run from the lldb source dir root. >>>>>>>>> >>>>>>>>> >>>>>>>>> Let me know if this satisfies the basic needs of counts and >>>>>>>>>> whatnot. It counts test method runs rather than all the oddball >>>>>>>>>> "file, >>>>>>>>>> class, etc." counts we had before. >>>>>>>>>> >>>>>>>>>> It prints out the Details section when there are details, and >>>>>>>>>> keeps it nice and clean when there are none. >>>>>>>>>> >>>>>>>>>> It also mentions a bit about test reruns up top, but that won't >>>>>>>>>> come into play until I get the multi-test-pass, >>>>>>>>>> single-worker/low-load >>>>>>>>>> mechanism in place, which will depend on newer rerun count awareness >>>>>>>>>> support. >>>>>>>>>> >>>>>>>>>> The change also cleans up places where the test event framework >>>>>>>>>> was using string codes and replaces them with symbolic constants. >>>>>>>>>> >>>>>>>>>> Let me know what you think. I can tweak it as needed to address >>>>>>>>>> testbot and other needs. Once it looks reasonable, I'd like to move >>>>>>>>>> over >>>>>>>>>> to using it by default in the parallel test runner rather than the >>>>>>>>>> legacy >>>>>>>>>> support. >>>>>>>>>> >>>>>>>>>> Thanks! >>>>>>>>>> -- >>>>>>>>>> -Todd >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> -Todd >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> -Todd >>>>>>>> _______________________________________________ >>>>>>>> lldb-dev mailing list >>>>>>>> lldb-dev@lists.llvm.org >>>>>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev >>>>>>>> >>>>>>> >>>>> >>>>> >>>>> -- >>>>> -Todd >>>>> >>>> >>>> >>>> >>>> -- >>>> -Todd >>>> >>> -- -Todd
_______________________________________________ lldb-dev mailing list lldb-dev@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev