If you're interested in static validation of db/dbd files, you might
have a look at my 'dbdlint' script. This can either validate individual
files for basic syntax (--partial), or a full database w/ recordtype
defs (--full).
This includes a handy (to me) feature to detect unintentional "external"
links (aka typos).
> $ cat test.db
> #: external("other.VAL")
>
> record(longin, "target") {
> field(INP, "other")
> }
>
> record(longin, "ok") {
> field(INP, "targt") # oops
> }
> $ ./dbdlint -F -Wall /path/to/base/dbd/softIoc.dbd test.db
> WARNING test.db:8 ext-link - DB/CA Link to outside PV 'targt.VAL'
https://github.com/epicsdeb/pypdb/blob/master/documentation/dbdlint.rst
https://github.com/epicsdeb/pypdb/blob/master/dbdlint.1.txt
https://github.com/epicsdeb/pypdb
On 09/19/2017 01:00 PM, Andrew Johnson wrote:
> Hi Michael,
>
> On 09/19/2017 04:34 AM, [email protected] wrote:
>
>> I have just discovered that the dbVerify function has been removed from
>> EPICS 3.16. I use the functionality provided by this function to
>> validate databases as they are statically constructed (in iocbuilder
>> and epicsdbbuilder). At present DLS is still using EPICS 3.14, so I am
>> only learning about this from external reports.
>
> I don't recognize a program named dbVerify; there was a tool called
> dbReadTest which came with 3.14 and matches the functionality you're
> describing. However it relied on the dbStaticHost library, the
> functionality for which was deleted in 3.15 (this was originally
> provided for use by dbExpand and various database design tools, and
> stored all field value data as strings).
>
>> Has this functionality been replaced by anything equivalent? The
>> ability to statically validate assignments to database fields is very
>> useful, it substantially increases my confidence that the generated
>> database will actually load!
>
> We don't provide a replacement for dbReadTest at the moment. The DBD
> file parsing functionality (used at build-time for converting .dbd files
> into .h files) was converted into Perl modules and scripts, but there
> wasn't an urgent need for parsing DB files so Perl scripts for that
> haven't been included (I have some, but IIRC they can't yet parse the
> new JSON field data that was added for Base-3.16.1).
>
> You should be able to use the 3.14 version of dbReadTest with 3.15.4
> IOCs but in 3.15.5 we changed the promptgroup values, so that doesn't
> work any more now.
>
> It may be possible to create another program like dbReadTest by
> bastardizing the softMain.c that is part of the softIoc, but it would
> have to dynamically create its own registerRecordDeviceDriver data from
> the IOC's DBD file (that data is normally compiled into the IOC), and
> that won't be trivial to do.
>
> Evidently I need to finish off my Perl DB parser, but I don't think that
> will make the upcoming EPICS-7 release.
>
> - Andrew
>
- Replies:
- RE: dbVerify removed from EPICS 3.16 michael.abbott
- References:
- dbVerify removed from EPICS 3.16 michael.abbott
- Re: dbVerify removed from EPICS 3.16 Andrew Johnson
- Navigate by Date:
- Prev:
Re: dbVerify removed from EPICS 3.16 Andrew Johnson
- Next:
RE: dbVerify removed from EPICS 3.16 michael.abbott
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
<2017>
2018
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
Re: dbVerify removed from EPICS 3.16 Andrew Johnson
- Next:
RE: dbVerify removed from EPICS 3.16 michael.abbott
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
<2017>
2018
2019
2020
2021
2022
2023
2024
|