96 lines
2.0 KiB
Plaintext
96 lines
2.0 KiB
Plaintext
|
#!/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
|