Upstream version 7.36.151.0
[platform/framework/web/crosswalk.git] / src / v8 / tools / android-sync.sh
1 #!/bin/bash
2 # Copyright 2012 the V8 project authors. All rights reserved.
3 # Redistribution and use in source and binary forms, with or without
4 # modification, are permitted provided that the following conditions are
5 # met:
6 #
7 #     * Redistributions of source code must retain the above copyright
8 #       notice, this list of conditions and the following disclaimer.
9 #     * Redistributions in binary form must reproduce the above
10 #       copyright notice, this list of conditions and the following
11 #       disclaimer in the documentation and/or other materials provided
12 #       with the distribution.
13 #     * Neither the name of Google Inc. nor the names of its
14 #       contributors may be used to endorse or promote products derived
15 #       from this software without specific prior written permission.
16 #
17 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
20 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
21 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
29 # This script pushes android binaries and test data to the device.
30 # The first argument can be either "android.release" or "android.debug".
31 # The second argument is a relative path to the output directory with binaries.
32 # The third argument is the absolute path to the V8 directory on the host.
33 # The fourth argument is the absolute path to the V8 directory on the device.
34
35 if [ ${#@} -lt 4 ] ; then
36   echo "$0: Error: need 4 arguments"
37   exit 1
38 fi
39
40 ARCH_MODE=$1
41 OUTDIR=$2
42 HOST_V8=$3
43 ANDROID_V8=$4
44
45 function LINUX_MD5 {
46   local HASH=$(md5sum $1)
47   echo ${HASH%% *}
48 }
49
50 function DARWIN_MD5 {
51   local HASH=$(md5 $1)
52   echo ${HASH} | cut -f2 -d "=" | cut -f2 -d " "
53 }
54
55 host_os=$(uname -s)
56 case "${host_os}" in
57   "Linux")
58     MD5=LINUX_MD5
59     ;;
60   "Darwin")
61     MD5=DARWIN_MD5
62     ;;
63   *)
64     echo "$0: Host platform ${host_os} is not supported" >& 2
65     exit 1
66 esac
67
68 function sync_file {
69   local FILE=$1
70   local ANDROID_HASH=$(adb shell "md5 \"$ANDROID_V8/$FILE\"")
71   local HOST_HASH=$($MD5 "$HOST_V8/$FILE")
72   if [ "${ANDROID_HASH%% *}" != "${HOST_HASH}" ]; then
73     adb push "$HOST_V8/$FILE" "$ANDROID_V8/$FILE" &> /dev/null
74   fi
75   echo -n "."
76 }
77
78 function sync_dir {
79   local DIR=$1
80   echo -n "sync to $ANDROID_V8/$DIR"
81   for FILE in $(find "$HOST_V8/$DIR" -not -path "*.svn*" -type f); do
82     local RELATIVE_FILE=${FILE:${#HOST_V8}}
83     sync_file "$RELATIVE_FILE"
84   done
85   echo ""
86 }
87
88 echo -n "sync to $ANDROID_V8/$OUTDIR/$ARCH_MODE"
89 sync_file "$OUTDIR/$ARCH_MODE/cctest"
90 sync_file "$OUTDIR/$ARCH_MODE/d8"
91 echo ""
92 echo -n "sync to $ANDROID_V8/tools"
93 sync_file tools/consarray.js
94 sync_file tools/codemap.js
95 sync_file tools/csvparser.js
96 sync_file tools/profile.js
97 sync_file tools/splaytree.js
98 sync_file tools/profile_view.js
99 sync_file tools/logreader.js
100 sync_file tools/tickprocessor.js
101 echo ""
102 sync_dir tools/profviz
103 sync_dir test/intl
104 sync_dir test/message
105 sync_dir test/mjsunit
106 sync_dir test/preparser