123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- In general, we want to run as many automated test tools on the
- Xmlrpc-c libraries as possible. Before releasing a new release,
- please run as many of these tests as possible.
- Included Test Suites
- --------------------
- The 'test' program tests core functions. These are functions that
- don't involve HTTP communications. So obviously, it doesn't do any
- end-to-end client/server tests.
- The program is in src/test/test. You have to build that explicitly (with
- src/test/ as your current directory, do a 'make'); a top level 'make all'
- doesn't build it. (Reason: it's a tricky build, and we don't a user's
- build to fail just because of this program that a user doesn't need).
- src/cpp/cpptest is similar for the C++ libraries.
- Note: Before Release 1.03, 'test' was called 'rpctest' and both it
- and 'cpptest' were in the src/ directory and were built by 'make all'.
- Memory Leaks
- ------------
- (Linux only?) Install Owen Taylor's 'memprof' utility. This program
- includes a malloc debugger and a conservative garbage collector. To run it,
- type:
- memprof test
- This should report any memory leaks which occur while the test suites are
- running.
- Electric Fence
- --------------
- (Most Unix platforms.) Install Bruce Perens' Electric Fence library, and
- read the man pages carefully. Link 'test' against '-lefence', and run it
- with the following sets of environment variables:
- 1) (Default environment.)
- Test for heap block overruns.
- 2) EF_PROTECT_BELOW=1
- Test for heap block underruns.
- 3) EF_PROTECT_FREE=1
- Test for doubly-freed memory and illegal accesses to freed memory.
- 4) EF_ALIGNMENT=0
- Test for very small block overruns. This is an important test, but
- it may not work on some platforms. Please see the efence manpage for
- more information.
- (After each run, unset the environment variables from the previous run.)
- Using a Bourne shell (such as bash) you can run all these tests as follows:
- test
- EF_PROTECT_BELOW=1 test
- EF_PROTECT_FREE=1 test
- EF_ALIGNMENT=0 test
- Alternatively, if you have a copy of Purify installed, please run that.
- End-to-End Tests
- ----------------
- To test Abyss and the client XML transports, use the example
- programs examples/sample_add_server and examples/sample_add_client:
- $ export XMLRPC_TRACE_XML=1
- $ examples/sample_add_server 8080&
- $ examples/sample_add_client
- Note that we use XMLRPC_TRACE_XML so we can see the XML flying by on
- both sides of the connection.
- Note that the Port 8080 is hardcoded in sample_add_client.
- Note that sample_add_client uses only the default XML transport.
- You can do more extensive client testing with the 'xmlrpc' program
- (tools/xmlrpc/xmlrpc).
- Tips
- ----
- To debug Abyss without threads, don't pass -D_UNIX or -D_WIN32. The server
- will run in a single-threaded mode.
|