I think this is a very good idea, and I do think a plugin is the way to go.

  In the past, I have made up some simplistic test maps to test broken things 
in 
a controlled environment - it also makes it easier to very that it is now 
working correctly.

  However, I certainly don't go back and re-run those tests manually.  Having a 
plugin do it wouldn't necessarily be hard.

  The plugin would I imagine read some form of command file, which could be 
something like:

load_map ...
activate_trigger x1,y1
sleep 10 (this in game ticks or something)
check_for_object x2,y2 boulder

  As a basic test to make sure a trigger activating spikes moves the boulder.

  I think a plugin is necessary because whatever is running the tests needs 
some 
way to look at the internal structures - what is on x2,y2.  Other commands I 
see 
would be inserting/removing items (to check handling of altars, buttons, etc)

  Such a plugin could actually handle a fair number of tests you describe.  IF 
there is a way for the plugin to be called every tick (as a global event), this 
can even cover things like spellcasting (the script could check for the 
presence 
of the spell on any number of spaces to confirm correct behavior).

  I do not envision running these unit tests on a server with players.  So if 
this plugin means it now takes 5 seconds for a tick to complete (say for 
complex 
spell tests where it is looking at a lot of spaces), that wouldn't be a big 
deal.

  Ideally, this test mode should be able to be started from command line, eg, 
crossfire -testscript ....

  which automatically loads the test plugin and runs it with testscript.

  I say this because some method of having this happen easily is highly 
desirable.  If I can do something like 'make tests', even if those tests take 
an 
hour, I could fire it off before I go to bed or something.  If I have to do 
special stuff to run the tests, this goes back to the test maps, nice to have, 
but doesn't do much good if never used.



_______________________________________________
crossfire mailing list
[email protected]
http://mailman.metalforge.org/mailman/listinfo/crossfire

Reply via email to