Posted by: cmtalbert | November 9, 2009

Introducing Orodruin

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:

  1. Ensure that you have hg and git installed on your box.
  2. hg clone
  3. cd orodurin
  4. 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.



  1. Nice choice of name. Might want to doublecheck the spelling, though. s/Orodurin/Orodruin/.

    • Dyslexia be damned! You know what’s funny? I DID check it. Three times, and still got it wrong. I can’t change the name on the hg repository unfortunately, but I changed it in the blog post at least.

      Thank you for the correction.

  2. Great work!

    Now only if this blog post began with, “There and Back Again: A tale by Clint Talbert” 😉

  3. […] Done: – A robust system to move test and performance automation to any new platforms that crop up in the future (oh, and […]

  4. Orodruin, Orodorin, Ordoroin.. check them all

  5. […] Done: – A robust system to move test and performance automation to any new platforms that crop up in the future (oh, and […]

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s


%d bloggers like this: