On Thu, Sep 23, 2010 at 1:04 PM, Dan Nessett <dnessett(a)yahoo.com> wrote:
After thinking about this some more I think you are
right. We should at
least start with something simple and only make it more complex (e.g.,
wiki resource switching) if the simple approach has significant problems.
There is already a way to 'bundle' individual tests together. It is the
selenium test suite. We could use that. We could then break up a
regression test into separate test suites that could run concurrently.
Summarizing, here is my understanding of your proposal:
[snip]
That all sounds great to me!
There are still some open questions:
+ How do you establish a fresh wiki for a URL used previously for a test
run?
If reusing wikis, simplest way would be to just remove the old one and
reinitialize it:
rm -rf /path/to/images/foowiki
mysql -e 'drop database foowiki; create database foowiki; use foowiki;
source db/tables.sql;'
php maintenance/update.php foowiki
(If using memcached, be sure to clear those out, reinitialize, or otherwise
do something that forces old values to be cleared or ignored.)
+ URLs identify test wikis. Only one regression test can run at time on
any one of these. How do you synchronize regression
test initiation so
there is some sort of lock on a test wiki currently running a regression
test?
Simplest way would be to have one wiki (database + URL) for each regression
test ("test1234wiki"), or even for each run of each regression test
("test1234run432wiki").
These could be created/removed as needed through simple shell scripting.
-- brion