DejaGnu

From Linux/Xtensa
Jump to navigation Jump to search

http://www.gnu.org/software/dejagnu/ is a framework for testing various other tools and programs.

The following instructions are intended to run the test suite in a simulator or on a board running Linux.

Remote board using ssh

Remote board using telnet/FTP

Although the preferred method to use dejagnu is over ssh, it might be necessary to use telnet and ftp, instead, if ssh is not supported or to slow on the particular target. Unfortunately, Dejagnu doesn't fully support telnet/ftp as a remote target out of the box, so it is necessary to patch the telnet.exp file. The distribution running on that board needs to be configured to include support for an ftp and telnet daemon, and these services should be running.

The telnet.exp file can usually be found under /usr/share/dejagnu/telnet.exp. http://linux-xtensa.org/pub/patches/dejagnu/dejagnu-telnet.patch.gz

cd /usr/share/dejagnu
cp telnet.exp telnet.exp.orig
gunzip -c <path-to>/dejagnu-telnet.patch.gz | patch -p0

The next step is to create a board interface file for the target. In this example, we use the name 'lx60', but it can be any name.

lx60.exp

load_generic_config "unix";                                                                                                                                    
set_board_info hostname         "lx60"
set_board_info compiler         "<path-to-compiler>/xtensa-linux-gcc"
set_board_info connect          "telnet"
set_board_info file_transfer    "ftp"
set_board_info shell_prompt     "\\$ "
set_board_info protocol         "telnet"
set_board_info telnet_username  "test"
set_board_info telnet_password  "test"
set_board_info ftp_username     "test"
set_board_info ftp_password     "test"

Before we can run the testsuite, we need to tell it what board to use. Create the file site.exp under <path-to-libffi>/testsuite/site.exp with the following content:

lappend boards_dir "<directory-that-includes-lx60.exp>"

Finally, you can run the testsuite:

export RUNTESTFLAGS="--target_board=lx60"
make check


Tensilica ISS Simulator

The Tensilica ISS simulator is already supported by DejaGnu. The target name is xtensa-sim.