Note: Thanks to Dj Delorie for the original paper that this section is based on.
DejaGnu also supports running the tests on a remote host. To set this up, the remote host needs an ftp server, and a telnet server. Currently foreign operating systems used as remote hosts are VxWorks, VRTX, Dos/Win3.1, MacOS, and win95/win98/NT.
The recommended source for a win95/win98/NT based ftp server is to get IIS (either IIS 1 or Personal Web Server) from http://www.microsoft.com. When you install it, make sure you install the FTP server - it's not selected by default. Go into the IIS manager and change the FTP server so that it does not allow anonymous ftp. Set the home directory to the root directory (i.e. c:\) of a suitable drive. Allow writing via ftp.
It will create an account like IUSR_FOOBAR where foobar is the name of your machine. Go into the user editor and give that account a password that you don't mind hanging around in the clear (i.e. not the same as your admin or personal passwords). Also, add it to all the various permission groups.
You'll also need a telnet server. For win95/win98/NT, go to the Ataman web site, pick up the Ataman Remote Logon Services for Windows, and install it. You can get started on the eval period anyway. Add IUSR_FOOBAR to the list of allowed users, set the HOME directory to be the same as the FTP default directory. Change the Mode prompt to simple.
Ok, now you need to pick a directory name to do all the testing in. For the sake of this example, we'll call it piggy (i.e. c:\piggy). Create this directory.
You'll need a unix machine. Create a directory for the scripts you'll need. For this example, we'll use /usr/local/swamp/testing. You'll need to have a source tree somewhere, say /usr/src/devo. Now, copy some files from releng's area in SV to your machine:
Example 3-6. Remote host setup
cd /usr/local/swamp/testing mkdir boards scp darkstar.welcomehome.org:/dejagnu/cst/bin/MkTestDir . scp darkstar.welcomehome.org:/dejagnu/site.exp . scp darkstar.welcomehome.org:/dejagnu/boards/useless98r2.exp boards/foobar.exp export DEJAGNU=/usr/local/swamp/testing/site.exp |
You must edit the boards/foobar.exp file to reflect your machine; change the hostname (foobar.com), username (iusr_foobar), password, and ftp_directory (c:/piggy) to match what you selected.
Edit the global site.exp to reflect your boards directory:
Example 3-7. Add The Board Directory
lappend boards_dir "/usr/local/swamp/testing/boards" |
Now run MkTestDir, which is in the contrib directory. The first parameter is the toolchain prefix, the second is the location of your devo tree. If you are testing a cross compiler (ex: you have sh-hms-gcc.exe in your PATH on the PC), do something like this:
Example 3-8. Setup Cross Remote Testing
./MkTestDir sh-hms /usr/dejagnu/src/devo |
If you are testing a native PC compiler (ex: you have gcc.exe in your PATH on the PC), do this:
Example 3-9. Setup Native Remote Testing
./MkTestDir '' /usr/dejagnu/src/devo |
To test the setup, ftp to your PC using the username (iusr_foobar) and password you selected. CD to the test directory. Upload a file to the PC. Now telnet to your PC using the same username and password. CD to the test directory. Make sure the file is there. Type "set" and/or "gcc -v" (or sh-hms-gcc -v) and make sure the default PATH contains the installation you want to test.
Example 3-10. Run Test Remotely
cd /usr/local/swamp/testing make -k -w check RUNTESTFLAGS="--host_board foobar --target_board foobar -v -v" > check.out 2>&1 |
To run a specific test, use a command like this (for this example, you'd run this from the gcc directory that MkTestDir created):
Example 3-11. Run a Test Remotely
make check RUNTESTFLAGS="--host_board sloth --target_board sloth -v compile.exp=921202-1.c" |
Note: if you are testing a cross-compiler, put in the correct target board. You'll also have to download more .exp files and modify them for your local configuration. The -v's are optional.