Uploaded image for project: 'Coin'
  1. Coin
  2. COIN-134

optimizing CI by using call graph analysis

    XMLWordPrintable

Details

    • Suggestion
    • Resolution: Unresolved
    • P3: Somewhat important
    • None
    • master
    • Other
    • None

    Description

      we are wasting a lot of time on running tests that cannot have possibly been affected by the changes that are being integrated.

      we should use call graph analysis to obtain reliable dependencies of test cases, and use the diffs of the integrated changes to select tests to run.

      as a "side effect", this could also mark the likely culprits of integration failures (QTQAINFRA-424).

      all information necessary to extract the call graph and monitor it for changes can be obtained from objcopy -r -s -t. of course, it would be way more efficient to use the respective libbfd functions directly.
      the algorithm is roughly:

      • dump section contents
      • chop them up according to the symbol table
      • hash the per-symbol section contents for later re-validation
      • use the relocation entries (again per-symbol) to build the dependency graph

      <more elaboration to come>

      of course, Somebody Else ™ already had that idea as well: http://googletesting.blogspot.de/2011/06/testing-at-speed-and-scale-of-google.html

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              jujokini Jukka Jokiniva
              buddenha Oswald Buddenhagen
              Votes:
              2 Vote for this issue
              Watchers:
              10 Start watching this issue

              Dates

                Created:
                Updated:

                Gerrit Reviews

                  There are no open Gerrit changes