| # Copyright (C) 2009 The Android Open Source Project | |
| # | |
| # Licensed under the Apache License, Version 2.0 (the 'License'); | |
| # you may not use this file except in compliance with the License. | |
| # You may obtain a copy of the License at | |
| # | |
| # http://www.apache.org/licenses/LICENSE-2.0 | |
| # | |
| # Unless required by applicable law or agreed to in writing, software | |
| # distributed under the License is distributed on an 'AS IS' BASIS, | |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| # See the License for the specific language governing permissions and | |
| # limitations under the License. | |
| # | |
| # Usage: | |
| # | |
| # Source this file into your environment. Then: | |
| # | |
| # $ golden_builds sdk-sdk generic-eng generic-userdebug dream-eng | |
| # | |
| # will build a set of combos. This might take a while. Then you can | |
| # go make changes, and run: | |
| # | |
| # $ check_builds sdk-sdk generic-eng generic-userdebug dream-eng | |
| # | |
| # Go get dinner, and when you get back, there will be a file | |
| # test-builds/sizes.html that has a pretty chart of which files are | |
| # in which tree, and how big they are. In that chart, cells for files | |
| # that are missing are red, and rows where the file sizes are not all | |
| # the same will be blue. | |
| # | |
| TEST_BUILD_DIR=test-builds | |
| function do_builds | |
| { | |
| PREFIX=$1 | |
| shift | |
| while [ -n "$1" ] | |
| do | |
| rm -rf $TEST_BUILD_DIR/$PREFIX-$1 | |
| make PRODUCT-$(echo $1 | sed "s/-.*//" )-installclean | |
| make -j16 PRODUCT-$1 dist DIST_DIR=$TEST_BUILD_DIR/$PREFIX-$1 | |
| if [ $? -ne 0 ] ; then | |
| echo FAILED | |
| return | |
| fi | |
| shift | |
| done | |
| } | |
| function golden_builds | |
| { | |
| rm -rf $TEST_BUILD_DIR/golden-* $TEST_BUILD_DIR/dist-* | |
| do_builds golden "$@" | |
| } | |
| function compare_builds | |
| { | |
| local inputs= | |
| while [ -n "$1" ] | |
| do | |
| inputs="$inputs $TEST_BUILD_DIR/golden-$1/installed-files.txt" | |
| inputs="$inputs $TEST_BUILD_DIR/dist-$1/installed-files.txt" | |
| shift | |
| done | |
| build/tools/compare_fileslist.py $inputs > $TEST_BUILD_DIR/sizes.html | |
| } | |
| function check_builds | |
| { | |
| rm -rf $TEST_BUILD_DIR/dist-* | |
| do_builds dist "$@" | |
| compare_builds "$@" | |
| } | |
| function diff_builds | |
| { | |
| local inputs= | |
| while [ -n "$1" ] | |
| do | |
| diff $TEST_BUILD_DIR/golden-$1/installed-files.txt $TEST_BUILD_DIR/dist-$1/installed-files.txt &> /dev/null | |
| if [ $? != 0 ]; then | |
| echo =========== $1 =========== | |
| diff $TEST_BUILD_DIR/golden-$1/installed-files.txt $TEST_BUILD_DIR/dist-$1/installed-files.txt | |
| fi | |
| shift | |
| done | |
| build/tools/compare_fileslist.py $inputs > $TEST_BUILD_DIR/sizes.html | |
| } | |