123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- This directory contains some tests for Guile, and some generic test
- support code.
- To run these tests, you will need a version of Guile more recent than
- 15 Feb 1999 --- the tests use the (ice-9 and-let*) and (ice-9
- getopt-long) modules, which were added to Guile around then.
- For information about how to run the test suite, read the usage
- instructions in the comments at the top of the guile-test script.
- You can reference the file `lib.scm' from your own code as the module
- (test-suite lib); it also has comments at the top and before each
- function explaining what's going on.
- Please write more Guile tests, and send them to bug-guile@gnu.org.
- We'll merge them into the distribution. All test suites must be
- licensed for our use under the GPL, but I don't think I'm going to
- collect assignment papers for them.
- Some test suite philosophy:
- GDB has an extensive test suite --- around 6300 tests. Every time the
- test suite catches a bug, it's great.
- GDB is so complicated that folks are often unable to get a solid
- understanding of the code before making a change --- we just don't
- have time. You'll see people say things like, "Here's a fix for X; it
- doesn't cause any regressions." The subtext is, I made a change that
- looks reasonable, and the test suite didn't complain, so it must be
- okay.
- I think this is terrible, because it suggests that the writer is using
- the test suite as a substitute for having a rock-solid explanation of
- why their changes are correct. The problem is that any test suite is
- woefully incomplete. Diligent reasoning about code can catch corner
- conditions or limitations that no test suite will ever find.
- Jim's rule for test suites:
- Every test suite failure should be a complete, mysterious surprise,
- never a possibility you were prepared for. Any other attitude
- indicates that you're using the test suite as a crutch, which you need
- only because your understanding is weak.
|