Tonido build and test HW

One of the challenges we have at CodeLathe is making sure Tonido builds/runs on all 4 OSes(Windows, Mac, Linux + Tonido Plug) without problems. And we have to keep verifying that things are not broken as we do development. So I thought I would talk a little bit about the continuous integration process we have for Tonido as well as the testing infrastructure. Maybe this would help you in your next project.


Here’s our HW setup:

Quad Core Ubuntu Server running 8.04 Hardy Heron

  • Subversion repository for version control
  • Trac for internal wiki
  • RT for bug tracking and customer feedback

Quad Core Ubuntu Server running 8.04 Hardy Heron

  • Hudson – Build System (controls all the VMs as a master-slave configuration)
    • Builds every night or on a as needed basis
    • One click build process spits out release packages once it is done
    • One click promotion promotes a Tonido build to our QA staging area for internal testing
    • One click promotion promotes a Tonido build to release
  • Ubuntu 8.04 desktop VM builds source for Linux
  • Windows XP Pro VM builds source for Windows and runs our Perl based System tests
  • Ubuntu 8.04 desktop VM runs Perl based System tests

    Mac Mini 1.8 GHz

    • Builds mac source code controlled by Hudson (It would have been nice if we were allowed to run Mac OS X as a guest in a VM)

    Test Machines

    Many of these machines are grouped using Tonido P2P groups.

    They are also located/distributed geographically with different router configurations etc, This is especially important because we need to verify NAT traversal when using the Tonido Network.

    • 4 Dual Core Windows Vista Ultimate Machine running Tonido 24/7
    • 2 Mac Minis 1.8 GHz Runs Tonido 24/7
    • 1 Quad Core Windows XP Pro Machine running Tonido 24/7
    • 1 Dual Core Windows Vista 64 bit Premium running Tonido 24/7
    • 1 Ubuntu 8.04 Linux VM running Tonido 24/7

    In addition to all these machines, there are about 5 TonidoPlugs that are running Tonido 24/7. We expect more plugs to be online once we wrap up development and start our testing phase on the plugs.

    Our biggest headache is keeping all those passwords straight. 🙂

    6 Responses

    1. Hi! What software do you use to test drive the functionality on the HTML/JS side? Something open source or home-grown?

    2. Madhan says:

      @Jason We do it the old fashioned way, we have about several hundreds of test cases we go through manually. 🙂

    3. Christopher Olson says:

      Speaking of passwords….

      It’d be neat to create some sort of an encrypted password plugin, so that passwords could be stored in a secure database on a personal Tonido server, and then retrieved over the web (using SSL) – preferably in some sort of a non-caching format (like Flash, or something.)

      The Keepass project has some good stuff, and is open source. I use that to manage my myriads of logins and passwords.

    4. Madhan says:

      @Christopher Yes, something like that would be useful. One of our team guys actually prototyped something like this. It however never got past the initial stages.

    5. thomas says:

      I actually found Tonido through a web search for “distributed password management”, then “encrypted p2p password management”, and finally something about “collaboration”.
      Our situation is that a handful of admins need access to passwords; on-line and off-line. And the passwords may change and need to be updated. So my first line of thought was something along the lines of monotone: distributed version control, with a passwords db that could be encrypted.
      A possible solution, but not completely elegant.

      Currently I’m considering using CPM ( and distributing the encrypted password databases through a monotone-like approach.
      Obviously, a Tonido Application that emulates CPM (searchable with regex, only displays that one required password at a time) with a ‘master’ password DB on the group owner’s account, auto-accepting diffs submitted from roaming admins, and keeping a history just-in-case – would be marvelous!

      All that said, I’m bleeping impressed with Tonido as it is.

    6. Madhan says:

      @thomas Yes an application to store passwords would be useful. At the same time, you could consider using a shared group Workspace to store passwords. The data is synchronized with everyone.

    Leave a Reply