As Joel mentioned, we are in the process of bringing together one coherent system for moving our test and performance automation to new platforms. This was born out of the blood, sweat, and tears it took (hell, that it is still taking) to get that automation working on Maemo Linux for Fennec.
Our hope with the new framework is that it will be very easy for us to move to new platforms by swapping out only the small library of native code that runs on the device/platform under test. This can extend our reach dramatically to new platforms and to platforms currently under development.
Currently, we have two (mostly identical) device-agent libraries (the part that runs on the device), we have a test agent (the real brains that controls running the tests), and a test-server which helps with build completion detection, and getting the bits from each changeset down to our test-agent. The more detailed design is here.
The device-agent pieces are the most complete at this point, the rest is still a work in progress and I’m not going to claim that any of it works yet. That’s what Joel and Mikeal and Bob Moss and I will be doing this week.
Since it is in a bunch of different repositories, I cobbled it together into one and named it Orodruin, after the most well known and most feared forge in Tolkien’s Middle Earth. So if you dare, here’s how to get it:
- Ensure that you have hg and git installed on your box.
- hg clone http://hg.mozilla.org/users/ctalbert_mozilla.com/orodurin
- cd orodurin
- sh installrepos.sh
From there it’s pretty straight forward. If everything works, you have three directories: device-agent, test-agent, and test-server. The Microsoft Projects for building the device agents are in there (they build only on Windows Mobile and Windows CE at the moment, but we have a patch for Win32 coming). The structure is as follows:
- orodurin/device-agent/blassey — blassey’s own hg user repo
- orodurin/test-server – mikeal’s git repo for testbot
- Anything not covered above is in the orodurin repo itself.
Expect this code to rapidly change out from under you as the project is still in a very early phase. But that said, we are happy to take diffs/forks/patches.