The main source of information is the DejaGnu user guide by Rob Savoye [3]. The most useful section is the Unit Testing API, which lists all the procedures. Follow these instructions as closely a possible in order get a good insight into how DejaGnu works, else you might run into a lot of subtle problems. You have. DejaGnu uses the GNU autoconf to configure itself. For more info on using autoconf, read the GNU autoconf manual. To configure, execute the configure.

Author: Kem Tojajas
Country: Trinidad & Tobago
Language: English (Spanish)
Genre: Automotive
Published (Last): 20 August 2014
Pages: 467
PDF File Size: 14.69 Mb
ePub File Size: 16.56 Mb
ISBN: 608-4-47015-259-9
Downloads: 31373
Price: Free* [*Free Regsitration Required]
Uploader: Grogore

These are patterns specified as dejagnuu the TCL string match command, which is similar to the syntax of shell regular expressions commonly known as “glob” patterns. For example the test name and command line could be passed as arguments to the procedure as follows. It is this directory from which runtest will be executed.

DejaGnu Testing Framework – What is DejaGnu?

The FSF is a charity with a worldwide mission to advance software freedom — learn about our history and work. So the above example would pass if the spawned program generated the following output.

There is the potential for confusion here, since expect is both the name of the language and a command within that language. However the local config file in an autotools environment is inherently transient it is in the build directory, not the source directoryso permanent changes should be placed in one of the other config files. It specifies board dejagu on which the tests should be run.


Probably the greatest challenge was testing in a cross-development environment which can be a fejagnu nightmare. When we replaced it with the Expect-based framework, it was like DejaGnu all over again Version for TCL 8. If the check target exists, it usually saves you some trouble–for instance, it can set up any auxiliary programs or other files needed by the tests.

It takes a series of pairs of patterns and actions and waits until one of the patterns matches the output of a spawned process see spawn belowor a specified time period has passed or an end of file has been seen.

FAIL Indicates that a test has failed. However it is more flexible to only set a value if it is not already set. Even when buying packaged boards from vendors there are many differences.

DejaGnu can be used standalone, but it is most useful when integrated with the GNU autotools autoconf automake and libtool.

They are introduced with the flag -re. This specifies a path where directories of tests may be found.

runtest(1) – Linux man page

DejaGnu configuration files 3. Typically because the spawned process has completed execution. Setting up DejaGnu for the first time is a challenge. Test output goes into two files in your current directory: It runs a series of tests written in expect and reports the results of those tests.

Only the first part is regenerated every time make is run, so changes may safely be made in the second half. Ousterhout at the Winter Usenix conference, Tcl: By not defining –srcdir on the command line, runtest will look instead in the local configuration file, automatically generated by automake and autoconfwhich includes a definition of the global variable srcdir.


The runtest command 2. Matches if the stream from the spawned process reaches end of file.

DejaGnu will log maunal name of each file of expect code found in the test directory. Services and Modeling for Embedded Software Development. Indicates that a feature was not tested. Navigation menu Personal tools Create account Log in. By convention the tests are all run from a directory named testsuitebut this need not be the case.

Embecosm publishes a series of free and open source application notes, designed to help working engineers with practical problems.

For example, to look in the config sub-directory of the main test directory for board specific settings, the following would be suitable in the global configuration file. Commonly used janual tests timeout. It provides a layer of abstraction which makes all correctly written tests portable to any host or target where a program must be tested.

These procedures all report the result of a test. Writing tests using expect 3.

Programmed Dialoguefor details on expect. Where there are multiple configuration files, it is usually the top level one which is changed.