2007-12-22 Paul Jakma <paul.jakma@sun.com>

	* bgp_capability_test.c: Test for empty capabilities.

2007-09-27 Paul Jakma <paul.jakma@sun.com>

	* aspath_test.c: Test dupe-weeding from sets.
	  Test that reconciliation merges AS_PATH and AS4_PATH where
	  former is shorter than latter.

2007-09-26 Paul Jakma <paul.jakma@sun.com>

	* aspath_test.c: Test AS4_PATH reconcilation where length
	  of AS_PATH and AS4_PATH is same.

2007-09-25 Paul Jakma <paul.jakma@sun.com>

	* bgp_capability_test.c: (general) Extend tests to validate
	  peek_for_as4_capability.
	  Add test of full OPEN Option block, with multiple capabilities,
	  both as a series of Option, and a single option.
	  Add some crap to beginning of stream, to prevent code depending
	  on getp == 0.

2007-09-18 Paul Jakma <paul.jakma@sun.com>

	* bgp_capability_test.c: (parse_test) update for changes to
	  peek_for_as4_capability

2007-09-17 Paul Jakma <paul.jakma@sun.com>

	* bgp_capability_test.c: Test that peer's adv_recv and adv_nego get
	  set correctly for MP capability and given AFI/SAFI.
	  Colour OK/failed result so it's easier to find them.

2007-07-27 Paul Jakma <paul.jakma@sun.com>

	* bgp_capability_test.c: new, capability parser unit tests.
	* Makefile.am: add previous.

2007-07-25 Paul Jakma <paul.jakma@sun.com>

	* aspath_test.c: Exercise 32bit parsing. Test reconcile
	  function.
	* ecommunity_test.c: New, test AS4 ecommunity changes, positive
	  test only at this time, error cases not tested yet.
	
2006-12-01 Juergen Kammer <j.kammer@eurodata.de>

	* aspath_test.c: Support asn32 changes, call aspath_parse with 16 bit.

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
