1999-12-23 DJ Delorie Here are some notes about adding and using this testsuite. First, all the programs are linked with libcygwin0.a, which is just like libcygwin.a, except that it wants cygwin0.dll, not cygwin1.dll. The testsuite adds the winsup build directory to the PATH so that cygwin0.dll can be found by windows during testing. Because we'll probably run into complaints about using two DLLs, we run cygrun.exe for each test. All this does is run the test with CreateProcess() so that we don't attempt to do the special code for when a cygwin program calls another cygwin program, as this might be a "multiple cygwins" problem. Any test that needs to test command line args or redirection needs to run such a child program itself, as the testsuite will not do any arguments or redirection for it. Same for fork, signals, etc. The testsuite/winsup.api subdirectory is for testing the API to cygwin1.dll ONLY. Create other subdirs under testsuite/ for other classes of testing. Tests in winsup.api/*.c or winsup.api/*/*.c (only one subdirectory level is allowed) either compile, run, and exit(0) or they fail. Either abort or exit with a non-zero code to indicate failure. Don't print anything to the screen if you can avoid it (except for failure reasons, of course). One .c file per test, no compile options are allowed (we're testing the api, not the compiler). Tests whose filename is mentioned in known-bugs.tcl will be *expected* to fail, and will "fail" if they compile, run, and return zero. "make check" will only work if you run it *on* an NT machine. Cross-checking is not supported. To test a subset of the test-suite, use $ make check CYGWIN_TESTSUITE_TESTS=regexp