Commit Graph

495 Commits

Author SHA1 Message Date
mrkraimer 90a75d9974 moved ca tests from testApp to testCa 2018-05-09 10:49:32 -04:00
mrkraimer eafe9021a7 add tests for provider ca 2018-05-07 16:03:56 -04:00
Michael Davidsaver eed26a166e testChannelAccess: loosen timestamp tests to reduce false positive failures 2018-04-02 11:45:33 -07:00
Michael Davidsaver 93196e6314 drop rtemsConfig.c
no longer needed.
2018-03-19 09:29:25 -07:00
Michael Davidsaver 8d262fc9fe simpler test harness main() 2018-03-13 18:55:49 -07:00
Andrew Johnson 9687555c98 Move epicsExit() call into pvAccessAllTests()
Needed on VxWorks to display the test summary.
2018-03-13 13:46:56 -05:00
Andrew Johnson 802efbd6c1 Rename vxTestHarness -> pvaTestHarness
Integrate with Michael's similar changes for RTEMS.
2018-03-13 13:46:14 -05:00
Michael Davidsaver 0e61565308 rename rtemsTestHarness -> pvaTestHarness
avoid name clash with rtemsTestHarness
from pvDataCPP.
2018-03-12 09:13:59 -07:00
Michael Davidsaver 9b828852c0 Transport::getRemoteAddress() return reference
make it clear that result is always !NULL
2018-02-01 19:09:44 -08:00
Michael Davidsaver 58f996fd98 update transportRegistry
avoid leaks of SOCKET and leaving mutex locked
when exceptions are thrown.
2018-02-01 18:54:25 -08:00
Michael Davidsaver d33356ced6 drop deprecated 2018-01-31 12:48:59 -08:00
Andrew Johnson fa46935d35 Clean up compiler warnings 2018-01-04 17:52:36 -06:00
Michael Davidsaver 0161799c93 must zero osiSockAddr prior to use!
RTEMS depends on this or eg. bind()
will fail because comparison with
list of interface addresses is done
with memcmp()!
2017-11-28 17:54:25 -06:00
Michael Davidsaver cc9c666731 Improve client pvRequest option parsing
Give some notice of parse errors
2017-11-16 17:38:11 -06:00
Michael Davidsaver 576b241faa consolidate TransportClient and ChannelImpl as ClientChannelImpl 2017-11-06 15:51:43 -06:00
Michael Davidsaver 02a11fc539 drop long defunct test code 2017-11-06 12:52:26 -06:00
Michael Davidsaver dcb74b781d be explicit about epics::auto_ptr 2017-11-06 12:46:13 -06:00
Michael Davidsaver 0fde239f23 std::auto_ptr -> epics::auto_ptr 2017-11-06 12:37:42 -06:00
Michael Davidsaver 49173ec884 disable pvAccessMB and unused ref-counting boilerplate 2017-11-05 16:54:10 -06:00
Michael Davidsaver 5e900b1f11 remove super abstract authNZInitialize(void*)
with separate client and server calls.

Still dynamic_cast ugliness as Transport and Codec
hierarchies don't have a common root.
2017-11-05 16:41:59 -06:00
Michael Davidsaver 60c97c3e88 drop MBLIB 2017-10-05 11:10:27 +02:00
Michael Davidsaver 27ec187bd4 inetAddressUtil no more new vector
no more allocating vector.
2017-09-02 09:55:15 -05:00
Michael Davidsaver c7fd78af57 more shared_ptr compat 2017-07-18 17:35:32 +02:00
Michael Davidsaver 6370f11cd2 remove unused 2017-07-14 14:38:04 +02:00
Michael Davidsaver 5d843d3587 RPC cleanup: RPCService is a sub-set of RPCServiceAsync 2017-07-11 14:38:01 +02:00
Michael Davidsaver c98c872835 fix race in channelAccessIFTest 2017-07-04 12:20:51 +02:00
Michael Davidsaver aadf428212 test debugging 2017-07-03 19:32:55 +02:00
Michael Davidsaver 4fe837c9a0 add RPC loopback test 2017-07-03 19:24:01 +02:00
Michael Davidsaver 749e8d71d1 replace all internal use of getChannelProviderRegistry() 2017-07-03 19:24:00 +02:00
Michael Davidsaver a3185f11da MonitorElement const and state tracking
Mark MonitorElement member pointers as const
to prevent user code from accidentally mangling.

Add 'state' tracking to help debugging
2017-06-27 15:42:27 +02:00
Michael Davidsaver 35d2c610bf separate ChannelProviderRegistry for client/server 2017-06-21 14:41:24 +02:00
Michael Davidsaver 3a190cb572 deprecate RPCClient::sendRequest()
Changes to provider factory registery make this
very inefficient (build a new client context of each request)
2017-06-08 20:37:20 +02:00
Michael Davidsaver 3e37781d85 update RPCClient
Addition ctor to use specific Provider (w/ custom config).
Start connect immediately.
Remove need to issueConnect()/waitConnect().
2017-06-08 20:35:43 +02:00
Michael Davidsaver 8febd176bb PVA client ref. loop breaking
Adjust ownership of BaseRequestImpl sub-classes.
Keep two weak_ptr<>.
one (internal) for tracking relations with Channel.
one (external) for tracking relations w/ user code, and send Q.

external wraps internal, and calls destroy() to break
ref. loops involving internal.

death to m_thisPointer!
2017-06-07 13:33:10 +02:00
Michael Davidsaver ce25f0b175 ServerContext ref. loop breaking and threading
Drop unnecessary "worker" thread which does no work.
Ensure that returned shared_ptr is unique()==true.

Add ServerContext::create() to start a new server
with specific config and/or providers
2017-05-31 11:40:51 +02:00
Michael Davidsaver 0fbbcc2d9f remove deprecated Properties 2017-05-30 17:33:04 +02:00
Michael Davidsaver 277e5c33fb privatize some API details
hide a number of APIs which should not
be public APIs.
2017-05-30 17:12:31 +02:00
Michael Davidsaver 7c85e6073b move ServerContextImpl into private header 2017-05-30 12:07:23 +02:00
Michael Davidsaver 3283bed413 drop PVA_ALIGNMENT constant
This will forevermore be 1, so no
reason to incur complexity of testing this.

size % PVA_ALIGNMENT -> 0
alignBuffer(PVA_ALIGNMENT) -> no-op
alignedValue(val, PVA_ALIGNMENT) -> val
2017-05-24 17:20:17 -04:00
Michael Davidsaver 87dca19708 codec: avoid indirection when accessing buffers
avoid some indirection to make this code easier to follow.
move buffer lower limit to base class.
2017-05-24 17:20:17 -04:00
Michael Davidsaver b05e7699b5 remove no-op lock/unlock from Lock sub-classes 2017-05-24 17:20:17 -04:00
Michael Davidsaver 9253c31c0b rework ChannelProviderRegistry
Replace interface+impls with a single concrete container
which wraps a map.

This breaks code which was sub-classing.
However, no external code can be found which does this.

A build() method is used instead of simple ctor so
that the ctor is private, which will cause theoretical
external sub-class code to fail to compile.

Code using getChannelProviderRegistry()
and existing methods will behave as before.

Add ChannelProviderRegistry::getFactory() for pass through
to ChannelProviderFactory (Registery is just a proxy()...)

Remove existing get/create virtual method in favor of getFactory.
Update both existing implementations.

Add SimpleChannelProviderFactory to cut down on boilerplace
for the common case.

Add method to clear mapping and release any saved sharedInstance.
2017-04-25 21:15:43 -04:00
Matej Sekoranja 74028c9640 testRAII added 2016-05-19 14:53:16 +02:00
Andrew Johnson 0884a199b3 Adjust time-stamp comparison to be approximately 1 second.
Also found another time-stamp comparison test, similar changes there.
2016-04-21 15:34:39 -05:00
Andrew Johnson 6e0b772880 Improve test robustness (was failing on a Mac VM)
Store and compare the complete time-stamp, not just the seconds field.
2016-04-21 11:13:19 -05:00
Matej Sekoranja 6dc9b0f96f replaced LGPL wildcard matcher w/ simplistic epics-base version 2016-04-14 11:31:32 +02:00
Andrew Johnson 9a8644033d Prevent redefinition of NOMINMAX
While this protection is not strictly necessary here, if someone
does a cut-and-paste into a header file it should be included.
2016-04-06 15:22:11 -05:00
Andrew Johnson 962e139c1a Don't use %z modifier, not portable. 2016-04-06 11:40:16 -05:00
Andrew Johnson d76d7faab6 Prevent redefinition warning on MinGW 2016-04-06 11:33:59 -05:00
Andrew Johnson 8fdf0d7411 Use lower-case header filenames for MinGW cross-compilation 2016-04-06 10:59:22 -05:00