[oe-commits] [openembedded-core] 02/08: scripts:/oe-selftest: Use timestamp instead of test names in coverage data file

git at git.openembedded.org git at git.openembedded.org
Sat Mar 26 08:28:17 UTC 2016


rpurdie pushed a commit to branch master-next
in repository openembedded-core.

commit f7e4460b00bad29ee81c798988795293e7c973fc
Author: Humberto Ibarra <humberto.ibarra.lopez at intel.com>
AuthorDate: Wed Mar 23 18:32:02 2016 -0600

    scripts:/oe-selftest: Use timestamp instead of test names in coverage data file
    
    This fixes the problem by changing the name to the coverage data file,
    using the timestamp as an identifier.
    
    The name for the coverage data file is constructed based on the tests
    ran; this has created a couple of issues so far, affecting coverage report.
    
    If --run-tests-by option is given, the data file name won't have any
    identifier, causing following runs to overwrite themselves. On the
    other hand, if too many tests are given, the file name exceeds linux
    limits and fails to store the coverage data all together.
    
    [Yocto #9253]
    
    Signed-off-by: Humberto Ibarra <humberto.ibarra.lopez at intel.com>
    Signed-off-by: Ross Burton <ross.burton at intel.com>
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 scripts/oe-selftest | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/scripts/oe-selftest b/scripts/oe-selftest
index d18348d..9b61bfa 100755
--- a/scripts/oe-selftest
+++ b/scripts/oe-selftest
@@ -364,16 +364,21 @@ def list_tags():
 
     print 'Tags:\t%s' % ', '.join(str(x) for x in tags)
 
-def coverage_setup(run_tests, run_all_tests, coverage_source, coverage_include, coverage_omit):
+def coverage_setup(coverage_source, coverage_include, coverage_omit):
     """ Set up the coverage measurement for the testcases to be run """
+    import datetime
+    import subprocess
     builddir = os.environ.get("BUILDDIR")
+    pokydir = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
+    curcommit= subprocess.check_output(["git", "--git-dir", os.path.join(pokydir, ".git"), "rev-parse", "HEAD"])
     coveragerc = "%s/.coveragerc" % builddir
     data_file = "%s/.coverage." % builddir
-    data_file += ((run_tests and '.'.join(run_tests)) or
-        (run_all_tests and "all_tests") or "")
+    data_file += datetime.datetime.now().strftime('%Y%m%dT%H%M%S')
     if os.path.isfile(data_file):
         os.remove(data_file)
     with open(coveragerc, 'w') as cps:
+        cps.write("# Generated with command '%s'\n" % " ".join(sys.argv))
+        cps.write("# HEAD commit %s\n" % curcommit.strip())
         cps.write("[run]\n")
         cps.write("data_file = %s\n" % data_file)
         cps.write("branch = True\n")
@@ -586,7 +591,7 @@ def buildResultClass(args):
                 # value indicates where the coverage configuration file resides
                 # More info on https://pypi.python.org/pypi/coverage
                 if not os.environ.get('COVERAGE_PROCESS_START'):
-                    os.environ['COVERAGE_PROCESS_START'] = coverage_setup(args.run_tests, args.run_all_tests, args.coverage_source, args.coverage_include, args.coverage_omit)
+                    os.environ['COVERAGE_PROCESS_START'] = coverage_setup(args.coverage_source, args.coverage_include, args.coverage_omit)
 
                 # Use default site.USER_SITE and write corresponding config file
                 site.ENABLE_USER_SITE = True

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list