github.com/westcoastroms/westcoastroms-build@v0.0.0-20190928114312-2350e5a73030/build/make/tools/check_builds.sh (about)

     1  # Copyright (C) 2009 The Android Open Source Project
     2  #
     3  # Licensed under the Apache License, Version 2.0 (the 'License');
     4  # you may not use this file except in compliance with the License.
     5  # You may obtain a copy of the License at
     6  #
     7  #      http://www.apache.org/licenses/LICENSE-2.0
     8  #
     9  # Unless required by applicable law or agreed to in writing, software
    10  # distributed under the License is distributed on an 'AS IS' BASIS,
    11  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  # See the License for the specific language governing permissions and
    13  # limitations under the License.
    14  
    15  #
    16  # Usage:
    17  #
    18  # Source this file into your environment.  Then:
    19  #
    20  #    $ golden_builds sdk-sdk generic-eng generic-userdebug dream-eng
    21  # 
    22  # will build a set of combos.  This might take a while.  Then you can
    23  # go make changes, and run:
    24  #
    25  #    $ check_builds sdk-sdk generic-eng generic-userdebug dream-eng
    26  #
    27  # Go get dinner, and when you get back, there will be a file
    28  # test-builds/sizes.html that has a pretty chart of which files are
    29  # in which tree, and how big they are.  In that chart, cells for files
    30  # that are missing are red, and rows where the file sizes are not all
    31  # the same will be blue.
    32  #
    33  
    34  TEST_BUILD_DIR=test-builds
    35  
    36  function do_builds
    37  {
    38      PREFIX=$1
    39      shift
    40      while [ -n "$1" ]
    41      do
    42          rm -rf $TEST_BUILD_DIR/$PREFIX-$1
    43          make PRODUCT-$(echo $1 | sed "s/-.*//" )-installclean
    44          make -j16 PRODUCT-$1 dist DIST_DIR=$TEST_BUILD_DIR/$PREFIX-$1
    45          if [ $? -ne 0 ] ; then
    46              echo FAILED
    47              return
    48          fi
    49          shift
    50      done
    51  }
    52  
    53  function golden_builds
    54  {
    55      rm -rf $TEST_BUILD_DIR/golden-* $TEST_BUILD_DIR/dist-*
    56      do_builds golden "$@"
    57  }
    58  
    59  function compare_builds
    60  {
    61      local inputs=
    62      while [ -n "$1" ]
    63      do
    64          inputs="$inputs $TEST_BUILD_DIR/golden-$1/installed-files.txt"
    65          inputs="$inputs $TEST_BUILD_DIR/dist-$1/installed-files.txt"
    66          shift
    67      done
    68      build/make/tools/compare_fileslist.py $inputs > $TEST_BUILD_DIR/sizes.html
    69  }
    70  
    71  function check_builds
    72  {
    73      rm -rf $TEST_BUILD_DIR/dist-*
    74      do_builds dist "$@"
    75      compare_builds "$@"
    76  }
    77  
    78  function diff_builds
    79  {
    80      local inputs=
    81      while [ -n "$1" ]
    82      do
    83          diff $TEST_BUILD_DIR/golden-$1/installed-files.txt $TEST_BUILD_DIR/dist-$1/installed-files.txt &> /dev/null
    84          if [ $? != 0 ]; then
    85              echo =========== $1 ===========
    86              diff $TEST_BUILD_DIR/golden-$1/installed-files.txt $TEST_BUILD_DIR/dist-$1/installed-files.txt
    87          fi
    88          shift
    89      done
    90      build/make/tools/compare_fileslist.py $inputs > $TEST_BUILD_DIR/sizes.html
    91  }
    92