Michael Davidsaver
4972803ce2
scanEventTest: use testSyncCallback()
2018-05-14 10:49:49 -07:00
Michael Davidsaver
3b7e348a8c
dbUnitTest.h add callback sync. and global mutex
...
Add testSyncCallback() to wait for in queued and
in-progress callbacks to complete.
Also add testGlobalLock() to help tests avoid
use after free when destroying sync. primitives.
2018-05-14 10:49:49 -07:00
Michael Davidsaver
00a974ce52
callback.h: add epicsCallback alternative to CALLBACK
...
Add epicsCallback as an IDE friendly alternative to CALLBACK.
IDEs like qtcreator have long been confused by the use
of CALLBACK, a name which has long been used by other libraries,
which prevents code using it from being parsed correctly.
2018-05-14 10:49:49 -07:00
Michael Davidsaver
490c504736
scanEventTest: use dbUnitTest.h for IOC lifecycle
2018-05-14 10:49:49 -07:00
Michael Davidsaver
734d16291f
rsrv: buffer for IP too small
...
An IPv4 address and port number
has 21 characters max.
2018-02-01 09:42:51 -08:00
Michael Davidsaver
e794639e31
ioc/db: avoid possible race in db_close_events()
...
lp:1730982
2017-11-08 14:42:08 -06:00
Michael Davidsaver
2af98c33c9
std/rec: aSub handle INAM changing outputs
...
Allow EFLG="On Change" to work with INAM.
2017-11-08 14:29:30 -06:00
Michael Davidsaver
111cac8e47
merge 3.14
2017-08-01 17:14:34 +02:00
Michael Davidsaver
5c8e5c52ef
rsrv: fix recv() error handling on WIN32
...
For WIN32 osiSockIoctl_t is unsigned, so
> osiSockIoctl_t nchars = recv(...
is casting signed -> unsigned which treats
errors as success.
2017-08-01 17:02:41 +02:00
Michael Davidsaver
546df1c1f0
rsrv: export CASDEBUG to iocsh
2017-08-01 17:02:41 +02:00
Michael Davidsaver
603331e7a5
rsrv: flush any queued messages before forced disconnect
...
Avoid loss of various ERROR messages which camessage()
has queued.
2017-08-01 16:44:48 +02:00
Michael Davidsaver
4b272cc0cf
rsrv: locking in cas_send_bs_msg()
...
Must lock around "pclient->send.stk = 0u;"
2017-08-01 16:44:48 +02:00
Michael Davidsaver
619a99bf99
rsrv: missing send lock around send_err()
2017-08-01 16:44:48 +02:00
Michael Davidsaver
1f8cb740f1
rsrv: drop un-commited VERSION message
...
This is a no-op as cas_commit_msg() isn't called.
A VERSION message is already queued during create_tcp_client().
2017-08-01 16:44:29 +02:00
Michael Davidsaver
322f7a97de
rsrv: add some comments
2017-08-01 16:44:29 +02:00
Michael Davidsaver
0fc770166c
rsrv: avoid possible overflow in vsend_err()
...
Accounting of message size doesn't take into account
space used by header of failed message (16 or 24 bytes).
This would allow a theoretical really long error message
to overflow the send buffer by 16 or 24 bytes.
2017-08-01 16:44:08 +02:00
Michael Davidsaver
a7c14ec995
Merge remote-tracking branch 'launchpad/3.14'
...
* launchpad/3.14:
ioc/rsrv: bounds check DBR
2017-05-03 16:53:43 -04:00
Michael Davidsaver
e430d097b7
ioc/rsrv: bounds check DBR
...
avoid array overrun when evaluating dbr_size_n() macro.
2017-05-03 16:49:28 -04:00
Michael Davidsaver
875e4db3f9
Merge remote-tracking branch 'launchpad/3.14'
...
* launchpad/3.14:
missing include
Conflicts:
src/ioc/dbStatic/dbStaticLib.c
2017-05-02 18:38:40 -04:00
Michael Davidsaver
8c8604c503
Merge remote-tracking branch 'launchpad/3.14'
...
* launchpad/3.14:
ioc/dbStatic: dbFreeBase() don't double free alias'd records
ioc/dbStatic: plug leak in dbFreeBase()
ioc/dbStatic: whitespace
Fix indentation warning from GCC
libCom/test: errlog test more verbose
libCom: STATIC_ASSERT use c++11 static_assert when possible
Check for empty PV names in Perl catools
Conflicts:
src/ioc/dbStatic/dbStaticLib.c
src/libCom/osi/epicsAssert.h
2017-05-02 18:31:40 -04:00
Michael Davidsaver
9d7c4434ad
rename iocshFind -> iocshFindCommand
2017-05-02 18:23:52 -04:00
Michael Davidsaver
38be82a154
missing include
2017-05-02 18:22:57 -04:00
Michael Davidsaver
27cd9fd051
ioc/dbStatic: dbFreeBase() don't double free alias'd records
...
dbFreeBase() has been broken since alias() was introduced.
Traversal of recList in the function assumed that dbDeleteRecord()
remove only the current dbRecordNode. However, dbDeleteRecord()
called dbDeleteAliases() which removes alias dbRecordNode s.
If this happens (as it often does) to be the node immediately
after the real node, dbFreeBase() will then iterate using
a ellDelete()d node.
2017-05-02 18:04:06 -04:00
Michael Davidsaver
1ffce72a38
ioc/dbStatic: plug leak in dbFreeBase()
2017-05-02 18:02:05 -04:00
Michael Davidsaver
dcac64d50f
ioc/dbStatic: whitespace
2017-05-02 18:01:39 -04:00
Michael Davidsaver
57cbe61709
libCom/test: errlog test more verbose
2017-04-27 16:53:40 -04:00
Michael Davidsaver
a2ab17a782
libCom: STATIC_ASSERT use c++11 static_assert when possible
2017-04-27 16:52:33 -04:00
Michael Davidsaver
c6910decfc
oops
2017-04-27 14:19:15 -04:00
Michael Davidsaver
b01dd38526
std/filter/test: use dbUnitTest
2017-04-27 14:09:41 -04:00
Michael Davidsaver
82ff67a204
travis-ci enable mingw w/ dll
2017-04-27 12:57:01 -04:00
Michael Davidsaver
e751480b06
Merge remote-tracking branch 'launchpad/3.14'
...
* launchpad/3.14:
travisci
catools: Fix SEGFAULT from bad PV names
typo
2017-04-27 12:55:35 -04:00
Michael Davidsaver
3184371e8d
travisci
2017-04-27 12:53:35 -04:00
Michael Davidsaver
22b10adf29
ioc/db: testdbGetFieldEqual() detect zero size
2017-04-21 16:14:43 -04:00
Michael Davidsaver
8382367495
libCom/test: epicsCalcTest use exact postifx buffers
...
exposes INFIX_TO_POSTFIX_SIZE() bug
2017-04-21 16:13:18 -04:00
Michael Davidsaver
f3841c4767
avoid void* +=
2017-04-17 18:58:19 -04:00
Michael Davidsaver
0c02c5cb30
update notes
2017-04-15 19:38:56 -04:00
Michael Davidsaver
1f90e98491
libCom/test: ipAddrToAsciiTest skip cleanup unless valgrind is possible
2017-04-15 19:34:04 -04:00
Michael Davidsaver
352fd32c45
libCom/test: add ipAddrToAsciiTest to testHarness
2017-04-12 20:30:23 -04:00
Michael Davidsaver
b624222a0f
db/test: dbPutGetTest check dbGet() of long string field
2017-04-06 20:28:04 -04:00
Michael Davidsaver
739a112bec
db: dbGet() ensure long string nil and actual string length
2017-04-06 20:28:01 -04:00
Michael Davidsaver
5e082bb75d
db/test: dbPutGetTest check for dbGet() attribute crash
2017-04-06 20:27:37 -04:00
Michael Davidsaver
8ebfd0821a
db: fix dbGet() for attributes as long string
...
dbGet() of "rec.RTYP$" with DBF_CHAR and nRequest==1
not handled correctly. Results in crash.
2017-04-06 20:27:34 -04:00
Michael Davidsaver
fc8d4c2b5f
db/test: dbPutGetTest add test for lp:1678494
2017-04-06 20:27:18 -04:00
Michael Davidsaver
1888253093
db: fix dbGet() of link fields as DBF_CHAR
...
dbGet() DBF_CHAR with nRequest==1 not handled correctly.
Results in crash.
2017-04-06 20:27:13 -04:00
Michael Davidsaver
8edefb9d63
dbUnitTest: add testdbGetArrFieldEqual()
2017-04-06 20:27:03 -04:00
Michael Davidsaver
0f31e35b87
db/test: add dbPutGetTest
2017-04-06 20:25:55 -04:00
Michael Davidsaver
2a0cd00958
libca: lock when removing from msgMultiPVList
2017-02-27 14:48:30 -05:00
Michael Davidsaver
d744b06a28
libca: findOrCreateVirtCircuit() can return w/ piiu==NULL
2017-02-27 11:07:17 -05:00
Michael Davidsaver
048b75304d
libCom/test: add ipAddrToAsciiTest
2017-02-25 19:08:46 -05:00
Michael Davidsaver
5783823e25
libCom: revise ipAddrToAscii
...
create multiple light-weight engines to
track transactions by engine and cancel
all transactions when an engine is released.
prior to fix for lp:1527636 this was ensured
for the last/only owner for the engine singleton.
2017-02-23 20:08:46 -05:00
Michael Davidsaver
4223b31f9a
bswap16/32 as functions
...
Turn bswap16() and bswap32() into functions
to avoid evaluating the argument more than once.
2016-07-08 16:20:35 -04:00
Michael Davidsaver
0f6c997288
osdNetIntf: ignore 0.0.0.0 as a broadcast address
...
It seems in some situations Linux (at least)
sets IFF_BROADCAST bug leaves the bcast address
set to 0.0.0.0.
Fixes lp:1581505
2016-05-13 09:31:26 -04:00
Michael Davidsaver
704c748fbd
Revert "libCom/osi: osiSockDiscoverBroadcastAddresses() finds 127.255.255.255"
...
This reverts commit e805abe971 .
2016-05-13 09:14:20 -04:00
Michael Davidsaver
26c04844cf
add test for lp:1577108
2016-05-01 13:30:45 -04:00
Michael Davidsaver
a3d981ad0a
dbLink.c: fix dbGetLink for array of length 1
2016-05-01 13:30:45 -04:00
Michael Davidsaver
2226f3acb9
libCom/test: don't include epicsTimeZoneTest for vxWorks
2016-04-27 12:45:18 -04:00
Michael Davidsaver and Ralph Lange
55895e6d66
ellSort: comments and redundant asserts
2016-04-27 07:58:39 -04:00
Michael Davidsaver and Ralph Lange
77d6609bbd
fixup comments
2016-04-26 20:19:19 -04:00
Michael Davidsaver
51dd371784
rsrv: add rsrvCS_shutdown to avoid race in destroyAllChannels()
...
A race can occur between rsrv and cac by way of asLib
whereby casAccessRightsCB() is called after
a channel_in_use has been removed from
chanList/chanPendingUpdateARList.
casAccessRightsCB() would then attempt to remove
the node again, causing corruption.
Create a new rsrvCS_shutdown state when the
channel is not in either list.
Attempt to resolve lp:1571224
2016-04-26 17:06:22 -04:00
Michael Davidsaver and Ralph Lange
b035bd9963
test ellSortStable
2016-04-26 13:57:22 -04:00
Michael Davidsaver and Ralph Lange
70fc52bca0
dbCreateRecord use ellSortStable()
...
sort records once per dbLoadCOM()
2016-04-26 13:57:22 -04:00
Michael Davidsaver and Ralph Lange
56d5a59356
dbScan: optimize addToList
...
Insert from back to maintain ~same order.
Avoid iterating entire list each time
in the common case where all PHAS==0
2016-04-26 13:56:57 -04:00
Michael Davidsaver and Ralph Lange
b392c1ca7d
whitespace
2016-04-26 13:56:57 -04:00
Michael Davidsaver
93597e20d5
add epicsTimeZoneTest to libCom test harness
2016-04-26 09:59:22 -04:00
Michael Davidsaver
f0453faf36
libCom/test: add test for HST time zone
...
Test US/Hawaii zone which does not observe daylight saving time.
2016-04-26 09:28:09 -04:00
Michael Davidsaver
106fae3b26
dbStatic: prevent overflow in dbPutString()
...
The bounds check should be before the string
copy. Also zero the last element out of
paranoia (should already be zero).
Fix lp:1563191
2016-03-29 17:36:39 +09:00
Michael Davidsaver
7a1766279c
dbLock: dbLockerAlloc() accept const array of non-const pointers
2016-03-24 13:42:49 -04:00
Michael Davidsaver
45db78981c
iocInit: no need to break DB_LINK when isolated
...
This is being done to free the link private struct,
but dbDbRemoveLink() is not used to avoid the overhead
of splitting every lockset just before the PDB
is free'd.
No reason to do this for non-isolated until scans threads
are stopped.
2016-03-20 09:43:40 -04:00
Michael Davidsaver
7d94d05bb7
iocInit: special clear link set in doCloseLinks()
2016-03-19 17:15:08 -04:00
Michael Davidsaver
6b9bfb09a5
pWaitRelease in wrong place
...
waitRelease==false indicates that pThread
has not be delete'd
2016-03-16 17:43:52 -04:00
Michael Davidsaver
4e312b9f64
libCom: exitWait() from thread exit handler corrupts stack
...
The epicsThreadCallEntryPoint() function stores a pointer
to a local variable in epicsThread::pWaitReleaseFlag.
Calling epicsAtThreadExit::exitWait() from that thread's
epicsAtThreadExit() handler writes to this pointer
after epicsThreadCallEntryPoint() has returned.
Thus corrupting the stack.
Set pWaitReleaseFlag=NULL before return to prevent this.
fixes lp:1558206
2016-03-16 14:40:37 -04:00
Michael Davidsaver
19680d7869
libCom/test: fixup epicsAtomicTest
...
Add testBasic to check basic op symantics.
Add anon namespace to hide symbols other than MAIN(epicsAtomicTest).
Replace using namespace with using for individual functions.
For RTEMS skip the tests using threads as the use of
RTEMS_NO_TIMESLICE prevents them from being meaningful
2016-03-01 10:57:26 -05:00
Michael Davidsaver
4a0ef34771
edit RELEASE_NOTES.html
2016-02-29 21:08:25 -05:00
Michael Davidsaver
5d42e60745
rec/test: asTest fixup rtems test harness
...
Since this test has device support it must appear in a
DLL for windows dynamic builds.
However, the rRDD function is in the executable,
and not accessible here. So use iocsh.
For rtems/vxworks the test harness clears
iocsh registrations, so iocsh can't work here.
2016-02-29 20:43:40 -05:00
Michael Davidsaver
e01d4b14d6
rec/test: add missing TESTFILES
2016-02-29 20:37:25 -05:00
Michael Davidsaver
2c48bcc26b
dbChannelShow reporting detail level changed
2016-02-26 16:07:47 -05:00
Michael Davidsaver
bfa8e324f7
remove dbChArrTest from testHarness
...
dbChArrTest calls iocInit() and so can't
be in the shared test harness
2016-02-25 21:10:42 -05:00
Michael Davidsaver
51a69862e7
ioc/db: single return for dbGet()
...
Single return path after call to prset->get_array_info
to ensure that paddr->pfield is restored.
2016-02-25 20:59:10 -05:00
Michael Davidsaver
4b8c11aeef
memset transposed arguments
2016-02-25 20:08:44 -05:00
Michael Davidsaver
7b3a040b34
rsrv: use SOCKERRNO
...
Must use OSI SOCKERRNO for correct handling
of errors w/ winsock
2016-02-25 11:32:56 -05:00
Michael Davidsaver
88b47c021c
cygwin inherits winsock broadcast behavior
2016-02-25 11:10:28 -05:00
Michael Davidsaver
d0a316f7ca
win32: include ws2tcpip.h from osdSock.h
...
Needed to get some additional definitions
including IP_ADD_MEMBERSHIP
2016-02-25 11:02:09 -05:00
Michael Davidsaver
ffb23a3480
pcas: don't send beacons w/ connect()d socket
...
use sendto() and leave the origin field to 0.0.0.0
so it will be filled in by the receiving repeater
2016-02-16 16:28:04 -05:00
Michael Davidsaver
2be59e985d
Avoid race in linkRetarget
...
Add dbCaSync() to avoid a race between a call to dbCaGetField()
and the link becoming connected.
2016-02-16 15:07:40 -05:00
Michael Davidsaver
b4fd19e7db
libCom/test: remove test_debug from epicsStackTraceTest
...
No one will look at this output unless the test fails,
then more output is better.
2016-02-15 17:09:44 -05:00
Michael Davidsaver
45a741ac6f
libCom/RTEMS: ensure lookup of localhost on RTEMS
...
create /etc/hosts if it doesn't already exist
2016-02-15 12:29:06 -05:00
Michael Davidsaver
48da96cce5
libCom/test: epicsMMIOTest missing test spec
2016-02-15 12:29:06 -05:00
Michael Davidsaver
18d863b918
db/test: missing/wrong .db file names
2016-02-15 12:06:10 -05:00
Michael Davidsaver
95a1998e0b
update release notes
2016-02-04 19:09:44 -05:00
Michael Davidsaver
5769db3862
rsrv: "casr 1" shows ignore list
2016-02-04 18:57:02 -05:00
Michael Davidsaver
00a74fbb4e
libCom: fix debug print formats in osiSockDiscoverBroadcastAddresses()
2016-02-04 18:45:18 -05:00
Michael Davidsaver
03fde89dd4
rsrv: EPICS_CAS_IGNORE_ADDR_LIST
2016-02-04 18:44:33 -05:00
Michael Davidsaver
8421b46398
update release notes
2016-02-04 17:59:08 -05:00
Michael Davidsaver
650aaea203
ca: update CAref.html with changes to beacon address list
...
Note that server beacon address list will no longer
consider client address list as a fallback.
2016-02-04 17:56:31 -05:00
Michael Davidsaver
fcfe7ed312
pcas: no fallbacks for beacon address list
...
Don't mix client and server configuration
by defaulting the server beacon list to use
the client address list.
2016-02-04 17:39:28 -05:00
Michael Davidsaver
167dea3735
rsrv: decouple some client/server config
...
the automatic beacon address list should follow
the server interface address list, and not be
effected by any client config.
Also, don't populate the interface address list
from EPICS_CAS_BEACON_ADDR_LIST as this will
almost never contain local interface addresses.
2016-01-29 08:33:41 -05:00
Michael Davidsaver
235e4bd835
rsrv: more beacon address fixups
...
should really be based on *server* config
as beacons should be sent to clients attempting
to connect to the server.
By default send beacons to bcast addresses
from the interface address list.
2016-01-23 16:15:17 -05:00
Michael Davidsaver
601d6d9fe8
rsrv: oops
...
improper rebase
2016-01-23 13:53:44 -05:00
Michael Davidsaver
b961b25151
rsrv: fix wildcard check ordering
...
filter out mcast addresses before wildcard uniqueness check.
2016-01-23 13:53:44 -05:00
Michael Davidsaver
eb9246e4c9
rsrv: beaconCounter not updated
2016-01-21 17:14:23 -05:00