2006-08-26 Paul Jakma <paul.jakma@sun.com>

	* heavy-wq.c: (slow_func_del,slow_func) update to match workqueue
	  changes

2006-08-06 Paul Jakma <paul.jakma@sun.com>

	* aspath_test.c: (validate) Fix the sense of the aspath_loop_check,
	  which was the wrong way around and had actually been testing for
	  aspath_loop_check to be buggy.

2006-05-28 Paul Jakma <paul.jakma@sun.com>

	* test-sig.c: (main) configure logging, there's no terminal
	  to write to for one thing, but we do want stdout, and we
	  don't want a test to spam syslog.

2006-03-16 Paul Jakma <paul.jakma@sun.com>

	* heavy-wq.c: (heavy_wq_init) delay is gone from workqueue
	  spec.
	* aspath_test.c: (test_segments) Add an AS_SET with redundant
	  ASNs.
	  ({empty_prepend,prepend,parse}_test) add static qualifiers

2006-01-16 Paul Jakma <paul.jakma@sun.com>

	* aspath_test.c: (validate) free the temporary aspaths.
	  (empty_get_test) ditto.

2006-01-10 Paul Jakma <paul.jakma@sun.com>

	* test-stream.c: new file, small unit test for new
	  resize and {put,get}-quad stream functions.
	* Makefile.am: build teststream unit test.

2005-11-23 Paul Jakma <paul.jakma@sun.com>

	* aspath_test.c: Add an empty aspath to test segments, and to
	  compare tests.
	  Add a segment identical to seq1, but with one extra asn.
	  Fix bogus free of stream in make_aspath for case where
	  no stream was allocated (empty path data).

2005-10-11 Paul Jakma <paul.jakma@sun.com>

	* test-privs.c: Privileges unit test.
	* Makefile.am: build testprivs
	* aspath_test.c: fix a few sign warnings

2005-09-06 Paul Jakma <paul@dishone.st>

	* aspath_test.c: Test bgp_aspath functionality.
	* Makefile.am: build aspathtest
	* ChangeLog: Fix date of previous commit

2005-09-06 Paul Jakma <paul@dishone.st>

	* test-buffer.c: include memory.h
          (main) call memory_init().
	
2004-09-05 Paul Jakma <paul@dishone.st>

	* heavy-wq.c: (slow_func_del,slow_func_err) make them take
	  void * argument to shut up silly gcc warning.
	  
2004-05-25 Paul Jakma <paul@dishone.st>

	* main.c: new file, common 'main' portion which then calls
	  test_init.
	* heavy.c: remove common portions now in 'main.
	* heavy-wq.c: ditto
	* heavy-thread.c: ditto
	* heavy*.c: Set the slow_function iteration number lower, to 300, it
	  was several orders of magnitude too 'slow' to be useful. :)
	* Makefile.am: main is a source of the tests. heavy should link
	  to the math library.

2004-05-22 Paul Jakma <paul@dishone.st>

	* heavy-thread.c: Andrew Schorr's adaptation of heavy.c to use a
	  background thread to avoid responsiveness problems.
	* Makefile.am: Build heavythread

2004-05-21 Paul Jakma <paul@dishone.st>

	* heavy.c: Add a timer thread to demonstrate thread interactivity,
	  Add a daemon_exit command to assist with debugging (eg for memory
	  tracers, etc..)

2004-05-19 Paul Jakma <paul@dishone.st>

	* heavy.c: test programme to show how long-running functions
	  kill responsiveness. Demonstrating the most niggly problem 
	  left in bgpd.

2004-05-13 Paul Jakma <paul@dishone.st>

	* test-buffer.c: Andrew's buffer tester
	* test-memory.c: basic memory tester
	* Makefile.am: Add new tests
