[Scummvm-devel] GSoC gui tools
Max Horn
max at quendi.de
Wed Nov 25 09:21:23 CET 2009
Hi Joost, all!
Am 23.11.2009 um 03:55 schrieb Joost Peters:
> Hi folks,
>
> As some of you will know, as part of Google's Summer of Code
> programme,
> we had a student working on unifying our tools and creating a new GUI
> front-end using the wxWidgets library.
> Apart from some bugs, this is in a mostly finished state, so we should
> really aim to merge this into trunk sooner rather than later. I
> want to
> work on this and push the process forward the coming week(s).
>
> It seems there are 2 approaches we can take; 1) we slowly merge in a
> few
> steps, update the old tools to use the new structure / classes,
> etc. or
> 2) we do (regression) testing and bug fixing in the branch, then
> import
> it wholesale when we've fixed all outstanding issues.
> I'm personally in favour of option 2 since it seems the least amount
> of
> work and easier distributable. Any opinions?
Well, *if* we have enough man-power (e.g. if for every compress_FOO
tool, the people who wrote it help out), then (2) sounds like the way
to go. Drawback is that we are stalled until we are able to test
*everything*. Or alternatively, until we tired enough to take the risk
and just move the stuff anyway, relying on end users to discover
regressions :/.
Anybody on this list willing to help? At all??
/me watches dustballs roll by...
We could of course try asking on the forums for help. Worth a shot,
but based on past experience, I am not sure it'll really help.
(1) may sound more complicated at first, but at least it allows us to
move tools to the new system at once after we tested them. If done
right, I don't think it would be much slower, either: We just have to
rename compress.cpp/.h in trunk to compress_old.cpp/.h and adapt the
current tools. Then you can just merge the new versions of the tools
you already tested to trunk right away, together with the new
compress.* and the other new files. Presto.
> Regardless of which method we choose, the following jobs will
> (eventually) need to be done, and any help would be appreciated:
>
> - Testing of the GUI version of the new unified tools(s) on various
> platforms.
Last time I tried them they worked quite OK on Mac OS X (I didn't test
all compression tools, though, only a few).
>
> - (regression) testing of the CLI version of the new tool(s) against
> the
> old standalone ones. Either using a test suite/script or manually.
> So far I've tested compress_scumm_sou (various games/demos),
> compress_queen, compress_agos (Simon 2 only), compress_tinsel (DW1
> only).
>
> - Creating a test suite/script.
> I've written a fairly ghetto bash shell script that aids in testing
> (compares the md5 sum of a known-to-be-good file against what the tool
> creates), but it's not great and could either do with a bit of work,
> or
> a better alternative. Is anyone familiar with an existing system for
> such a task?
I am not familiar with a specific system as such, but I believe a
relatively simple python / perl script could take care of this
already. Essentially, we'd need to define a list of records, each
record describing a test case and consisting of at least these entries:
source file name(s)
source md5(s) -- to verify the input file is the right one
then a list of these for { FLAC, MP3, Vorbis }:
compression instructions -- i.e. which tool to invoke, and with
which params
output file name(s)
output md5(s) -- to verify the output is bit identical to what we
expect.
Then performing a test would be a simple matter of running over each
record, compressing the input file and checking the output.
A refined version would only re-run a test if the compression tool
binary changed (i.e. is newer than the output file), or if the test
hasn't bee run yet (i.e. if the output file does not yet exist). This
is something one gets for free with "make". So it might even be best
to do the above with a Makefile, combined with a script:
test: dott-demo/monster.so3 ...
run script which checks the md5 of every output file and prints
"pass" or "failure"
dott-demo/monster.so3: dott-demo/monster.sou tools/compress_sou
compress_sou PARAMS
>
> - Setting up tool builds for various platforms on our buildbot.
Indeed, that would be awesome. In addition, it would be nice if
buildbot would run both the tools test suite as well as the unit tests
in our code base on dedicated builders, too ;).
Sadly, we have already seem to have a hard time maintaining the
existing buildbot stuff ... :/
Max
More information about the Scummvm-devel
mailing list