Commit Graph
195 Commits
Author SHA1 Message Date
Michael Davidsaver da27db55c4 dbCaLinkTest: test dbr_size_n 2026-08-06 08:04:10 -07:00
Sang Woo Kim b03213ea7a seqRecord: fix upper display limit of the DLYn fields
get_graphic_double() assigns lower_disp_limit twice and never writes
upper_disp_limit, so a DBR_GR_DOUBLE read of any DLYn field reports
the inverted range lower=10, upper=0.  The second assignment was
evidently meant for the upper limit; the 0 in the upper slot is the
zeroed buffer dbAccess.c hands to the RSET, not a chosen value.

Both assignments date from commit 27e80be2e5 which introduced the
DLYn limits, so every release since 3.14.11 reports the inverted
range over both CA (DBR_GR/CTRL) and PVA (display.limitLow/High).

Extend seqTest with a DBR_GR_DOUBLE read of DLY0; the new cases
fail with lower=10, upper=0 before this fix.
2026-07-20 09:34:30 -05:00
Sang Woo Kim ef06b34ee4 selRecord: fix the precision reported for the A-L and LA-LL fields
get_precision() walks pvalue and plvalue over the A-L and LA-LL fields,
then compares paddr->pfield against &pvalue and &plvalue -- the
addresses of the two local pointer variables, not of the fields they
point at.  Those are stack addresses, so neither test has ever matched
and every A-L or LA-LL precision request falls through to
recGblGetPrec().  The line just above gets it right: prec->val is a
field and needs the &, whereas pvalue and plvalue are already pointers.

Both tests date from e87551df24, the commit that added the loop, and
have been dead ever since, so every release since R3.12 has this.  They
carried a (void *) cast until 6d85a36397 removed it, which is why the
compiler was never shown a double ** to complain about.  That the
fields were meant to be covered is not in doubt: this record's
get_graphic_double() and get_control_double() both name A-L and LA-LL.

This changes what those fields report.  recGblGetPrec() substitutes 15
for a DOUBLE precision outside 0 to 15, so today A-L and LA-LL answer
15 for a PREC of 17 while VAL answers 17.  They now answer PREC
unclamped, which is what VAL has always done.

Add selTest, reading the precision of VAL, A, L, LA, LL and HIHI from a
record with PREC=17.  The four A-L and LA-LL cases report 15 before
this fix; VAL and HIHI pin the two paths either side of them.
2026-07-19 17:21:01 -05:00
Edmund Blomley c9817fa591 Add AFTC flag for bi record and fix mbbi AFTC bug (#817)
* Add AFTC feature to bi record with tests.

* Fix broken AFTC handling for mbbi record, also fix bug in COSV and LALM handling.

* Add release notes and update record docs.
2026-04-01 11:53:39 -05:00
Michael Davidsaver 717d69e1fc dbCa: iocInit wait for local CA links to connect 2026-02-27 13:01:27 +00:00
zimoch db693d4930 enable trim_trailing_whitespace 2026-02-18 10:34:08 -06:00
zimoch 6d85a36397 remove needless pointer casts 2025-12-17 16:34:58 -08:00
zimoch 90a727c901 Fix spelling errors
Most errors found with:

codespell -L cach,thst,odly,aslo,parm,parms,inpu,ges,prset,pevent,ptd,pring,valu,noo,noe,ned,inout,ro,siz,froms,nd,fo,singl,sart,multy,tthe,allong,ment,inate,nodel,tring,alse,ture,thi,wille,numer

Some more manually found (its -> it's)

c++20: Do not use apostrophe (e.g. can't) in unquoted #error message
2025-12-01 19:00:04 -08:00
Michael Davidsaver 3f382f6b68 Revert "dbCa: iocInit wait for local CA links to connect"
This reverts commit a46bd5ae88.
2025-10-17 14:51:46 -07:00
Michael Davidsaver a46bd5ae88 dbCa: iocInit wait for local CA links to connect 2025-10-14 19:45:15 -07:00
Evan Daykin acd1aef2a0 Warn to stderr when discarding CPP modifier for outlink (#608)
* warn to stderr when un-setting inapplicable CPP flag on output links

* Warn and unset CP flag for output links

* use errlogprintf instead of fprintf for dbParseLink CP/CPP warning

* Pass source record name to dbParseLink for debug information when modifier is discarded

* make CP/CPP discard warning less verbose

* Include field name of affected record when warning of CP/CPP discard
2025-10-08 09:44:27 -05:00
Simon Rose 187801c2e6 Fix MSI tests when INSTALL_LOCATION is set 2025-08-27 09:40:24 -05:00
zimoch c3c492d2cd test IVOA in dfanout 2025-08-13 10:02:58 -05:00
zimoch bff913e4d1 test new dfanout outputs 2025-08-13 10:02:58 -05:00
zimoch 4c40b9f4bb make dfanoutTest processing synchronous 2025-08-13 10:02:58 -05:00
MarcoMontevechi ff1fb82ef2 Add dfanout test (#660)
Add dfanout record unit tests

Authored-by: marcofilho <marco.filho@ess.eu>
2025-07-30 10:12:58 -05:00
Simon Rose 43afae523e Remove dbltExpand test
This is an older manual test to compare dbLoadTemplate to compare to
msi's output. However, it does not link properly with dbCore due to
the rewriting of dbLoadRecords, so it is being removed.
2025-06-20 15:45:44 -05:00
Simon Rose b34465add6 Add support for EPICS_DB_INCLUDE_PATH
This allows dbLoadTemplate to search through either a custom-provided
list of paths, or through paths provided by the environment variable
EPICS_DB_INCLUDE_PATH.
2025-06-20 15:45:44 -05:00
Simon Rose 72936844ae Silence some error log messages during test runs 2025-05-16 11:39:34 -07:00
Andrew Johnson e13d65f6f5 Remove more uses of DEVSUPFUN that C23 doesn't like 2025-04-17 12:29:05 -05:00
Andrew Johnson eb1263795e Use new DSET and arg's 2025-04-17 11:55:30 -05:00
zimoch c75ad2673e no longer need extern "C" { } around epicsExport macros 2025-03-19 11:17:14 -05:00
Andrew Johnson 350570134e Changed dbServerStats() to count the server layers called 2025-03-19 11:03:46 -05:00
Andrew Johnson 72f3e75c8d Add summary stat's calculation 2025-03-19 11:03:46 -05:00
Andrew Johnson fd86f0ff04 Unit tests for dbServerStats() 2025-03-19 11:03:46 -05:00
Michael Davidsaver 9f788996dc db: lock record for db_create_read_log() and dbChannelGetField()
since 27fe3e4468 db_create_read_log()
accesses record fields.

remove now redundant db_create_read_log() calls.
2025-03-19 10:51:08 -05:00
zimoch ee1a49045a support CROSS_COMPILER_RUNTESTS_ARCHS other than RTEMS 2025-03-05 10:00:44 -06:00
zimoch 72026a27a0 allow to load the same alias multiple times (unless dbRecordsOnceOnly is set) 2024-12-29 16:35:25 -08:00
Simon Rose 9fb820b46e Add tests for relative include paths 2024-12-29 16:34:10 -08:00
615ba73044 Rules to generate and install Markdown
Markdown can be generated from .pod and .dbd.pod files.
Markdown will be generated and installed by "make inc".

Co-authored-by: Timo Korhonen <timo.korhonen@ess.eu>
Co-authored-by: Andrew Johnson <anj@anl.gov>
2024-10-02 09:16:29 -05:00
Michael Davidsaver 052a0c7e19 test get_enum_strs() 2024-08-21 10:01:26 -05:00
Hinko Kocevar f00de26be1 directory path name is free'd before it is used in testAbort() 2024-08-21 09:48:23 -05:00
Michael Davidsaver 2a5def7fc6 test removal of non-existant record 2024-08-21 09:48:23 -05:00
Hinko Kocevar c735de4ff8 fix number of tests to execute 2024-08-21 09:48:23 -05:00
Hinko Kocevar bb5423171d remove warning and error messages, fix duplicate flag setting 2024-08-21 09:48:23 -05:00
Hinko Kocevar 2f98251c9f add unit tests for record deletion 2024-08-21 09:48:23 -05:00
Andrew Johnson 1e8d49f2a6 Drop debugging diagnostics 2024-08-07 09:54:16 -05:00
Andrew Johnson 31b22fd253 Add test of jlinkz::putValue() to dbPutLinkTest
Add OUTP link field to xRecord
xRecord::process() puts VAL to the OUTP link
jlinkz writes the output value to the record's own PHAS field
Correct the dbFastPutConvertRoutine lookup
Test sets OUTP link, processes record and confirms that PHAS was set
2024-08-07 09:54:16 -05:00
Andrew Johnson 916b17ef3f Fix review comment 2024-08-07 09:54:16 -05:00
Andrew Johnson 437320926b Move declaration back 2024-08-07 09:54:16 -05:00
Andrew Johnson 7890e67d37 Various misc warnings 2024-08-07 09:54:16 -05:00
Andrew Johnson f287cfa2ac Introduce & use FASTCONVERTFUNC with full prototype 2024-08-07 09:54:16 -05:00
Simon Rose beec00b403 Fix issue with compress record
The handling of N-to-M array compression was broken with the addition
of the partial buffer option, which broke the bounds check that was
being used.

Note that this also makes the partial buffer option more consistent;
if, for example, you have
```
record(compress, foo) {
  field(ALG, "N to 1 Average")
  field(INP, "bar NPP")
  field(NSAM, 2)
  field(N, 2)
  field(PBUF, YES)
}
```
(with `bar` having, e.g. length 3), then this will now behave as
expected on both of the samples.
2024-05-29 09:15:35 -05:00
Michael Davidsaver 3d25756065 privatize evSubscrip 2023-09-21 08:18:49 -07:00
Karl Vestin 39b6fa26da Added unit test for binary output record type 2023-07-22 08:32:16 -07:00
Emilio Perez 500a57738b Validate target record name when creating an alias
This fixes issue #312 by printing an error when a field is specified
2023-07-22 08:29:09 -07:00
Jure Varlec e11f88017d ts filter: port to the new db_field_log 2023-04-18 09:51:07 -05:00
Jure Varlec bd1af9ac95 ts filter: fix unused variable warnings 2023-04-18 09:51:07 -05:00
Jure Varlec c042b08ab0 Extend timestamp filter, giving access to the record timestamp 2023-04-18 09:51:07 -05:00
Michael Davidsaver d3f93746a8 1<<31 upsets ubsan 2023-03-10 10:57:35 +00:00