This branch fixes several tests.
I also added some changes that tell users which .db/.dbd file
was missing if the db and filter test programs abort, and
extend the search path so the tests can be run from the test
directory as well as from the O.<arch> directory.
Also made additional changes:
* Simplified xRecord.c so it can run on vxWorks.
* Standard way to load DBD and DB files in tests
All test harnesses now run on vxWorks (but some tests still fail).
The filter plugins are now in src/std/filters
and their tests in the test subdirectory.
Various portability issues found and fixed:
* Variable declarations after statements in a block
* Code assuming that epicsInt32 = long
* // comments in C files
Removed a number of tests that weren't really tests;
preconditions for future tests that don't actually check
the code being tested should call testAbort() if the
condition fails, which tells the test harness that you
meant to die at that point.
Split up lots of very long source lines.
Probably made a few other changes that I forget about now.
* ...Show functions take an indent argument (number of spaces to print
in front of each line) instead of a char* intro to avoid allocation at each level,
replacing '\t' with 8 spaces in top level code where necessary
* Refactor element_size -> field_size (as used in dbAddr), also in dbChannel
functions
* Fix: wrong macro name in unused part of db_field_log.h
* Add new db_field_log type "probe" for type change detection
* Move linked lists for pre- and post-event-queue chains into dbChannel,
function pointers and arguments into chFilter
* Remove set-type-chain completely
* Simplify register functions in filter and plugin interfaces
* Add functions to run the pre and post chains to dbChannel
* Refactor in db_field_log: field_size -> element_size
* Refactor in dbEvent:
db_post_single_event_first -> db_create_event_log
db_post_single_event_final -> db_queue_event_log (removed from public interface)
* Change tests to compile
* Add field_size to db_field_log
* Add final type, dbr_type, no_elements, and field size to dbChannel
(plus matching access methods)
* Add set-type callback chain to find out final sizes and types
* Add registration calls for pre-event-queue and post-event-queue insertion
* Move evSubscrip from dbEvent.[ch] (private) to dbChannel.h (public).
* Split up db_post_single_event_private into two parts:
..._first creates a new db_field_log chunk and copies from db.
..._final puts a db_field_log into the event queue.
* Add a typedef for the pre-event-queue recursive callbacks.
* Add a register function for the callback (plus void* arg) to filter and
plugin interfaces.
* Add the code that builds up the pre-event-queue callback chain.
* Changes to the test files to compile (no tests added yet).
* Fix missing include in db_field_log.h.
- chfPlugin.h contains the simple jump table and doxygen documentation
- chfPlugin.c is a wrapper library around the yajl callbacks that parses
any client-supplied configuration into the user's structure
- test/chfPluginTest.c tests the library and the data conversion