[PATCH] Coverage : Use '.o' files for coverage analysis
Vijay Kumar Banerjee
vijaykumar9597 at gmail.com
Thu Oct 25 20:54:34 UTC 2018
On Fri, 26 Oct 2018 at 02:21, Joel Sherrill <joel at rtems.org> wrote:
>
>
> On Thu, Oct 25, 2018 at 3:19 PM Vijay Kumar Banerjee <
> vijaykumar9597 at gmail.com> wrote:
>
>>
>>
>> On Fri, 26 Oct 2018 at 00:56, Joel Sherrill <joel at rtems.org> wrote:
>>
>>> Vijay,
>>>
>>> Did covoar just work after adjusting the files to be .o's? Or are there
>>> more changes?
>>>
>>> Covoar just worked after adjusting the files.
>>
>
> Awesome!
>
> Random thought. If you delete the executables which cause a core dump, can
> you generate a full report?
>
> Then can we push on that report to make sure everything we want to report
> on is covered.
>
> I think we have specific objects now, once they are excluded, we have the
rest of the report intact. I'll try it out.
> --joel
>
>
>> If not, I just need the current patch with a good log message.
>>>
>>> --joel
>>>
>>> On Thu, Oct 25, 2018 at 2:06 PM Vijay Kumar Banerjee <
>>> vijaykumar9597 at gmail.com> wrote:
>>>
>>>> Hi Chris!
>>>>
>>>> Do you find the patch alright? I was wondering if you were expecting
>>>> some changes or modifications. I can do it and submit within this week. :)
>>>>
>>>>
>>>> On Tue, 16 Oct 2018 at 09:06, Vijay Kumar Banerjee <
>>>> vijaykumar9597 at gmail.com> wrote:
>>>>
>>>>> mistakenly resent this. Sorry about it.
>>>>> I have made a separate patch for covoar,
>>>>> I intended to send that one. :)
>>>>>
>>>>> On Tue, Oct 16, 2018, 9:03 AM Vijay Kumar Banerjee <
>>>>> vijaykumar9597 at gmail.com> wrote:
>>>>>
>>>>>> Use the Object files in cpukit/ instead of the static library
>>>>>> for Coverage analysis
>>>>>> ---
>>>>>> tester/rt/coverage.py | 27 ++++--
>>>>>> tester/rtems/testing/coverage/symbol-sets.ini | 90
>>>>>> +++++++++----------
>>>>>> 2 files changed, 66 insertions(+), 51 deletions(-)
>>>>>>
>>>>>> diff --git a/tester/rt/coverage.py b/tester/rt/coverage.py
>>>>>> index c979332..55cb59a 100644
>>>>>> --- a/tester/rt/coverage.py
>>>>>> +++ b/tester/rt/coverage.py
>>>>>> @@ -244,13 +244,17 @@ class symbol_parser(object):
>>>>>> symbol_config_path,
>>>>>> symbol_select_path,
>>>>>> symbol_set,
>>>>>> - build_dir):
>>>>>> + build_dir,
>>>>>> + bsp_name,
>>>>>> + target):
>>>>>> self.symbol_select_file = symbol_select_path
>>>>>> self.symbol_file = symbol_config_path
>>>>>> self.build_dir = build_dir
>>>>>> self.symbol_sets = {}
>>>>>> self.symbol_set = symbol_set
>>>>>> self.ssets = []
>>>>>> + self.bsp_name = bsp_name
>>>>>> + self.target = target
>>>>>>
>>>>>> def parse(self):
>>>>>> config = configparser.ConfigParser()
>>>>>> @@ -264,9 +268,13 @@ class symbol_parser(object):
>>>>>> for sset in self.ssets:
>>>>>> lib = path.join(self.build_dir,
>>>>>> config.get('libraries', sset))
>>>>>> self.symbol_sets[sset] = lib.encode('utf-8')
>>>>>> + ss = self.symbol_sets[sset]
>>>>>> + ss = ss.replace('@BSP@', self.bsp_name)
>>>>>> + ss = ss.replace('@BUILD-TARGET@', self.target)
>>>>>> + self.symbol_sets[sset] = ss
>>>>>> return self.ssets
>>>>>> except:
>>>>>> - raise error.general('Symbol set parsing failed')
>>>>>> + raise error.general('Symbol set parsing failed for %s' %
>>>>>> sset)
>>>>>>
>>>>>> def write_ini(self, symbol_set):
>>>>>> config = configparser.ConfigParser()
>>>>>> @@ -275,11 +283,15 @@ class symbol_parser(object):
>>>>>> config.add_section('symbol-sets')
>>>>>> config.set('symbol-sets', 'sets', sset)
>>>>>> config.add_section(sset)
>>>>>> - config.set(sset, 'libraries', self.symbol_sets[sset])
>>>>>> + object_files = [o for o in
>>>>>> os.listdir(self.symbol_sets[sset]) if o[-1] == 'o']
>>>>>> + object_paths = []
>>>>>> + for o in object_files:
>>>>>> +
>>>>>> object_paths.append(path.join(self.symbol_sets[sset], o))
>>>>>> + config.set(sset, 'libraries', ','.join(object_paths))
>>>>>> with open(self.symbol_select_file, 'w') as conf:
>>>>>> - config.write(conf)
>>>>>> + config.write(conf)
>>>>>> except:
>>>>>> - raise error.general('symbol parser write failed')
>>>>>> + raise error.general('symbol parser write failed for %s'
>>>>>> % sset)
>>>>>>
>>>>>> class covoar(object):
>>>>>> '''
>>>>>> @@ -357,6 +369,7 @@ class coverage_run(object):
>>>>>> self.report_format = self.macros['cov_report_format']
>>>>>> self.symbol_set = symbol_set
>>>>>> self.target = self.macros['target']
>>>>>> + self.bsp_name = self.macros['bsp'].split('-')[0]
>>>>>>
>>>>>> def run(self):
>>>>>> try:
>>>>>> @@ -366,7 +379,9 @@ class coverage_run(object):
>>>>>> parser = symbol_parser(self.symbol_config_path,
>>>>>> self.symbol_select_path,
>>>>>> self.symbol_set,
>>>>>> - build_dir)
>>>>>> + build_dir,
>>>>>> + self.bsp_name,
>>>>>> + self.target)
>>>>>> symbol_sets = parser.parse()
>>>>>> for sset in symbol_sets:
>>>>>> parser.write_ini(sset)
>>>>>> diff --git a/tester/rtems/testing/coverage/symbol-sets.ini
>>>>>> b/tester/rtems/testing/coverage/symbol-sets.ini
>>>>>> index 2685ef4..8f85533 100644
>>>>>> --- a/tester/rtems/testing/coverage/symbol-sets.ini
>>>>>> +++ b/tester/rtems/testing/coverage/symbol-sets.ini
>>>>>> @@ -29,50 +29,50 @@
>>>>>> #
>>>>>>
>>>>>> [symbol-sets]
>>>>>> -sets =
>>>>>> score,rtems,sapi,libdl,posix,libirfs,libdosfs,libdevfs,libimfs,libcsupport,libbspcmdline,libcpuuse,libstackchk,libfsmount,libstringto,libdevnull,libdumpbuf,libblock
>>>>>> +sets =
>>>>>> score,rtems,sapi,libdl,posix,librfs,libdosfs,libdevfs,libimfs,libbspcmdline,libcpuuse,libstackchk,libfsmount,libstringto,libdevnull,libdumpbuf,libblock
>>>>>>
>>>>>> [libraries]
>>>>>> -score = @BUILD-TARGET@/c/@BSP@/cpukit/score/libscore.a
>>>>>> -rtems = @BUILD-TARGET@/c/@BSP@/cpukit/rtems/librtems.a
>>>>>> -sapi = @BUILD-TARGET@/c/@BSP@/cpukit/sapi/libsapi.a
>>>>>> -libdl = @BUILD-TARGET@/c/@BSP@/cpukit/libdl/libdl.a
>>>>>> -posix = @BUILD-TARGET@/c/@BSP@/cpukit/posix/libposix.a
>>>>>> -libirfs = @BUILD-TARGET@/c/@BSP@/cpukit/libfs/librfs.a
>>>>>> -libdosfs = @BUILD-TARGET@/c/@BSP@/cpukit/libfs/libdosfs.a
>>>>>> -libdevfs = @BUILD-TARGET@/c/@BSP@/cpukit/libfs/libdevfs.a
>>>>>> -libimfs = @BUILD-TARGET@/c/@BSP@/cpukit/libfs/libimfs.a
>>>>>> -#libdefaultsfs = @BUiLD-TARGET@/c/@BSP@/cpukit/libfs/libdefaultfs.a
>>>>>> -#libjffs2 = @BUILD-TARGET@/c/@BSP@/cpukit/libfs/libjffs2.a
>>>>>> -#dtc = @BUILD-TARGET@/c/@BSP@/cpukit/libfdt/libfdt.a
>>>>>> -#libdrvmgr = @BUILD-TARGET@/c/@BSP@/cpukit/libdrvmgr/libdrvmgr.a
>>>>>> -#libi2c = @BUILD-TARGET@/c/@BSP@/cpukit/libi2c/libi2c.a
>>>>>> -libcsupport = @BUILD-TARGET@/c/@BSP@
>>>>>> /cpukit/libcsupport/libcsupport.a
>>>>>> -libbspcmdline = @BUILD-TARGET@/c/@BSP@
>>>>>> /cpukit/libmisc/libbspcmdline.a
>>>>>> -libcpuuse = @BUILD-TARGET@/c/@BSP@/cpukit/libmisc/libcpuuse.a
>>>>>> -libstackchk = @BUILD-TARGET@/c/@BSP@/cpukit/libmisc/libstackchk.a
>>>>>> -libfsmount = @BUILD-TARGET@/c/@BSP@/cpukit/libmisc/libfsmount.a
>>>>>> -libstringto = @BUILD-TARGET@/c/@BSP@/cpukit/libmisc/libstringto.a
>>>>>> -libdevnull = @BUILD-TARGET@/c/@BSP@/cpukit/libmisc/libdevnull.a
>>>>>> -libdumpbuf = @BUILD-TARGET@/c/@BSP@/cpukit/libmisc/libdumpbuf.a
>>>>>> -#libcapture = @BUILD-TARGET@/c/@BSP@/cpukit/libmisc/libcapture.a
>>>>>> -#libdummy = @BUILD-TARGET@/c/@BSP@/cpukit/libmisc/libdummy.a
>>>>>> -#libmonitor = @BUILD-TARGET@/c/@BSP@/cpukit/libmisc/libmonitor.a
>>>>>> -#libmouse = @BUILD-TARGET@/c/@BSP@/cpukit/libmisc/libmouse.a
>>>>>> -#libmw-fb = @BUILD-TARGET@/c/@BSP@/cpukit/libmisc/libmw-fb.a
>>>>>> -#libredirector = @BUILD-TARGET@/c/@BSP@
>>>>>> /cpukit/libmisc/libredirector.a
>>>>>> -#librtemsfdt = @BUILD-TARGET@/c/@BSP@/cpukit/libmisc/librtemsfdt.a
>>>>>> -#libserdbg = @BUILD-TARGET@/c/@BSP@/cpukit/libmisc/libserdbg.a
>>>>>> -#libshell = @BUILD-TARGET@/c/@BSP@/cpukit/libmisc/libshell.a
>>>>>> -#libtestsupport= @BUILD-TARGET@/c/@BSP@
>>>>>> /cpukit/libmisc/libtestsupport.a
>>>>>> -#libuntar = @BUILD-TARGET@/c/@BSP@/cpukit/libmisc/libuntar.a
>>>>>> -#libutf8proc = @BUILD-TARGET@/c/@BSP@/cpukit/libmisc/libutf8proc.a
>>>>>> -#libuuid = @BUILD-TARGET@/c/@BSP@/cpukit/libmisc/libuuid.a
>>>>>> -#libxz = @BUILD-TARGET@/c/@BSP@/cpukit/libmisc/libxz.a
>>>>>> -libblock = @BUILD-TARGET@/c/@BSP@/cpukit/libblock/libblock.a
>>>>>> -#libpci = @BUILD-TARGET@/c/@BSP@/cpukit/libpci/libpci.a
>>>>>> -#librpc = @BUILD-TARGET@/c/@BSP@/cpukit/librpc/librpc.a
>>>>>> -#libxdr = @BUILD-TARGET@/c/@BSP@/cpukit/librpc/libxdr.a
>>>>>> -#libcrypt = @BUILD-TARGET@/c/@BSP@/cpukit/libcrypt/libcrypt.a
>>>>>> -#libmd = @BUILD-TARGET@/c/@BSP@/cpukit/libmd/libmd.a
>>>>>> -#libstdthreads = @BUILD-TARGET@/c/@BSP@
>>>>>> /cpukit/libstdthreads/libstdthreads.a
>>>>>> -#zlib = @BUILD-TARGET@/c/@BSP@/cpukit/zlib/libz.a
>>>>>> +score = @BUILD-TARGET@/c/@BSP@/cpukit/score/src
>>>>>> +rtems = @BUILD-TARGET@/c/@BSP@/cpukit/rtems/src
>>>>>> +sapi = @BUILD-TARGET@/c/@BSP@/cpukit/sapi/src
>>>>>> +libdl = @BUILD-TARGET@/c/@BSP@/cpukit/libdl
>>>>>> +posix = @BUILD-TARGET@/c/@BSP@/cpukit/posix/src
>>>>>> +librfs = @BUILD-TARGET@/c/@BSP@/cpukit/libfs/src/rfs
>>>>>> +libdosfs = @BUILD-TARGET@/c/@BSP@/cpukit/libfs/src/dosfs
>>>>>> +libdevfs = @BUILD-TARGET@/c/@BSP@/cpukit/libfs/src/devfs
>>>>>> +libimfs = @BUILD-TARGET@/c/@BSP@/cpukit/libfs/src/imfs
>>>>>> +#libdefaultsfs = @BUiLD-TARGET@/c/@BSP@/cpukit/libfs
>>>>>> +#libjffs2 = @BUILD-TARGET@/c/@BSP@/cpukit/libfs
>>>>>> +#dtc = @BUILD-TARGET@/c/@BSP@/cpukit/libfdt
>>>>>> +#libdrvmgr = @BUILD-TARGET@/c/@BSP@/cpukit/libdrvmgr
>>>>>> +#libi2c = @BUILD-TARGET@/c/@BSP@/cpukit/libi2c
>>>>>> +#libcsupport = @BUILD-TARGET@/c/@BSP@/cpukit/libcsupport/src
>>>>>> +libbspcmdline = @BUILD-TARGET@/c/@BSP@/cpukit/libmisc/bspcmdline
>>>>>> +libcpuuse = @BUILD-TARGET@/c/@BSP@/cpukit/libmisc/cpuuse
>>>>>> +libstackchk = @BUILD-TARGET@/c/@BSP@/cpukit/libmisc/stackchk
>>>>>> +libfsmount = @BUILD-TARGET@/c/@BSP@/cpukit/libmisc/fsmount
>>>>>> +libstringto = @BUILD-TARGET@/c/@BSP@/cpukit/libmisc/stringto
>>>>>> +libdevnull = @BUILD-TARGET@/c/@BSP@/cpukit/libmisc/devnull
>>>>>> +libdumpbuf = @BUILD-TARGET@/c/@BSP@/cpukit/libmisc/dumpbuf
>>>>>> +#libcapture = @BUILD-TARGET@/c/@BSP@/cpukit/libmisc
>>>>>> +#libdummy = @BUILD-TARGET@/c/@BSP@/cpukit/libmisc
>>>>>> +#libmonitor = @BUILD-TARGET@/c/@BSP@/cpukit/libmisc
>>>>>> +#libmouse = @BUILD-TARGET@/c/@BSP@/cpukit/libmisc
>>>>>> +#libmw-fb = @BUILD-TARGET@/c/@BSP@/cpukit/libmisc
>>>>>> +#libredirector = @BUILD-TARGET@/c/@BSP@/cpukit/libmisc
>>>>>> +#librtemsfdt = @BUILD-TARGET@/c/@BSP@/cpukit/libmisc
>>>>>> +#libserdbg = @BUILD-TARGET@/c/@BSP@/cpukit/libmisc
>>>>>> +#libshell = @BUILD-TARGET@/c/@BSP@/cpukit/libmisc
>>>>>> +#libtestsupport= @BUILD-TARGET@/c/@BSP@/cpukit/libmisc
>>>>>> +#libuntar = @BUILD-TARGET@/c/@BSP@/cpukit/libmisc
>>>>>> +#libutf8proc = @BUILD-TARGET@/c/@BSP@/cpukit/libmisc
>>>>>> +#libuuid = @BUILD-TARGET@/c/@BSP@/cpukit/libmisc
>>>>>> +#libxz = @BUILD-TARGET@/c/@BSP@/cpukit/libmisc
>>>>>> +libblock = @BUILD-TARGET@/c/@BSP@/cpukit/libblock/src
>>>>>> +#libpci = @BUILD-TARGET@/c/@BSP@/cpukit/libpci
>>>>>> +#librpc = @BUILD-TARGET@/c/@BSP@/cpukit/librpc
>>>>>> +#libxdr = @BUILD-TARGET@/c/@BSP@/cpukit/librpc
>>>>>> +#libcrypt = @BUILD-TARGET@/c/@BSP@/cpukit/libcrypt
>>>>>> +#libmd = @BUILD-TARGET@/c/@BSP@/cpukit/libmd
>>>>>> +#libstdthreads = @BUILD-TARGET@/c/@BSP@/cpukit/libstdthreads
>>>>>> +#zlib = @BUILD-TARGET@/c/@BSP@/cpukit/zlib
>>>>>> --
>>>>>> 2.17.0
>>>>>>
>>>>>> _______________________________________________
>>>> devel mailing list
>>>> devel at rtems.org
>>>> http://lists.rtems.org/mailman/listinfo/devel
>>>
>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20181026/51f19767/attachment-0002.html>
More information about the devel
mailing list