tree: d2525764472b7c89cc4f833a0bebd139e549dd69 [path history] [tgz]
  1. .gitignore
  2. BUILD.bazel
  3. clangcompile.py
  4. collect.py
  5. commands.py
  6. difftool.py
  7. difftool_test.py
  8. README.md
scripts/difftool/README.md

Difftool

This directory contains tools to compare build artifacts from two separate build invocations as a way of gauging build correctness and debugging potential problems with build systems under development.

Usage

Use of these tools requires a multistep process:

  1. Build using legacy build system:
    $ m libc
    
  2. Collect results to a tmp directory.
    $ ./collect.py out/combined-aosp_flame.ninja \
          out/target/product/flame/obj/libc.so \
          /tmp/legacyFiles
    
  3. Build using the new build system:
    $ USE_BAZEL_ANALYSIS=1 m libc
    
  4. Collect results to a tmp directory.
    $ ./collect.py out/combined-aosp_flame.ninja \
          out/target/product/flame/obj/libc.so \
          /tmp/newFiles
    
  5. Run comparative analysis on the two tmp directories. (See documentation of difftool.py for exact usage.)
    $ ./difftool.py /tmp/legacyFiles \
          out/target/product/flame/obj/libc.so \
          /tmp/newFiles \
          out/target/product/flame/obj/libc.so
    

Use ./collect.py -h or ./difftool.py -h for full usage information of these subtools.