This directory contains a battery of tests that exercise all the functionality of ACE on Win32 and UNIX. These tests can be executed in a single pass via a shell script run_tests.sh (on UNIX) or a batch file run_tests.bat (on Win32). We had problems running the batch file on Windows 95 and Windows NT using the native DOS prompt. However we were able to get around this problem by using a program called "4DOS for Windows NT" which also displays a DOS prompt but allows us to run batch files through it. The tests have been run on UNIX, Windows NT, and Windows 95 and they all work with the following exceptions: 1. Name_Server_Test on Windows 95: this does not work on Windows 95 since Windows 95 has a different model for shared memory and does not support explicitly selecting shared memory addresses. 2. UPIPE_Test and SPIPE_Test on Windows 95: these do not work on Windows 95 since Windows 95 does not support the server side functionality of accepting connections from clients using named pipes. 3. Proactor_Test (to be added) on Windows 95: this does not work on Windows 95 since Windows 95 does not support I/O completion ports. Notes: 1. Each test creates a log file and writes it to the ./log/ directory. The log directory can be changed in the test_config.h file. 2. Each log file contains a time stamp of when the test began and also a time stamp indicating when the test ended. If the ending time stamp is missing, you can assume that the test did not succeed. 3. None of the tests require any command line parameters. This is in accordance with the keeping the test-suite a "one-button" test. If any of the tests require any variable parameters these are specified in test_config.h. 4. Time_Service_Test executes the Time Server and Clerk components as two processes and so the executable "main" need to be present in the netsvcs/bin directory. These components rely on config files. Two sample config files are also present in the test-suite, namely UNIXserver.conf and UNIXclerk.conf (and for Win32, Win32server.conf and Win32clerk.conf). On VxWorks, there currently is no batch file for running all of the tests. If you would like to contribute one, that would be great. The straightforward approach of loading a test program, running it by calling ace_main, and then unloading it doesn't work, because the unload often fails. If the program is run by spawning a new task (-> sp ace_main), then the unload will succeed. However, then we need a way to tell when the test is done. OS::thr_join () could probably be used, but it first has to be implemented for VxWorks. All of the tests on VxWorks (g++ 2.7.2/VxWorks 5.3.1) pass, with these exceptions: Buffer_Stream_Test ENOTSUP: unknown Conn_Test unknown MM_Shared_Memory_Test ENOTSUP: unknown Mem_Map_Test ENOTSUP: unknown (mmap) Naming_Test failed: (uses mmap?) Pipe_Test failed: fork Process_Mutex_Test (not run: requires processes) Process_Strategy_Test (not run: requires processes) Reactor_Notify_Test unknown Service_Config_Test failed: page fault Sigset_Ops_Test failed: line 109 assertion Time_Service_Test failed: uses spawn (fork) Tokens_Test (not run: uses fork) If you are able to determine the cause of failure of any of these tests, please let us know! If you have any questions/suggestions, please send email to ace-users@cs.wustl.edu.