Commit Graph

286 Commits

Author SHA1 Message Date
Michael Davidsaver 7de7ea9459 test open() with no marked fields 2025-10-03 16:53:38 -07:00
Michael Davidsaver 27be80d677 server: clientConfig() avoid mixing TCP and UDP endpoints
interfaces has TCP endpoints, addressList has UDP endpoints.
Take beaconDestinations instead.
2025-10-03 16:53:38 -07:00
Mike Smith 4af3028930 OperationBase::chan is nullptr until Channel is created, check before getting name
have name() return the channel name from OperationBase, not OperationBase::chan::name
2025-10-01 13:08:24 -07:00
Michael Davidsaver 6f47d65735 test for name resolution during *::Config::expand() 2025-10-01 10:21:53 -07:00
Michael Davidsaver 7073538335 fix remote error handling during PUT with autoExec=false 2025-07-13 19:11:28 -07:00
Michael Davidsaver 01c11e16b1 add SockAddr::map6to4() 2025-06-11 15:32:47 -07:00
Michael Davidsaver bd50b9156f testqsingle check asTrapWriteMessage host 2025-06-11 15:32:47 -07:00
Michael Davidsaver a464e9a6eb redesign IfaceMap
Switch to periodic poll on dedicated worker thread
instead of opportunistic poll on use.
2025-06-11 15:32:47 -07:00
Michael Davidsaver 80c63888ed add sendtox
wrapper sendmsg() and WSASendMsg()

Linux and Windows support IPv4 IP_PKTINFO.
BSD, Linux, and Windows support IPV6_PKTINFO

So far RTEMS and OSX, the extra sendto() overrides
will be ignored.
2025-06-11 15:32:47 -07:00
Michael Davidsaver b0b8d60656 rename generated CONFIG_SITE to TOOLCHAIN
No longer generate CONFIG_SITE.Common.$(T_A),
which should never be generated...
2025-06-11 15:32:47 -07:00
Michael Davidsaver e32a752d12 pvalink: test AMSG 2025-04-06 11:21:51 +01:00
Michael Davidsaver 020ee6ebfe testsock: show runtime detected IP stack 2025-03-31 13:55:55 -07:00
Michael Davidsaver ebed4f1985 fix testudp 2025-03-31 13:55:55 -07:00
Joao Paulo Martins f42bc97699 Fixed pvaGetLink for Union types; Added tests 2025-03-31 11:05:42 -07:00
Michael Davidsaver 691a5825ae ioc: fix DBE_ARCHIVE handling w/ singlesource
Stop ignoring DBE_ARCHIVE.
2025-02-12 17:46:49 -08:00
Michael Davidsaver 87abad5387 test NTTable column order 2024-12-23 10:39:49 -08:00
Érico Nogueira 28817ae1a6 ioc: add test for dbLoadGroup command. 2024-12-11 15:55:42 -08:00
Michael Davidsaver 330097b7d4 cache_sync() copy Any/Union
Delta may be later be changed by user code,
so copy to ensure cache is not modified.

cf. 92fb0a4afa
2024-08-01 15:46:31 -07:00
Michael Davidsaver 1ca7600a2b Test value casts which are Undefined Behavior
Mark as TODO since UB is not consistent across all supported platforms.
2024-08-01 15:45:23 -07:00
Michael Davidsaver 7e6463c200 codespell 2023-11-21 12:20:34 -08:00
Michael Davidsaver eddc687021 ioc: combine registrars and detect QSRV1
also consolidates initHook and epicsAtExit() hooks
into a single sequence.
2023-11-20 10:59:44 -08:00
Michael Davidsaver 6d1216daad pvalink: porting part 3
add pvalink json schema
avoid JSON5 in testpvalink for portability.
fixup build with pvalink
trap bad_weak_ptr open during dtor
  Not sure why this is happening, but need not be CRIT.
c++11, cleanup, and notes
fix pvalink test sync
fix test cleanup on exit
pvalink disconnected link is always INVALID
pvalink logging
pvalink capture Disconnect time
pvalink eliminate providerName
  restrict local to dbChannelTest()
  aka. no qsrv groups
pvalink onTypeChange when attaching link to existing channel
pvalink eliminate unused Connecting state
pvalink add InstCounter
pvalink AfterPut can be const
pvalink add atomic jlif flag
include epicsStdio.h later
  avoid #define printf troubles
assert cleanup state on exit
pvalink add newer lset functions
test link disconnect
testpvalink redo testPutAsync()
pvalink fill out meta-data fetch
pvalink fix FLNK
pvalink cache putReq
pvalink test atomic monitor
pvalink test enum handling
pvalink handle scalar read of empty array
  make it well defined anyway...
pvalink test array of strings
handle db_add_event() failure
handle record._options.DBE
2023-11-20 10:59:44 -08:00
Simon Rose 5f48325890 pvalink: porting part 2
Fix pvaGetValue for string scalars
Remove pvaLink* variables
Move close() call to pvaGlobal_t from worker queue
Removed latch state
Update .gitignore to ignore VS code configuration
Add lset(pva) support for base 7.x
Remove pvalink support for base 3.x
Update cached value object in pvaLinkChannel::run
Removing queued state from pvaLikeChannel
Add debug functionality
Rename internal fields to match json spec
prepare for puts
Fix array response size
Add tests for pvalink properties
2023-11-20 10:59:44 -08:00
Michael Davidsaver 382dd29452 qsrv: avoid sending 0 precision w/ integer value 2023-11-20 10:59:44 -08:00
Michael Davidsaver 17464a117a disallow "null" size by default
pvDataCPP only explicitly checks for "null" size (-1)
for Union, where it indicates the implicit "null" arm.
Also string, where "null" is equivalent to zero length string.
2023-11-08 16:18:20 -08:00
Michael Davidsaver 90a1221904 testmon, more details on failure 2023-10-23 16:31:44 -07:00
Michael Davidsaver a9eea922b5 Relax when assigning struct[] or union[] of similar
Attempt copy with partial assignment.
2023-10-03 20:45:28 -07:00
Michael Davidsaver d8f7de8c8c client: GET yield complete 2023-09-25 18:50:26 -07:00
Michael Davidsaver 0b0dfde5c9 ioc: group put w/o effect is an error. 2023-09-19 18:31:29 -07:00
Michael Davidsaver c06d4bb69a ioc: actually require +putorder to PUT 2023-09-19 18:31:29 -07:00
Michael Davidsaver 9ccd7b50ab ioc: fix block=true to DBF_ENUM 2023-09-19 12:16:02 -07:00
Michael Davidsaver 59c7fde958 ioc: fix group put over-process
only dbProcess() mapped records after dbPut
or for Proc mapping
2023-09-16 15:25:43 +02:00
Michael Davidsaver d8ed97e713 ioc: add logging for group ops 2023-09-16 15:25:43 +02:00
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