[PATCH] Coverage : Use '.o' files for coverage analysis
Joel Sherrill
joel at rtems.org
Thu Oct 25 20:50:56 UTC 2018
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.
--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/20181025/6a67ae54/attachment-0002.html>
More information about the devel
mailing list