| #!/bin/sh |
| # |
| # Copyright 2012 Intel Inc. |
| # |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| # |
| # This script builds and runs GM in current workspace with another Skia |
| # revision user specifies, and then compares their results. This script is |
| # useful when developers want to know whether their changes would cause any |
| # regression. |
| # |
| # As the name of this script tells, it only works for git repository. :) |
| # |
| # Usage: |
| # Put this script into where your PATH can find it. |
| # And then invoke: |
| # $ git skia-verify [sha1-to-compare-default-is-HEAD^] |
| # It would delete {before,after,diff} directory under the current directory, |
| # so be warned! |
| # After it's done, check out diff/index.html for the possible differences. |
| |
| |
| function say() { |
| # set color to yellow |
| tput setaf 3 |
| echo $1 |
| tput sgr0 |
| } |
| |
| function warn() { |
| # set color to red |
| tput setaf 1 |
| echo $1 |
| tput sgr0 |
| } |
| |
| REVISION="HEAD^" |
| |
| if [[ $# -eq 1 ]]; |
| then |
| REVISION="$1" |
| fi |
| |
| tput clear |
| |
| say "Checking sanity..." |
| git diff --exit-code > /dev/null |
| if [[ $? -ne 0 ]]; |
| then |
| warn "You have uncommitted changes!" |
| exit 1 |
| fi |
| git diff --cached --exit-code > /dev/null |
| if [[ $? -ne 0 ]]; |
| then |
| warn "You have uncommitted changes!" |
| exit 1 |
| fi |
| |
| say "Preparing Directories..." |
| rm -rf {before,after,diff} |
| mkdir {before,after,diff} |
| |
| PREVIOUS_BRANCH=`git branch --no-color | grep "^*" | awk '{ print $2}'` |
| |
| say "Running GM for current revision..." |
| ./gyp_skia |
| make BUILDTYPE=Release -j10 |
| if [[ $? -ne 0 ]]; |
| then |
| warn "Failed to compile!" |
| exit 1 |
| fi |
| ./out/Release/gm -w after |
| |
| say "Running GM for revision $REVISION..." |
| # we run the test in a detached branch |
| git checkout --detach "$REVISION" |
| ./gyp_skia |
| make BUILDTYPE=Release -j10 |
| if [[ $? -ne 0 ]]; |
| then |
| warn "Failed to compile!" |
| say "Back to original revision..." |
| git checkout "$PREVIOUS_BRANCH" |
| exit 1 |
| fi |
| ./out/Release/gm -w before |
| |
| say "Back to original revision..." |
| git checkout "$PREVIOUS_BRANCH" |
| |
| say "Comparing..." |
| ./out/Release/skdiff before after diff |