run (various languages) - run an external program, for testing compiled code

abstract:Test frameworks for compiled languages usually require you to compile a special test program. To use one of these, you can have your build system (make, Ant, whatever) compile and install some number of test programs, then use this pandokia runner to execute them.

Running plain programs

The “run” test runner just executes a program. It assumes that the program knows how to make a pandokia report. You can use this for special cases and for installed test programs that were compiled as part of some external build process.

Compiled Separately

The build process for your system under test can compile and install test programs that are pandokia aware. You can then use the “run” runner to execute those external programs.

It may be helpful to place a shell script in your test directory:

#!/bin/sh
exec my_test_program

where my_test_program could be somewhere on PATH.

Special Shell Scripts

If you want to implement tests procedureally instead of through a test framework (such as shell_runner or shunit2), you can write a shell script that performs the test.

For shell scripts, there is a library named “pdk_run_helper.sh”. The basic outline is:

. pdk_run_helper.sh

# begin a test named "P".
test_start P
    # do some stuff here
    echo this is test P
    # report a test status - you can do this as many times as
    # you like; the resulting status will be the worst case that
    # was reported
    test_status P
# end of test
test_end

test_start this_one_fails
    # how to set an attribute
    test_attr tda_this yes
    test_attr tra_that no
    # determine test status
    if false
    then
        test_status P
    else
        test_status F
    fi
test_end

# call this at the end to remove temp files
cleanup