On Tue, Nov 1, 2011 at 2:27 AM, Gary Poster <gary.pos...@canonical.com> wrote: > I have a couple of concerns about that approach (which in fact is what I > tried initially with yuixhr). > > The first is that the main testprocess has no visibility of JS tests, or even > of JS test cases. It only has visibility into JS test suites as long as we > follow the convention of one suite per file.
I don't quite understand that - the slave process is an appserver, not a test runner; its the mechanized browser that is running js tests and knows about everything, isn't it? > somehow. The approaches that I imagined for this seemed unnecessarily tricky > and hand-wavy, though, and I don't have any new ideas in this regard. We can probably work something out; or we can build up the code muscles to let us do oops etc introspection in the js test code itself. As yet I don't know whether having such duplication is desirable (or not). We certainly have a rich testing environment in Python and being unable to leverage that would be a bit sad. That said, using the stock processlayercontroller doesn't imply the parent test process knowning about individual js tests as it executes: as long as either side is willing to do a reset-in-place its probably all good. That won't be too hard to arrange IMO. > The second concern is that I would like the interactive approach ("make > run-testapp") and the non-interactive test-suite-integration approach to be > as similar as possible so that it is easier to diagnose problems. Indeed, > one of the few differences between them (the test setup change caused by the > INTERACTIVE_TESTS flag) added to the confusion in diagnosing this particular > problem, and your fix was to eliminate that difference. There is significant manual duplication between run-testapp and the main test runner as it stands - we're going to have other cases of duplication as we bring more microservices online - gpgverifyd, mailbounced; jsoopsd etc.... I think there is a significant maintenance burden in that duplication and we should put significant resources into eliminating it. >> For now, I'm landing a workaround: remove the 'INTERACTIVE_TESTS' flag >> that was used to prevent rabbit starting - my code makes rabbit >> desirable always, and we're going forward on that, not backwards. > > This sounds like a great direction for a solution. I'll verify later that > the parent process is not duplicating setup work. (I plan to reinstate the > flag itself in the Makefile so that I can use it for an additional > interactive feature in one of my branches, but I won't let it affect the test > setup.) It certainly currently is duplicating effort when running a single test, because the layer chosen to run the slave appserver is one appropriate for running such appservers via the code path our other tests which need an appserver do. > So, I'm happy with where we are now with this, and what you've done. We can > discuss longer-term plans later, if you'd like to, but I think what you've > done as a workaround is the right way forward. Yes, I would like to discuss longer term plans, later :). -Rob _______________________________________________ Mailing list: https://launchpad.net/~launchpad-dev Post to : launchpad-dev@lists.launchpad.net Unsubscribe : https://launchpad.net/~launchpad-dev More help : https://help.launchpad.net/ListHelp