#!/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
