|  |  | 
|  | ------------------------------------- | 
|  | Using the test suite for winpthreads | 
|  | ------------------------------------- | 
|  |  | 
|  | This test suite is originally designed for testing compliance: it just says when the tests pass without any further information. | 
|  | Because this is inconvenient for work in progress, the behaviour has been modified to show more information for debugging while keeping the changes minimal | 
|  | (for syncing purposes) | 
|  |  | 
|  | Procedure: | 
|  | ---------- | 
|  |  | 
|  | 1. Enter the winpthreads dir: | 
|  | $ cd winpthreads | 
|  | 2. Build the winpthreads lib | 
|  | $ make | 
|  | 3. Make a copy for the test-suite: | 
|  | $ cp libpthread.a libpthreadGC2.a | 
|  | 4. Enter the test-suite dir: | 
|  | $ cd tests | 
|  | 5. (optional) Clean: | 
|  | $ make clean | 
|  | 6. Build the suite. This will also run the tests. A few might crash so you have to click a dialog away. | 
|  | The tool "runall.exe" will also be built. | 
|  | $ make GC-static | 
|  | To log both the compile results and the asserts: | 
|  | $ make GC-static 2> compile-errors.log | 
|  | 7. Now you have a bunch of .exe and maybe some .pass files. Remove the .pass files. They don't contain much useful yet. | 
|  | $ rm *.pass | 
|  | 8. Re-run the tests in debugging mode. Again some crash dialogs maybe. | 
|  | runall will skip files with already an .pass or .fail output. | 
|  | $ runall . | 
|  | 9. Now 3 types of files will be generated for each source (.c) file (runall excludes itself): | 
|  | The stderr output with the asserts will be logged to corresponding .fail | 
|  | and .pass files. | 
|  | - .pass : the test has passed (exited with 0). | 
|  | - .fail : the test has failed (exited with != 0). | 
|  | - .x : no .exe found. Probably the compile has failed. | 
|  | Note that when a test crashes, a .fail output will be generated, even without failed asserts. | 
|  |  | 
|  | Module testing: | 
|  | --------------- | 
|  |  | 
|  | Sometimes you want to test, debug and modify a single test, say once2.c: | 
|  | 1. Copy test.h to the debug test dir: | 
|  | $ cp test.h ../test | 
|  | 2. Copy the file to the debug test dir: | 
|  | $ cp once2.c ../test | 
|  | 3. Enter the debug test dir: | 
|  | $ cd ../test | 
|  | 4. Build and run it: | 
|  | $ make once2.exe | 
|  | $ ./once2.exe | 
|  |  | 
|  | Benchtests: | 
|  | ----------- | 
|  |  | 
|  | These work, but you have to compile them by hand like this: | 
|  | $ make benchlib.o | 
|  | $ make benchtest1.exe | 
|  | $ make benchtest2.exe | 
|  | $ make benchtest3.exe | 
|  | $ make benchtest4.exe | 
|  | $ make benchtest5.exe |