Random Bits of Open Code

Update of "megatest"
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview

Artifact ID: 22e66fd649768c9ca0809a7dc15411b1e1bdf48c
Page Name:megatest
Date: 2011-05-03 13:53:14
Original User: matt
Parent: b5013dee227ca042bd98cced018d79e2a9583280
Content

Megatest

NB// Megatest code has been moved to http://www.kiatoa.com/fossils/megatest

Copy the megatest/tests directory and modify megatest.config and possibly runconfigs.config. Compile and install megatest into your path somewhere. Copy utils/nbfake into your path somewhere and make sure it is executable.

Now you should be able to run megatest from the tests directory by running "make".

Real documentation will appear here over time :)

Watching the runs proceed

Use the "watch" utility. Or try the dashboard:

watch megatest -list-runs %
Every 2.0s: megatest -list-runs %                                                                                                                    Sun Mar 13 20:26:42 2011

Run: none/nfs/ubuntu/2011WW10.7
  Test: runfirst(summer)          State: COMPLETED       Status: PASS            Runtime:    20s Time: 03/13/2011 16:48:07    Host: zeus
  Test: runfirst(winter)          State: COMPLETED       Status: PASS            Runtime:    20s Time: 03/13/2011 16:48:07    Host: zeus
  Test: runfirst(fall)            State: COMPLETED       Status: PASS            Runtime:    20s Time: 03/13/2011 16:48:08    Host: zeus
  Test: runfirst(spring)          State: COMPLETED       Status: PASS            Runtime:    20s Time: 03/13/2011 16:48:08    Host: zeus
  Test: sqlitespeed               State: COMPLETED       Status: FAIL            Runtime:     0s Time: 03/13/2011 16:48:21    Host: zeus
         cpuload:  0.0
         diskfree: 25449356
         uname:    Linux 2.6.32-30-generic #59-Ubuntu SMP Tue Mar 1 21:30:21 UTC 2011 unknown unknown GNU/Linux
         rundir:   /tmp/none/nfs/ubuntu/2011WW10.7/sqlitespeed

Features

  1. Flexible test specification. Use perl, ruby, shell, scheme, expect, tcl or whatever you like to write your tests. There is no specialized test scripting language.
  2. Test dependencies, the "waiton" keyword will prevent a test from launching until the tests that it depends on have completed with "PASS" status.
  3. Process and machine monitoring while the test is running. The test execution process "calls home" every 10 seconds with the memory and diskspace usage on the machine where the test is running.
  4. Configurable hierarchy for your tests. I used sysname, fsname and datapath for organizing my test runs but you can set up for what ever key words work for your situation.
  5. A remote launching script (nbfake) is included which seems to work pretty well (it is just an ssh command which I admit I had to resort to google to figure out) and has also been tested with another network batch job running tool and worked fine.
  6. Easy test debugging with the -xterm command. If you have x-forwarding set up via ssh you can use the -xterm switch to bring up an xterm with the target environment for debugging your tests.
  7. Uses the sqlite3 database backend with a very simple schema. Writing your own dashboard or bolting on additional automation should be very easy.
  8. Test iteration. Add entries to the items section of your testconfig file and the test will be run with all combinations of your items.
  9. Disk space management. Add paths to your disks to the disks section of your megatest.config file and megatest will create the run area on the disk with the most space and link it back to your "runs" directory.

History of Megatest