[lldb-dev] Code coverage of llvm, clang, lldb & polly

Sylvestre Ledru sylvestre at debian.org
Mon May 27 01:02:07 PDT 2013


Hello,

As Tobias said, it works with shared libraries. If the plugins does not
show, it might be related to the fact that some lldb tests are failing.
They might be my fault. I have to dig.


python
/tmp/buildd/llvm-toolchain-snapshot-3.4~svn182719/tools/lldb/test/dosep.ty
-o "--executable
/tmp/buildd/llvm-toolchain-snapshot-3.4~svn182719/build-llvm/Release/bin/lldb
-q -s lldb-test-traces -u CXXFLAGS -u CFLAGS -C x86_64-linux-gnu-gcc"
Traceback (most recent call last):
  File
"/tmp/buildd/llvm-toolchain-snapshot-3.4~svn182719/lldb/test/dotest.py",
line 1124, in <module>
    os.path.walk(testdir, visit, 'Test')
  File "/usr/lib/python2.7/posixpath.py", line 238, in walk
    func(arg, top, names)
  File
"/tmp/buildd/llvm-toolchain-snapshot-3.4~svn182719/lldb/test/dotest.py",
line 1039, in visit
    suite.addTests(unittest2.defaultTestLoader.loadTestsFromName(base))
  File
"/tmp/buildd/llvm-toolchain-snapshot-3.4~svn182719/lldb/test/unittest2/loader.py",
line 111, in loadTestsFromName
    module = __import__('.'.join(parts_copy))
  File
"/tmp/buildd/llvm-toolchain-snapshot-3.4~svn182719/lldb/test/lang/objc/objc-dynamic-value/TestObjCDynamicValue.py",
line 8, in <module>
    import lldb, lldbutil
  File
"/tmp/buildd/llvm-toolchain-snapshot-3.4~svn182719/build-llvm/Release/lib/python2.7/site-packages/lldb/__init__.py",
line 50, in <module>
    _lldb = swig_import_helper()
  File
"/tmp/buildd/llvm-toolchain-snapshot-3.4~svn182719/build-llvm/Release/lib/python2.7/site-packages/lldb/__init__.py",
line 46, in swig_import_helper
    _mod = imp.load_module('_lldb', fp, pathname, description)
ImportError: libLLVM-3.4.so.1: cannot open shared object file: No such
file or directory
Traceback (most recent call last):
  File
"/tmp/buildd/llvm-toolchain-snapshot-3.4~svn182719/lldb/test/dotest.py",
line 1124, in <module>
    os.path.walk(testdir, visit, 'Test')
  File "/usr/lib/python2.7/posixpath.py", line 238, in walk
    func(arg, top, names)
  File
"/tmp/buildd/llvm-toolchain-snapshot-3.4~svn182719/lldb/test/dotest.py",
line 1039, in visit
    suite.addTests(unittest2.defaultTestLoader.loadTestsFromName(base))
  File
"/tmp/buildd/llvm-toolchain-snapshot-3.4~svn182719/lldb/test/unittest2/loader.py",
line 111, in loadTestsFromName
    module = __import__('.'.join(parts_copy))
  File
"/tmp/buildd/llvm-toolchain-snapshot-3.4~svn182719/lldb/test/lang/objc/blocks/TestObjCIvarsInBlocks.py",
line 5, in <module>
    import lldb
  File
"/tmp/buildd/llvm-toolchain-snapshot-3.4~svn182719/build-llvm/Release/lib/python2.7/site-packages/lldb/__init__.py",
line 50, in <module>
    _lldb = swig_import_helper()
  File
"/tmp/buildd/llvm-toolchain-snapshot-3.4~svn182719/build-llvm/Release/lib/python2.7/site-packages/lldb/__init__.py",
line 46, in swig_import_helper
    _mod = imp.load_module('_lldb', fp, pathname, description)
ImportError: libLLVM-3.4.so.1: cannot open shared object file: No such
file or directory

Full log:
http://llvm-jenkins.debian.net/job/llvm-toolchain-codecoverage-binaries/architecture=amd64,distribution=unstable/71/consoleFull


Cheers,
Sylvestre


On 24/05/2013 22:39, Thirumurthi, Ashok wrote:
> Thanks for putting together the report, Sylvestre,
> 
> Do you have any indication that lcov/gcov has any support for dynamically loaded shared libraries?  Note that much of lldb consists of plug-ins that are platform or architecture specific, and these are on the critical path for coverage.  For instance, the report shows 0% coverage for many directories in lldb/source like /Expression and /DataFormatters, whereas the current test suite should give us something...
> 
> - Ashok
> 
> -----Original Message-----
> From: lldb-dev-bounces at cs.uiuc.edu [mailto:lldb-dev-bounces at cs.uiuc.edu] On Behalf Of Sylvestre Ledru
> Sent: Friday, May 17, 2013 11:10 AM
> To: llvm-commits at cs.uiuc.edu; cfe-dev at cs.uiuc.edu; lldb-dev at cs.uiuc.edu
> Subject: [lldb-dev] Code coverage of llvm, clang, lldb & polly
> 
> Hello,
> 
> Plugged in the Jenkins instance used to build Debian & Ubuntu nightly package, I configured a code coverage tool (lcov) with all the tests of these projects.
> Results are published here:
> http://buildd-clang.debian.net/coverage/
> 
> This URL is updated twice a day (it might change since it is taking a long time).
> 
> 
> For those who would like to have their own setup, with gcc, use the following declaration:
> CXXFLAGS="-fprofile-arcs -ftest-coverage"  LDFLAGS="-coverage -lgcov"
> 
> Rebuild everything, launch the tests and run:
> 
> REPORT=reports/scilab-code-coverage.info
> BUILD_DIR=reports/
> mkdir -p $BUILD_DIR
> lcov --directory $BUILD_DIR --capture --ignore-errors source --output-file $REPORT lcov --remove $REPORT "/usr*" -o $REPORT lcov --remove $REPORT "$BUILD_DIR/*" -o $REPORT genhtml -o reports/coverage --show-details --highlight --legend $REPORT
> 
> Cheers,
> Sylvestre
> _______________________________________________
> lldb-dev mailing list
> lldb-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
> 




More information about the lldb-dev mailing list