On Mon, Dec 21, 2009 at 4:15 PM, Adrian Kuhn <[email protected]> wrote: > Julian Fitzell <jfitz...@...> writes: > >> Well, the second may require working *with* SUnit maintainers on other >> platforms. :) > > Where can I find their names?
Dunno... guess this is a start: http://sunit.sourceforge.net/people.htm >> I guess I don't know exactly what you define as >> "internal representation" but from Seaside's point of view it is >> absolutely essential that unit tests be runnable the same way on all >> platforms - it's the cornerstone of portability. > > Good point. Added as a requirement: current test should remain runnable, and > it should be possible to limit oneself to a set features that runs on all > platforms. > > One problem I see with legacy tests though is that TestCase serves currently > two purposes: a the superclass of all classes that contain tests, and as the > implementation of the internal logic that runs the tests. I don't how common > it is to override internal methods of test case in subclass (as eg #runCase > etc). In Seaside, eg, are you doing this? It seems we do not, though we do override #performTest in two cases. Both are cases where we need to wrap the execution in an exception handler. >> Although now I've said it, why not just start from scratch? There's >> not a lot of code there... implement something that works the way you >> want, build it using Grease/Slime so we can port it easily to >> everywhere else, and that's something Seaside could use (assuming it >> was compellingly better). And suddenly we'd have a test framework that >> *did* run everywhere with a common code base. > > Compelling, but can this be done without being a cross-platform expert? I > recall the pain of getting Fame to run in both VW and Squeak, eventually I > gave up. Cross-platform integration server, anyone? > > What is Grease/Slime? I don't know - we've become pseudo-experts for Seaside but it doesn't seem to be that tough in our case - just a matter of avoiding lots of things that aren't compatible. Grease is the light-weight compatibility layer we have ended up developing out of the Seaside project. I also used it to port Magritte and Pier to VA Smalltalk and Colin and I are now beginning to use it for MC2. Slime is a set of lint rules - currently some of them are Seaside-specific but others are essentially a counterpart to Grease - detecting things that you cannot do if you want your code to be portable. The hope is that others can leverage the experience we've developed and our porters' efforts getting Grease running on their platforms. I still need to finish a write-up on what Grease is and post it somewhere - on my todo list for the holidays. Julian _______________________________________________ Pharo-project mailing list [email protected] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
