OSDN Git Service

Remove the hacks needed to support ash and mksh concurrently.
[android-x86/build.git] / tools / check_builds.sh
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/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/tools/compare_fileslist.py $inputs > $TEST_BUILD_DIR/sizes.html
91 }
92