[squeak-dev] OSProcess automation problem

Frank Shearar frank.shearar at gmail.com
Tue Feb 12 18:51:52 UTC 2013


On 12 February 2013 18:40, David T. Lewis <lewis at mail.msen.com> wrote:
> On Tue, Feb 12, 2013 at 05:42:13PM +0000, Frank Shearar wrote:
>> On 12 February 2013 16:55, David T. Lewis <lewis at mail.msen.com> wrote:
>> > On Tue, Feb 12, 2013 at 04:27:39PM +0000, Frank Shearar wrote:
>> >> On 12 February 2013 10:33, Frank Shearar <frank.shearar at gmail.com> wrote:
>> >> > On 12 February 2013 10:18, Frank Shearar <frank.shearar at gmail.com> wrote:
>> >> >> On 12 February 2013 00:34, David T. Lewis <lewis at mail.msen.com> wrote:
>> >> >>> On Mon, Feb 11, 2013 at 10:44:42PM +0000, Frank Shearar wrote:
>> >> >>>> Hi Dave,
>> >> >>>>
>> >> >>>> AioEventHandler >> #aioPluginPresent pops up a modal dialog that
>> >> >>>> prevents me from writing an automated job to run OSProcess' tests.
>> >> >>>>
>> >> >>>> Obviously it's doing that because I have 'AioPlugin not present,
>> >> >>>> AioEventHandler will use polling input'. I'm running this on a Cog
>> >> >>>> r.2678 VM.
>> >> >>>>
>> >> >>>> Is there a way to avoid this dialog popping up? Or, how can I make
>> >> >>>> sure the AioPlugin is present?
>> >> >>>>
>> >> >>>> Thanks,
>> >> >>>>
>> >> >>>> frank
>> >> >>>
>> >> >>> The test to check if AioPlugin is present is:
>> >> >>>
>> >> >>>         AioEventHandler aioPluginPresent ==> true
>> >> >>>
>> >> >>> If you ask Eliot nicely, he might be persuaded to include AioPlugin in
>> >> >>> his next build ;-)
>> >> >>>
>> >> >>> But that will not help your immediate problem, so I changed it to use
>> >> >>> #notify: rather than #inform: in AioEventHandler>>aioPluginPresent so
>> >> >>> that it will be possible to handle the Warning.
>> >> >>>
>> >> >>> After updating to latest OSProcess you should be able to do this prior
>> >> >>> to running the unit tests:
>> >> >>>
>> >> >>>  [AioEventHandler aioPluginPresent]
>> >> >>>    on: Warning
>> >> >>>    do: [ "ignore the one-time warning dialog" ]
>> >> >>>
>> >> >>> Dave
>> >> >>
>> >> >> Thanks, Dave.
>> >> >>
>> >> >> That did the trick!
>> >> >> http://build.squeak.org/job/ExternalPackage-OSProcess/ uses
>> >> >> InstallerSqueakMap to load the (head) release and the HudsonBuildTools
>> >> >> to run the test suite.
>> >> >>
>> >> >> Unfortunately something's going wrong with the build and I don't know
>> >> >> what: the image must be displaying a dialog of some kind.
>> >> >
>> >> > *cough* Yes, a "I can't find my sources file, halp!" dialog. I'm going
>> >> > to file a bug report for that. Fine, warn a user, by all means. But my
>> >> > script does not care about missing source!
>> >> >
>> >> > http://build.squeak.org/job/ExternalPackage-OSProcess/3/ shows the Aio
>> >> > tests all failing, as they should.
>> >>
>> >> http://build.squeak.org/job/ExternalPackage-OSProcess/5/
>> >>
>> >> Actually, shouldn't a bunch of these tests be passing? Did I mess up
>> >> something? I'm taking a Trunk, loading the HudsonBuildTools in, and
>> >> then running this:
>> >
>> > Try running it in your own image to see what passes. Many of the tests
>> > will fail on a Cog VM, primarily because of limitations of #forkSqueak
>> > on Cog (forkSqueak is heavily used for testing interprocess things), but
>> > also because of one or two issues in the plugin. These are actual failures,
>> > so don't expect the tests to pass. That does not mean you cannot use
>> > OSProcess on Cog, it just means that the full test suite will not pass.
>> >
>> > The Aio tests should pass on Cog if the plugin is present.
>>
>> Well, I also get 81 failures on my machine (running on the same Cog).
>> Which doesn't surprise me, since they're being driven off the same
>> script. But the script doesn't look obviously wrong?
>
> The script looks reasonable enough to me. The only thing I would say is that
> if you want to focus on OSProcess test coverage, then you would need to run
> it on an interpreter VM.
>
> The OSProcess and CommandShell tests will normally all pass, except for
> occasional intermittent failures on one or two of the interprocess tests.
> It's possible that these occasional intermittent failures might be more or
> less common on another machine, or maybe you will never see any failures
> at all ... I'd be interested to see how it looks on the CI server.

Ideally I'd run the test suite on all VMs on all platforms, but I
don't quite know how to set up the slicing and dicing of the matrix in
a clean fashion. Maybe I should take the lemon of 81 failing tests [1]
and make multiVM lemonade?

[1] I'm really not pointing fingers; I just couldn't resist the
proverb mangling.

frank

> Dave
>
>>
>> frank
>>
>> > Dave
>> >
>> >>
>> >> Installer squeakmap
>> >>     update;
>> >>     addPackage: 'OSProcess (head)';
>> >>     install.
>> >>
>> >> [(Smalltalk at: #AioEventHandler) aioPluginPresent]
>> >>     on: Warning
>> >>     do: [ "ignore the one-time warning dialog" ].
>> >>
>> >> HDTestReport runPackage: 'OSProcess-Tests'.
>> >>
>> >> "Throw away the dirty image."
>> >> WorldState addDeferredUIMessage: [ SmalltalkImage current snapshot:
>> >> false andQuit: true ].
>> >>
>> >>
>> >> > frank
>> >> >
>> >> >> It turns out that my recent script hacking builds on work done long
>> >> >> ago: people like Nicolas Cellier and Keith Hodges and Matthew Fulmer
>> >> >> have their initials all over the Installer stuff. Thanks, guys!
>> >> >>
>> >> >> frank
>> >
>


More information about the Squeak-dev mailing list