Reviewers: danno,

Message:
plz review

Description:
Add PRESUBMIT script to V8

Currently, it executes the OWNERS check and tools/presubmit.py, as well as a
check for a non-empty commit message

BUG=none
TEST=run git cl presubmit


Please review this at https://codereview.chromium.org/11092002/

SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge

Affected files:
  A + PRESUBMIT.py


Index: PRESUBMIT.py
diff --git a/tools/android-ll-prof.sh b/PRESUBMIT.py
old mode 100755
new mode 100644
similarity index 52%
copy from tools/android-ll-prof.sh
copy to PRESUBMIT.py
index 436f262bb3682d5b6a6c408f02159ab5da205eca..0077be941a00f77d92f1571c12c899e441d3e22b
--- a/tools/android-ll-prof.sh
+++ b/PRESUBMIT.py
@@ -1,4 +1,3 @@
-#!/bin/bash
 # Copyright 2012 the V8 project authors. All rights reserved.
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions are
@@ -26,44 +25,47 @@
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

-# Runs d8 with the given arguments on the device under 'perf' and
-# processes the profiler trace and v8 logs using ll_prof.py.
-#
-# Usage:
-# > ./tools/android-ll-prof.sh (debug|release) "args to d8" "args to ll_prof.py"
-#
-# The script creates deploy directory deploy/data/local/tmp/v8, copies there -# the d8 binary either from out/android_arm.release or out/android_arm.debug,
-# and then sync the deploy directory with /data/local/tmp/v8 on the device.
-# You can put JS files in the deploy directory before running the script.
-# Note: $ANDROID_NDK_ROOT must be set.
+"""Top-level presubmit script for V8.

-MODE=$1
-RUN_ARGS=$2
-LL_PROF_ARGS=$3
+See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts
+for more details about the presubmit API built into gcl.
+"""

-BASE=`cd $(dirname "$0")/..; pwd`
-DEPLOY="$BASE/deploy"
+def _V8PresubmitChecks(input_api, output_api):
+  """Runs the V8 presubmit checks."""
+  import sys
+  sys.path.append(input_api.os_path.join(
+        input_api.PresubmitLocalPath(), 'tools'))
+  from presubmit import CppLintProcessor
+  from presubmit import SourceProcessor

-set +e
-mkdir -p "$DEPLOY/data/local/tmp/v8"
+  results = []
+  if not CppLintProcessor().Run(input_api.PresubmitLocalPath()):
+    results.append(output_api.PresubmitError("C++ lint check failed"))
+  if not SourceProcessor().Run(input_api.PresubmitLocalPath()):
+    results.append(output_api.PresubmitError(
+        "Copyright header and trailing whitespaces check failed"))
+  return results

-cp "$BASE/out/android_arm.$MODE/d8" "$DEPLOY/data/local/tmp/v8/d8"

-adb -p "$DEPLOY" sync data
+def _CommonChecks(input_api, output_api):
+  """Checks common to both upload and commit."""
+  results = []
+  results.extend(input_api.canned_checks.CheckOwners(
+      input_api, output_api, source_file_filter=None))
+  return results

-adb shell "cd /data/local/tmp/v8;\
-           perf record -R -e cycles -c 10000 -f -i \
- ./d8 --ll_prof --gc-fake-mmap=/data/local/tmp/__v8_gc__ $RUN_ARGS"

-adb pull /data/local/tmp/v8/v8.log .
-adb pull /data/local/tmp/v8/v8.log.ll .
-adb pull /data/perf.data .
+def CheckChangeOnUpload(input_api, output_api):
+  results = []
+  results.extend(_CommonChecks(input_api, output_api))
+  return results

-ARCH=arm-linux-androideabi-4.6
-TOOLCHAIN="${ANDROID_NDK_ROOT}/toolchains/$ARCH/prebuilt/linux-x86/bin"

-$BASE/tools/ll_prof.py --host-root="$BASE/deploy" \
-                       --gc-fake-mmap=/data/local/tmp/__v8_gc__ \
- --objdump="$TOOLCHAIN/arm-linux-androideabi-objdump" \
-                       $LL_PROF_ARGS
+def CheckChangeOnCommit(input_api, output_api):
+  results = []
+  results.extend(_CommonChecks(input_api, output_api))
+  results.extend(input_api.canned_checks.CheckChangeHasDescription(
+      input_api, output_api))
+  results.extend(_V8PresubmitChecks(input_api, output_api))
+  return results


--
v8-dev mailing list
v8-dev@googlegroups.com
http://groups.google.com/group/v8-dev

Reply via email to