Commit Graph

253 Commits

Author SHA1 Message Date
Michael Davidsaver d7e49605cc threadOnce further reduce boilerplate
also latch failure
2023-09-04 16:17:25 +02:00
Michael Davidsaver 59164a63f7 pvxs::ioc::testPrepare() 2023-09-04 16:17:25 +02:00
Michael Davidsaver a79eab92e8 improve message when request2mask() would select nothing 2023-09-02 11:14:07 +02:00
Michael Davidsaver 13d02530cf Add NTTable helper 2023-08-31 10:46:43 +02:00
Michael Davidsaver b0c7c8fcd0 ioc: fill in display.precision 2023-08-22 15:09:42 +02:00
Michael Davidsaver 82286a5ae5 fix testnamesrv
ensure nameserver actually used
2023-08-12 15:57:44 -07:00
Michael Davidsaver a2d2721385 test SockEndpoint parsing 2023-08-02 17:20:13 -07:00
Michael Davidsaver 88f09659e4 Workaround apparent g++12 spurious error
In file included from ../testshared.cpp:12:
In constructor ‘pvxs::shared_array<E, Enable>::shared_array(size_t, V) [with V = std::nullptr_t; E = std::unique_ptr<unsigned int>; Enable = void]’,
    inlined from ‘void {anonymous}::testComplex()’ at ../testshared.cpp:225:57:
../../src/pvxs/sharedArray.h:288:17: error: pointer used after ‘void operator delete [](void*, std::size_t)’ [-Werror=use-after-free]
  288 |         :base_t(new _E_non_const[c], c)
      |                 ^~~~~~~~~~~~~~~~~~~
In member function ‘void pvxs::detail::sa_default_delete<E>::operator()(E*) const [with E = std::unique_ptr<unsigned int>]’,
    inlined from ‘std::__shared_count<_Lp>::__shared_count(_Ptr, _Deleter, _Alloc) [with _Ptr = std::unique_ptr<unsigned int>*; _Deleter = pvxs::detail::sa_default_delete<std::unique_ptr<unsigned int> >; _Alloc = std::allocator<void>; <template-parameter-2-4> = void; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’ at /usr/include/c++/12/bits/shared_ptr_base.h:958:11,
    inlined from ‘std::__shared_count<_Lp>::__shared_count(_Ptr, _Deleter) [with _Ptr = std::unique_ptr<unsigned int>*; _Deleter = pvxs::detail::sa_default_delete<std::unique_ptr<unsigned int> >; <template-parameter-2-3> = void; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’ at /usr/include/c++/12/bits/shared_ptr_base.h:939:57,
    inlined from ‘std::__shared_ptr<_Tp, _Lp>::__shared_ptr(_Yp*, _Deleter) [with _Yp = std::unique_ptr<unsigned int>; _Deleter = pvxs::detail::sa_default_delete<std::unique_ptr<unsigned int> >; <template-parameter-2-3> = void; _Tp = std::unique_ptr<unsigned int>; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’ at /usr/include/c++/12/bits/shared_ptr_base.h:1478:17,
    inlined from ‘std::shared_ptr<_Tp>::shared_ptr(_Yp*, _Deleter) [with _Yp = std::unique_ptr<unsigned int>; _Deleter = pvxs::detail::sa_default_delete<std::unique_ptr<unsigned int> >; <template-parameter-2-3> = void; _Tp = std::unique_ptr<unsigned int>]’ at /usr/include/c++/12/bits/shared_ptr.h:232:48,
    inlined from ‘pvxs::detail::sa_base<E>::sa_base(A*, size_t) [with A = std::unique_ptr<unsigned int>; E = std::unique_ptr<unsigned int>]’ at ../../src/pvxs/sharedArray.h:136:10,
    inlined from ‘pvxs::shared_array<E, Enable>::shared_array(size_t, V) [with V = std::nullptr_t; E = std::unique_ptr<unsigned int>; Enable = void]’ at ../../src/pvxs/sharedArray.h:288:39,
    inlined from ‘void {anonymous}::testComplex()’ at ../testshared.cpp:225:57:
../../src/pvxs/sharedArray.h:92:35: note: call to ‘void operator delete [](void*, std::size_t)’ here
   92 |     void operator()(E* e) const { delete[] e; }
      |                                   ^~~~~~~~~~
2023-07-17 09:30:37 -07:00
Michael Davidsaver a02b6e9730 ioc: improve long string detection
Partially replicate the '$' handling logic of dbChannelCreate()
in the case where no '$' was provided.
2023-06-18 10:07:16 -07:00
Michael Davidsaver f260fa2774 fix shared_array output limit off by one 2023-06-18 10:07:16 -07:00
Michael Davidsaver 2a83e49ae7 redo tree formatting 2023-06-18 10:07:16 -07:00
Michael Davidsaver 90dcfa138a fix spam test 2023-05-16 20:58:01 -07:00
Michael Davidsaver 997f0758e1 fix testqgroup 2023-05-12 13:05:11 -07:00
Michael Davidsaver 7aae179fae client: test discover() 2023-05-12 09:29:25 -07:00
Michael Davidsaver 2518420706 client: test reconnection and reExecGet() 2023-05-12 09:29:25 -07:00
Michael Davidsaver f25c3b41ec test name server 2023-05-12 09:29:25 -07:00
Michael Davidsaver 08bc533c09 test serversrc 2023-05-12 09:29:25 -07:00
Michael Davidsaver a36dd2a9cc fix monitor pipeline and finish() 2023-05-12 09:29:25 -07:00
Michael Davidsaver af3c870b7a Value::copyIn() add Array -> Array w/ implied alloc+convert 2023-05-11 10:50:08 -07:00
Michael Davidsaver 4029f5ac3c prevent simple Any self-assignment 2023-05-11 10:50:08 -07:00
Michael Davidsaver afafa09547 ioc: revise qsrv 2 prototype
ioc: check for mis-matched onStartSubscription()/onDisableSubscription()

ioc: fix subscription lifetime

ioc: catch exceptions in dbEvent callbacks

ioc: avoid unnecessary virtual

ioc: minor

ioc: fix qsrv -S

ioc: qsrvGroupSourceInit() catch+log

ioc: runOnServer avoid std::function

ioc: cleanup and simplifications.

Avoid some redundant std::map lookups.
Make Group partially const to prevent implicit ctor.

ioc: avoid typedefs only used once

ioc: overhaul Group::show().  shows triggers

ioc: MappingType

ioc: pvxsgl -> pvxgl

ioc: separate group config singleton from server singleton

ioc: remove unnecessary forward declarations

ioc: restructure pvxsInitHook

ioc: qsrv runtime disable by default

ioc: compat w/ older Base

ioc: link pvxsIoc w/ DB libs

ioc: Channel proper detection of invalid PV

ioc: no need to keep vector<dbCommon*> around

ioc: fix initial group update for mappings w/o dbChannel

ioc: redo testing

split out group tests, only run with Base >= 7.0

ioc: minor

ioc: loc_bad_alloc

ioc: avoid symbol/DTYP clash with pva2pva

ioc: test record alias in group json

ioc: test put failure when SPC_NOMOD and DISP=1

ioc: test channel filters

ioc: unnecessary capture

ioc: avoid sharing Value between multiple subscriptions

It is possible to create two subscriptions through the same channel.

ioc: group subscription include queueSize

ioc: eliminate unused atomicMonitor

ioc: consolidate GroupSource::get()

avoid some indirection

ioc: pvRequest override of atomicPutGet

ioc: fix group non-atomic put

ioc: test asTrap hooks

ioc: test putOrder also sets field order

ioc: simplify GroupConfigProcessor::loadConfigFiles()

Also ensure that groupMapMutex is held

ioc: testqgroup cover JSON def.

ioc: dbLoadGroup() use macros

ioc: pvxsl() take integer argument

ioc: display.form and info(Q:form

ioc: "NO_ALARM" -> ""

ioc: use dbServer

at least for informational callbacks.

ioc: consolidate createRequestAndSubscriptionHandlers()

ioc: eliminate ChannelAndLock

properties dbChannel doesn't need a separate DBManyLock

ioc: test that putOrder also controls field order

ioc: MappingType -> MappingInfo

Handle info(Q:time:tag
Add +type:"const"

ioc: cleanup includes

ioc: test dbNotifyCancel()

ioc: inline checkForTrailingCommentsAtEnd()
2023-05-09 22:24:05 -07:00
george-mcintyre 832c76d6e4 ioc: Add long long tests 2023-05-09 10:17:32 -07:00
george-mcintyre 26dbe50f83 ioc: Clear link field before doing group put test 2023-05-09 10:17:32 -07:00
george-mcintyre 019784bd3a ioc: Update group and single subscriptions to bind contexts to subscription not client connection 2023-05-09 10:17:32 -07:00
Michael Davidsaver d2dcad708c ioc: update testioc.cpp 2023-05-09 10:17:32 -07:00
George McIntyre 93e4d3eef3 ioc: qsrv 2 prototype 2023-05-09 10:17:32 -07:00
Michael Davidsaver 5897fe273e fix intermittent of testsock
Switch to blocking socket, with poll()ing for expected RX failures.
2023-04-14 10:14:30 -07:00
Michael Davidsaver 0fdfeb72d1 Add testudpfwd 2023-04-10 08:47:15 -07:00
Michael Davidsaver a012b9ffe0 testStrEq() better diff 2023-03-28 15:21:39 -07:00
Michael Davidsaver 303bc61079 apply loc_bad_alloc to owned_ptr
Distinguish location of owned_ptr failure
2023-03-28 15:21:39 -07:00
Michael Davidsaver abeb78a9cd fix TypeDef(const Value& val) for Union/UnionA/StructA 2023-03-20 09:41:41 -07:00
Michael Davidsaver 36e537e479 appease -Wnoexcept 2023-03-20 09:41:41 -07:00
Michael Davidsaver f4069ef596 expand testing of shared_array::convertTo 2023-02-13 07:42:54 -08:00
Michael Davidsaver e93909cf7e fix shared_array::convertTo() 2023-02-12 08:26:50 -08:00
Michael Davidsaver 274133bcfc ~fix magic union autoselect
Stop of after first successful conversion
2023-02-12 08:26:50 -08:00
Michael Davidsaver a613778471 expand test coverage 2023-02-12 08:26:50 -08:00
Michael Davidsaver 30b040465a fix Value::unmark() w/ parents=true 2023-02-12 08:26:50 -08:00
Michael Davidsaver 31e0fd8242 expand test coverage 2023-02-12 08:26:50 -08:00
Michael Davidsaver b9170a9885 fix Value::nmembers 2023-02-12 08:26:50 -08:00
Michael Davidsaver 78f54455e6 Value fix delta output format
Actually show delta
2023-01-31 09:54:10 -08:00
Michael Davidsaver a7ce56ac18 add shared_array::thaw() 2023-01-26 08:23:40 -08:00
Michael Davidsaver c7b4650ba1 fix TypeStore maintenance 2022-12-14 12:36:14 -08:00
Michael Davidsaver cc5d382930 client: monitor yield "complete" updates
Populate unchanged fields with most recently received value.
2022-11-27 08:20:13 -08:00
Michael Davidsaver 53f83b6429 Add Value::clear() 2022-11-27 08:20:13 -08:00
Michael Davidsaver bdcbf130d2 expand spam example/test
Add a fixed rate counter in addition to
variable rate/pipeline counters.
add eatspam client

Not really an reasonable example anymore
2022-11-27 08:20:13 -08:00
Michael Davidsaver a4c6540c97 Add TypeDef::as() overload to change Struct -> StructA 2022-11-25 08:03:32 -08:00
Michael Davidsaver 8333ce30ec re-define user bufferevent limits in terms of OS buffer size 2022-10-14 10:20:51 -07:00
Michael Davidsaver 06f1a8c2db fix Timer ownership 2022-10-14 10:20:51 -07:00
Michael Davidsaver 89c02b47db allow TypeDef to append StructA and UnionA 2022-10-11 09:15:58 -07:00
Michael Davidsaver 490f59ca55 update testtype 2022-09-26 16:01:35 -07:00