OK. Dirk and I talked offline and we came to this conclusion: We default to "--log detailed-progress,unexpected". For now, detailed-progress does nothing if --experimental-fully-parallel isn't also specified. If it is also specified, then it logs directories + dots a la upstream webkit. In a followup patch, I'll make it print out each shard as we go for the default case of sharding by directory.
Ojan On Mon, Dec 14, 2009 at 4:46 PM, Ojan Vafai <o...@chromium.org> wrote: > +chromium-dev > > I don't think having a third mode makes sense. We should have terse > (default) and verbose (--verbose). One is for running locally and one is for > the bots. Having the flexibility of the --log option is fine, but we should > pick a default for terse mode that most people are happy with. > > My intuition is that most people running the tests locally want: > 1. To see unexpected results (passes and failures) as they happen > 2. To know roughly which tests have run. The directories + dots gives this > feedback. Just directories is probably sufficient though. > > I'd be OK with not printing out unexpected results at the end in terse mode > and instead printing them out as we go, or making that a --log option. > > I think the default should be what you're currently calling third_mode, but > if you pass in --log "" then it could log as we do today. > > As you said though, the current implementation of third_mode doesn't make > sense when we're sharding by directory. So, for this change, it's fine to > have (2) above addressed only for --experimental-fully-parallel, but (1) > should be done for both fully-parallel and directory-sharded. > > Ojan > > On Mon, Dec 14, 2009 at 4:17 PM, Dirk Pranke <dpra...@chromium.org> wrote: > >> Okay, for further clarification ... >> >> There are currently (as checked in), two modes of output, the one-line >> version (default, aka "terse" mode) and --verbose. The patch adds a >> "third mode", which effectively disables sharding and enables >> --fully-parallel. >> >> Note that it is possible to run sharding or fully-parallel without "third >> mode". >> >> Which of the following are you suggesting (multiple are okay): >> >> 1) Do nothing (drop the patch) >> >> 2) Submit the patch as is - this adds a "third" mode enabled by a new >> command line flag which prints directories and dots but does not print >> unexpected results by default. >> "third" mode disables sharding. In either "terse" mode or "third" >> adding "--log failures" will log unexpected failures in real time but >> not passes. >> >> 3) Add another flag for unexpected passes in either mode, e.g. "--log >> passes" >> >> 4) Change "--log failures" to "--log unexpected" so that you get both >> or neither. >> >> 5) Always log unexpected failures in terse mode (no flag needed) >> >> 6) Always log unexpected passes in terse mode (no flag needed) >> >> 7) Always log unexpected failures in "third" mode >> >> 8) Always log unexpected passes in "third" mode >> >> 9) Modify the patch so that --experimental-fully-parallel enables >> "third mode". This means that you get "terse + sharding" or "third >> mode + fully-parallel" >> >> 10) Eliminate "terse" mode, so that we only have two modes - "third" >> and "verbose" >> >> I am fine with (1), (2), (3), (4), (7), and (8). I would prefer (3) or >> (4), and am happy with (2) with or without (7) and/or (8) even though >> I won't (often) use it. I could grudgingly accept (5) and (6), >> although I don't think it's as clean as making logging of unexpected >> results a separate feature (since we log the unexpected results at the >> end, I don't think they always need to be in the middle). I don't like >> (9), and I like (10) even less, since both of these options actually >> undo much of my previous work and produce test scripts that I want to >> use less than the versions that exist now. >> >> -- Dirk >> >> On Mon, Dec 14, 2009 at 3:37 PM, Ojan Vafai <o...@chromium.org> wrote: >> > On Mon, Dec 14, 2009 at 3:19 PM, Dirk Pranke <dpra...@chromium.org> >> wrote: >> >> >> >> (1) We can leave the output as is (discarding this patch) >> >> + It is the tersest >> >> + It works fine regardless of what order tests are executed in, and >> >> whether or not you are sharding or running in full parallel mode >> >> + It has the minimum amount of code >> >> - It loses the incremental "." output that webkit has >> >> - It loses the directory by directory output that webkit has >> >> - It loses the printing of unexpected test failures in real time >> >> that webkit has >> >> >> >> (1a) I can add the realtime printout of unexpected failures >> >> (1b) I can add the realtime printout of unexpected passes >> > >> > At least printing out unexpected failures in real-time seems to me to be >> a >> > non-negotiable requirement. I think we may as well printout unexpected >> > passes. It's useful information when running the tests. >> > >> >> >> >> (2) We can take the patch as is (with the minor cleanup Ojan >> >> suggested, of course) >> >> + It adds printout of unexpected failures >> >> + It adds the "." output >> >> + It adds the directory by directory output >> >> + This is as webkit-compatible as we can get >> >> - It loses sharding (I believe you can't do sharding and print >> >> directory-by-directory completion or "."s in any meaningful way; I >> >> don't know what the output would have to look like since the >> >> interleaving would be all over the place) >> >> - It introduces additional complexity (a manageable amount) >> >> >> >> (2a) I can add the realtime printout of unexpected passes as well >> > >> > I think this is fine. I just think we should tie this to >> > --experimental-fully-parallel instead of the webkit-log commandline >> option >> > (which I think should not exist). >> > >> >> >> >> (3) We can keep sharding, and print directory-by-directory completion >> >> + it keeps sharding, which may be the most efficient and reliable >> >> way to run the tests >> >> + it keeps directory completion >> >> - we can't print the "." output since there's no sensible ordering >> >> of the parallel streams (as explained above) >> > >> > Agreed. >> > >> >> >> >> - it is not that compatible with the webkit output, since the >> >> directories will be completing out of order. >> > >> > This seems fine. >> > >> >> >> >> - printing out realtime failures or passes gets a little weird since >> >> that'll be interleaved with directory completion as well >> > >> > This doesn't seem like a big deal to me and is what we do today in >> verbose >> > mode. >> > >> >> >> >> - due to the way the output is currently structured, there is no >> >> easy way to keep track of the shards or the progress through each >> >> shard or directory on the output thread. I think adding this will add >> >> a fair amount of complexity. >> >> >> >> (3a) we can keep the "# remaining" meter as well >> > >> > I agree. I don't think keeping track of the progress per-shard is worth >> the >> > development effort. Just printing out when we start/finish each shard >> and >> > the #remaining is sufficient. >> > >> >> >> >> Obviously, we can, given an arbitrary amount of time and space, >> >> implement all of the above, at increased maintenance cost and at a >> >> questionable return on investment. Pragmatically, I don't think we >> >> want to support that many different options, and at some point we're >> >> bikeshedding on individual preference. >> > >> > Agreed. >> >> >> >> Ojan, I'm also not sure that I understood what you were trying to say >> >> with "I'd like to see the distinction be between sharded vs. fully >> >> parallelized though rather than webkit-style vs. chromium-style. And >> >> for the sharded version to print out each shard as we start and finish >> >> it". Did I capture what you were looking for in the options above, or >> >> are you looking for even more output. >> > >> > All I'm really saying is that option #2 makes sense for >> > --experimental-fully-parallel and option #3 makes sense for the sharded >> > case. I think it makes sense to do both of those and not have a specific >> > webkit style output that noone actually uses. >> >> >> >> Bear in mind that we should tune the output to the people that >> >> actually run the tests and look at the output, rather than the people >> >> that maintain the tests. I don't think anybody but us cares about how >> >> things are sharded or when they start and complete, and so I'm a bit >> >> loathe for that to be anything other than debug/--verbose information. >> > >> > That's actually not my experience fixing bugs. When I fix an editing >> bug, I >> > want to run the whole test suite, but I pay extra attention to the >> editing >> > directory as it's running. It's very useful to me to see which parts of >> the >> > test suite have run. >> > >> >> >> >> So, given all that, I'd vote for and of the (1) or (2) variants, but >> >> not do (3). Can we do one of those for now and, if you guys want >> >> additional stuff, have one of you do the work to see if you can get >> >> the output the way you want it? Ojan, maybe you can see a way to >> >> implement sharded output and directory completion that's easier than >> >> what I'm seeing ... >> > >> > I'd say go ahead with finishing #2. I can do #3 later. >> > Ojan >> > > -- Chromium Developers mailing list: chromium-dev@googlegroups.com View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev