blob: 6d9500fc52e722990314a9fe458813a2888c3c45 [file] [log] [blame]
Ben Murdochb8a8cc12014-11-26 15:28:44 +00001#!/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
35if [ ${#@} -lt 4 ] ; then
36 echo "$0: Error: need 4 arguments"
37 exit 1
38fi
39
40ARCH_MODE=$1
41OUTDIR=$2
42HOST_V8=$3
43ANDROID_V8=$4
44
45function LINUX_MD5 {
46 local HASH=$(md5sum $1)
47 echo ${HASH%% *}
48}
49
50function DARWIN_MD5 {
51 local HASH=$(md5 $1)
52 echo ${HASH} | cut -f2 -d "=" | cut -f2 -d " "
53}
54
55host_os=$(uname -s)
56case "${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
66esac
67
68function 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
78function 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
88echo -n "sync to $ANDROID_V8/$OUTDIR/$ARCH_MODE"
89sync_file "$OUTDIR/$ARCH_MODE/cctest"
90sync_file "$OUTDIR/$ARCH_MODE/d8"
Ben Murdoch097c5b22016-05-18 11:27:45 +010091sync_file "$OUTDIR/$ARCH_MODE/natives_blob.bin"
92sync_file "$OUTDIR/$ARCH_MODE/snapshot_blob.bin"
Emily Bernierd0a1eb72015-03-24 16:35:39 -040093sync_file "$OUTDIR/$ARCH_MODE/unittests"
Ben Murdochb8a8cc12014-11-26 15:28:44 +000094echo ""
95echo -n "sync to $ANDROID_V8/tools"
96sync_file tools/consarray.js
97sync_file tools/codemap.js
98sync_file tools/csvparser.js
99sync_file tools/profile.js
100sync_file tools/splaytree.js
101sync_file tools/profile_view.js
102sync_file tools/logreader.js
103sync_file tools/tickprocessor.js
104echo ""
105sync_dir tools/profviz
106sync_dir test/intl
107sync_dir test/message
108sync_dir test/mjsunit
109sync_dir test/preparser