12da489cd246702bee5938545b18a6f710ed214bcJamie Gennis#!/bin/bash
22da489cd246702bee5938545b18a6f710ed214bcJamie Gennis# Copyright 2013 the V8 project authors. All rights reserved.
32da489cd246702bee5938545b18a6f710ed214bcJamie Gennis# Redistribution and use in source and binary forms, with or without
42da489cd246702bee5938545b18a6f710ed214bcJamie Gennis# modification, are permitted provided that the following conditions are
52da489cd246702bee5938545b18a6f710ed214bcJamie Gennis# met:
62da489cd246702bee5938545b18a6f710ed214bcJamie Gennis#
72da489cd246702bee5938545b18a6f710ed214bcJamie Gennis#     * Redistributions of source code must retain the above copyright
82da489cd246702bee5938545b18a6f710ed214bcJamie Gennis#       notice, this list of conditions and the following disclaimer.
92da489cd246702bee5938545b18a6f710ed214bcJamie Gennis#     * Redistributions in binary form must reproduce the above
102da489cd246702bee5938545b18a6f710ed214bcJamie Gennis#       copyright notice, this list of conditions and the following
112da489cd246702bee5938545b18a6f710ed214bcJamie Gennis#       disclaimer in the documentation and/or other materials provided
122da489cd246702bee5938545b18a6f710ed214bcJamie Gennis#       with the distribution.
132da489cd246702bee5938545b18a6f710ed214bcJamie Gennis#     * Neither the name of Google Inc. nor the names of its
142da489cd246702bee5938545b18a6f710ed214bcJamie Gennis#       contributors may be used to endorse or promote products derived
152da489cd246702bee5938545b18a6f710ed214bcJamie Gennis#       from this software without specific prior written permission.
162da489cd246702bee5938545b18a6f710ed214bcJamie Gennis#
172da489cd246702bee5938545b18a6f710ed214bcJamie Gennis# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
182da489cd246702bee5938545b18a6f710ed214bcJamie Gennis# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
192da489cd246702bee5938545b18a6f710ed214bcJamie Gennis# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
202da489cd246702bee5938545b18a6f710ed214bcJamie Gennis# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
212da489cd246702bee5938545b18a6f710ed214bcJamie Gennis# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
222da489cd246702bee5938545b18a6f710ed214bcJamie Gennis# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
232da489cd246702bee5938545b18a6f710ed214bcJamie Gennis# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
242da489cd246702bee5938545b18a6f710ed214bcJamie Gennis# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
252da489cd246702bee5938545b18a6f710ed214bcJamie Gennis# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
262da489cd246702bee5938545b18a6f710ed214bcJamie Gennis# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
272da489cd246702bee5938545b18a6f710ed214bcJamie Gennis# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
282da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
292da489cd246702bee5938545b18a6f710ed214bcJamie Gennis# Tests the push-to-trunk.sh script. Needs to be run in V8 base dir:
302da489cd246702bee5938545b18a6f710ed214bcJamie Gennis# ./tools/test-push-to-trunk.sh
312da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
322da489cd246702bee5938545b18a6f710ed214bcJamie Gennis# TODO(machenbach): Check automatically if expectations match.
332da489cd246702bee5938545b18a6f710ed214bcJamie Gennis# TODO(machenbach): Mock out version number retrieval.
342da489cd246702bee5938545b18a6f710ed214bcJamie Gennis# TODO(machenbach): Allow multiple different test cases.
352da489cd246702bee5938545b18a6f710ed214bcJamie Gennis# TODO(machenbach): Allow multi line mock output.
362da489cd246702bee5938545b18a6f710ed214bcJamie Gennis# TODO(machenbach): Represent test expectations/mock output without an array
372da489cd246702bee5938545b18a6f710ed214bcJamie Gennis# index increment.
382da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
392da489cd246702bee5938545b18a6f710ed214bcJamie Gennis########## Stdin for push-to-trunk.sh
402da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
412da489cd246702bee5938545b18a6f710ed214bcJamie Gennis# Confirm push to trunk commit ID
422da489cd246702bee5938545b18a6f710ed214bcJamie GennisINPUT[0]="Y"
432da489cd246702bee5938545b18a6f710ed214bcJamie Gennis# Open editor
442da489cd246702bee5938545b18a6f710ed214bcJamie GennisINPUT[1]=""
452da489cd246702bee5938545b18a6f710ed214bcJamie Gennis# Confirm increment version number
462da489cd246702bee5938545b18a6f710ed214bcJamie GennisINPUT[2]="Y"
472da489cd246702bee5938545b18a6f710ed214bcJamie Gennis# Reviewer for V8 CL
482da489cd246702bee5938545b18a6f710ed214bcJamie GennisINPUT[3]="reviewer@chromium.org"
492da489cd246702bee5938545b18a6f710ed214bcJamie Gennis# Enter LGTM for V8 CL
502da489cd246702bee5938545b18a6f710ed214bcJamie GennisINPUT[4]="LGTM"
512da489cd246702bee5938545b18a6f710ed214bcJamie Gennis# Confirm checkout sanity
522da489cd246702bee5938545b18a6f710ed214bcJamie GennisINPUT[5]="Y"
532da489cd246702bee5938545b18a6f710ed214bcJamie Gennis# Manually type in trunk revision
542da489cd246702bee5938545b18a6f710ed214bcJamie GennisINPUT[6]="12345"
552da489cd246702bee5938545b18a6f710ed214bcJamie Gennis# Reviewer for Chromium CL
562da489cd246702bee5938545b18a6f710ed214bcJamie GennisINPUT[7]="reviewer@chromium.org"
572da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
582da489cd246702bee5938545b18a6f710ed214bcJamie Gennis########## Expected commands and mock output
592da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
602da489cd246702bee5938545b18a6f710ed214bcJamie GennisEXP[0]="git status -s -uno"
612da489cd246702bee5938545b18a6f710ed214bcJamie GennisOUT[0]=""
622da489cd246702bee5938545b18a6f710ed214bcJamie GennisEXP[1]="git status -s -b -uno"
632da489cd246702bee5938545b18a6f710ed214bcJamie GennisOUT[1]="## some_branch"
642da489cd246702bee5938545b18a6f710ed214bcJamie GennisEXP[2]="git svn fetch"
652da489cd246702bee5938545b18a6f710ed214bcJamie GennisOUT[2]=""
662da489cd246702bee5938545b18a6f710ed214bcJamie GennisEXP[3]="git branch"
672da489cd246702bee5938545b18a6f710ed214bcJamie GennisOUT[3]="not the temp branch"
682da489cd246702bee5938545b18a6f710ed214bcJamie GennisEXP[4]="git checkout -b prepare-push-temporary-branch-created-by-script"
692da489cd246702bee5938545b18a6f710ed214bcJamie GennisOUT[4]=""
702da489cd246702bee5938545b18a6f710ed214bcJamie GennisEXP[5]="git branch"
712da489cd246702bee5938545b18a6f710ed214bcJamie GennisOUT[5]="not the branch"
722da489cd246702bee5938545b18a6f710ed214bcJamie GennisEXP[6]="git branch"
732da489cd246702bee5938545b18a6f710ed214bcJamie GennisOUT[6]="not the trunk branch"
742da489cd246702bee5938545b18a6f710ed214bcJamie GennisEXP[7]="git checkout -b prepare-push svn/bleeding_edge"
752da489cd246702bee5938545b18a6f710ed214bcJamie GennisOUT[7]=""
762da489cd246702bee5938545b18a6f710ed214bcJamie GennisEXP[8]="git log -1 --format=%H ChangeLog"
772da489cd246702bee5938545b18a6f710ed214bcJamie GennisOUT[8]="hash1"
782da489cd246702bee5938545b18a6f710ed214bcJamie GennisEXP[9]="git log -1 hash1"
792da489cd246702bee5938545b18a6f710ed214bcJamie GennisOUT[9]=""
802da489cd246702bee5938545b18a6f710ed214bcJamie GennisEXP[10]="git log hash1..HEAD --format=%H"
812da489cd246702bee5938545b18a6f710ed214bcJamie GennisOUT[10]="hash2"
822da489cd246702bee5938545b18a6f710ed214bcJamie GennisEXP[11]="git log -1 hash2 --format=\"%w(80,8,8)%s\""
832da489cd246702bee5938545b18a6f710ed214bcJamie GennisOUT[11]="Log line..."
842da489cd246702bee5938545b18a6f710ed214bcJamie GennisEXP[12]="git log -1 hash2 --format=\"%B\""
852da489cd246702bee5938545b18a6f710ed214bcJamie GennisOUT[12]="BUG=6789"
862da489cd246702bee5938545b18a6f710ed214bcJamie GennisEXP[13]="git log -1 hash2 --format=\"%w(80,8,8)(%an)\""
872da489cd246702bee5938545b18a6f710ed214bcJamie GennisOUT[13]="   (author@chromium.org)"
882da489cd246702bee5938545b18a6f710ed214bcJamie GennisEXP[14]="git commit -a -m \"Prepare push to trunk.  Now working on version 3.4.5.\""
892da489cd246702bee5938545b18a6f710ed214bcJamie GennisOUT[14]=""
902da489cd246702bee5938545b18a6f710ed214bcJamie GennisEXP[15]="git cl upload -r reviewer@chromium.org --send-mail"
912da489cd246702bee5938545b18a6f710ed214bcJamie GennisOUT[15]=""
922da489cd246702bee5938545b18a6f710ed214bcJamie GennisEXP[16]="git cl dcommit"
932da489cd246702bee5938545b18a6f710ed214bcJamie GennisOUT[16]=""
942da489cd246702bee5938545b18a6f710ed214bcJamie GennisEXP[17]="git svn fetch"
952da489cd246702bee5938545b18a6f710ed214bcJamie GennisOUT[17]=""
962da489cd246702bee5938545b18a6f710ed214bcJamie GennisEXP[18]="git checkout svn/bleeding_edge"
972da489cd246702bee5938545b18a6f710ed214bcJamie GennisOUT[18]=""
982da489cd246702bee5938545b18a6f710ed214bcJamie GennisEXP[19]="git log -1 --format=%H --grep=Prepare push to trunk.  Now working on version 3.4.5."
992da489cd246702bee5938545b18a6f710ed214bcJamie GennisOUT[19]="hash3"
1002da489cd246702bee5938545b18a6f710ed214bcJamie GennisEXP[20]="git diff svn/trunk"
1012da489cd246702bee5938545b18a6f710ed214bcJamie GennisOUT[20]="patch1"
1022da489cd246702bee5938545b18a6f710ed214bcJamie GennisEXP[21]="git checkout -b trunk-push svn/trunk"
1032da489cd246702bee5938545b18a6f710ed214bcJamie GennisOUT[21]=""
1042da489cd246702bee5938545b18a6f710ed214bcJamie GennisEXP[22]="git apply --index --reject /tmp/v8-push-to-trunk-tempfile-patch"
1052da489cd246702bee5938545b18a6f710ed214bcJamie GennisOUT[22]=""
1062da489cd246702bee5938545b18a6f710ed214bcJamie GennisEXP[23]="git add src/version.cc"
1072da489cd246702bee5938545b18a6f710ed214bcJamie GennisOUT[23]=""
1082da489cd246702bee5938545b18a6f710ed214bcJamie GennisEXP[24]="git commit -F /tmp/v8-push-to-trunk-tempfile-commitmsg"
1092da489cd246702bee5938545b18a6f710ed214bcJamie GennisOUT[24]=""
1102da489cd246702bee5938545b18a6f710ed214bcJamie GennisEXP[25]="git svn dcommit"
1112da489cd246702bee5938545b18a6f710ed214bcJamie GennisOUT[25]="r1234"
1122da489cd246702bee5938545b18a6f710ed214bcJamie GennisEXP[26]="git svn tag 3.4.5 -m \"Tagging version 3.4.5\""
1132da489cd246702bee5938545b18a6f710ed214bcJamie GennisOUT[26]=""
1142da489cd246702bee5938545b18a6f710ed214bcJamie GennisEXP[27]="git status -s -uno"
1152da489cd246702bee5938545b18a6f710ed214bcJamie GennisOUT[27]=""
1162da489cd246702bee5938545b18a6f710ed214bcJamie GennisEXP[28]="git checkout master"
1172da489cd246702bee5938545b18a6f710ed214bcJamie GennisOUT[28]=""
1182da489cd246702bee5938545b18a6f710ed214bcJamie GennisEXP[29]="git pull"
1192da489cd246702bee5938545b18a6f710ed214bcJamie GennisOUT[29]=""
1202da489cd246702bee5938545b18a6f710ed214bcJamie GennisEXP[30]="git checkout -b v8-roll-12345"
1212da489cd246702bee5938545b18a6f710ed214bcJamie GennisOUT[30]=""
1222da489cd246702bee5938545b18a6f710ed214bcJamie GennisEXP[31]="git commit -am Update V8 to version 3.4.5."
1232da489cd246702bee5938545b18a6f710ed214bcJamie GennisOUT[31]=""
1242da489cd246702bee5938545b18a6f710ed214bcJamie GennisEXP[32]="git cl upload --send-mail"
1252da489cd246702bee5938545b18a6f710ed214bcJamie GennisOUT[32]=""
1262da489cd246702bee5938545b18a6f710ed214bcJamie GennisEXP[33]="git checkout -f some_branch"
1272da489cd246702bee5938545b18a6f710ed214bcJamie GennisOUT[33]=""
1282da489cd246702bee5938545b18a6f710ed214bcJamie GennisEXP[34]="git branch -D prepare-push-temporary-branch-created-by-script"
1292da489cd246702bee5938545b18a6f710ed214bcJamie GennisOUT[34]=""
1302da489cd246702bee5938545b18a6f710ed214bcJamie GennisEXP[35]="git branch -D prepare-push"
1312da489cd246702bee5938545b18a6f710ed214bcJamie GennisOUT[35]=""
1322da489cd246702bee5938545b18a6f710ed214bcJamie GennisEXP[36]="git branch -D trunk-push"
1332da489cd246702bee5938545b18a6f710ed214bcJamie GennisOUT[36]=""
1342da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
1352da489cd246702bee5938545b18a6f710ed214bcJamie Gennis########## Global temp files for test input/output
1362da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
1372da489cd246702bee5938545b18a6f710ed214bcJamie Gennisexport TEST_OUTPUT=$(mktemp)
1382da489cd246702bee5938545b18a6f710ed214bcJamie Gennisexport INDEX=$(mktemp)
1392da489cd246702bee5938545b18a6f710ed214bcJamie Gennisexport MOCK_OUTPUT=$(mktemp)
1402da489cd246702bee5938545b18a6f710ed214bcJamie Gennisexport EXPECTED_COMMANDS=$(mktemp)
1412da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
1422da489cd246702bee5938545b18a6f710ed214bcJamie Gennis########## Command index
1432da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
1442da489cd246702bee5938545b18a6f710ed214bcJamie Gennisinc_index() {
1452da489cd246702bee5938545b18a6f710ed214bcJamie Gennis  local I="$(command cat $INDEX)"
1462da489cd246702bee5938545b18a6f710ed214bcJamie Gennis  let "I+=1"
1472da489cd246702bee5938545b18a6f710ed214bcJamie Gennis  echo "$I" > $INDEX
1482da489cd246702bee5938545b18a6f710ed214bcJamie Gennis  echo $I
1492da489cd246702bee5938545b18a6f710ed214bcJamie Gennis}
1502da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
1512da489cd246702bee5938545b18a6f710ed214bcJamie Gennisecho "-1" > $INDEX
1522da489cd246702bee5938545b18a6f710ed214bcJamie Gennisexport -f inc_index
1532da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
1542da489cd246702bee5938545b18a6f710ed214bcJamie Gennis########## Mock output accessor
1552da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
1562da489cd246702bee5938545b18a6f710ed214bcJamie Gennisget_mock_output() {
1572da489cd246702bee5938545b18a6f710ed214bcJamie Gennis  local I=$1
1582da489cd246702bee5938545b18a6f710ed214bcJamie Gennis  let "I+=1"
1592da489cd246702bee5938545b18a6f710ed214bcJamie Gennis  command sed "${I}q;d" $MOCK_OUTPUT
1602da489cd246702bee5938545b18a6f710ed214bcJamie Gennis}
1612da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
1622da489cd246702bee5938545b18a6f710ed214bcJamie Gennisexport -f get_mock_output
1632da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
1642da489cd246702bee5938545b18a6f710ed214bcJamie Gennisfor E in "${OUT[@]}"; do
1652da489cd246702bee5938545b18a6f710ed214bcJamie Gennis  echo $E
1662da489cd246702bee5938545b18a6f710ed214bcJamie Gennisdone > $MOCK_OUTPUT
1672da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
1682da489cd246702bee5938545b18a6f710ed214bcJamie Gennis########## Expected commands accessor
1692da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
1702da489cd246702bee5938545b18a6f710ed214bcJamie Gennisget_expected_command() {
1712da489cd246702bee5938545b18a6f710ed214bcJamie Gennis  local I=$1
1722da489cd246702bee5938545b18a6f710ed214bcJamie Gennis  let "I+=1"
1732da489cd246702bee5938545b18a6f710ed214bcJamie Gennis  command sed "${I}q;d" $EXPECTED_COMMANDS
1742da489cd246702bee5938545b18a6f710ed214bcJamie Gennis}
1752da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
1762da489cd246702bee5938545b18a6f710ed214bcJamie Gennisexport -f get_expected_command
1772da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
1782da489cd246702bee5938545b18a6f710ed214bcJamie Gennisfor E in "${EXP[@]}"; do
1792da489cd246702bee5938545b18a6f710ed214bcJamie Gennis  echo $E
1802da489cd246702bee5938545b18a6f710ed214bcJamie Gennisdone > $EXPECTED_COMMANDS
1812da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
1822da489cd246702bee5938545b18a6f710ed214bcJamie Gennis########## Mock commands
1832da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
1842da489cd246702bee5938545b18a6f710ed214bcJamie Gennisgit() {
1852da489cd246702bee5938545b18a6f710ed214bcJamie Gennis  # All calls to git are mocked out. Expected calls and mock output are stored
1862da489cd246702bee5938545b18a6f710ed214bcJamie Gennis  # in the EXP/OUT arrays above.
1872da489cd246702bee5938545b18a6f710ed214bcJamie Gennis  local I=$(inc_index)
1882da489cd246702bee5938545b18a6f710ed214bcJamie Gennis  local OUT=$(get_mock_output $I)
1892da489cd246702bee5938545b18a6f710ed214bcJamie Gennis  local EXP=$(get_expected_command $I)
1902da489cd246702bee5938545b18a6f710ed214bcJamie Gennis  echo "#############################" >> $TEST_OUTPUT
1912da489cd246702bee5938545b18a6f710ed214bcJamie Gennis  echo "Com. Index:  $I" >> $TEST_OUTPUT
1922da489cd246702bee5938545b18a6f710ed214bcJamie Gennis  echo "Expected:    ${EXP}" >> $TEST_OUTPUT
1932da489cd246702bee5938545b18a6f710ed214bcJamie Gennis  echo "Actual:      git $@" >> $TEST_OUTPUT
1942da489cd246702bee5938545b18a6f710ed214bcJamie Gennis  echo "Mock Output: ${OUT}" >> $TEST_OUTPUT
1952da489cd246702bee5938545b18a6f710ed214bcJamie Gennis  echo "${OUT}"
1962da489cd246702bee5938545b18a6f710ed214bcJamie Gennis}
1972da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
1982da489cd246702bee5938545b18a6f710ed214bcJamie Gennismv() {
1992da489cd246702bee5938545b18a6f710ed214bcJamie Gennis  echo "#############################" >> $TEST_OUTPUT
2002da489cd246702bee5938545b18a6f710ed214bcJamie Gennis  echo "mv $@" >> $TEST_OUTPUT
2012da489cd246702bee5938545b18a6f710ed214bcJamie Gennis}
2022da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
2032da489cd246702bee5938545b18a6f710ed214bcJamie Gennissed() {
2042da489cd246702bee5938545b18a6f710ed214bcJamie Gennis  # Only calls to sed * -i * are mocked out.
2052da489cd246702bee5938545b18a6f710ed214bcJamie Gennis  echo "#############################" >> $TEST_OUTPUT
2062da489cd246702bee5938545b18a6f710ed214bcJamie Gennis  local arr=$@
2072da489cd246702bee5938545b18a6f710ed214bcJamie Gennis  if [[ "${arr[@]}" =~ "-i" || "${arr[${#arr[@]}-1]}" == "-i" ]]; then
2082da489cd246702bee5938545b18a6f710ed214bcJamie Gennis    echo "sed $@" >> $TEST_OUTPUT
2092da489cd246702bee5938545b18a6f710ed214bcJamie Gennis  else
2102da489cd246702bee5938545b18a6f710ed214bcJamie Gennis    echo "sed $@" >> $TEST_OUTPUT
2112da489cd246702bee5938545b18a6f710ed214bcJamie Gennis    command sed "$@"
2122da489cd246702bee5938545b18a6f710ed214bcJamie Gennis  fi
2132da489cd246702bee5938545b18a6f710ed214bcJamie Gennis}
2142da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
2152da489cd246702bee5938545b18a6f710ed214bcJamie Genniseditor() {
2162da489cd246702bee5938545b18a6f710ed214bcJamie Gennis  echo "#############################" >> $TEST_OUTPUT
2172da489cd246702bee5938545b18a6f710ed214bcJamie Gennis  echo "editor $@" >> $TEST_OUTPUT
2182da489cd246702bee5938545b18a6f710ed214bcJamie Gennis}
2192da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
2202da489cd246702bee5938545b18a6f710ed214bcJamie Genniscd() {
2212da489cd246702bee5938545b18a6f710ed214bcJamie Gennis  echo "#############################" >> $TEST_OUTPUT
2222da489cd246702bee5938545b18a6f710ed214bcJamie Gennis  echo "cd $@" >> $TEST_OUTPUT
2232da489cd246702bee5938545b18a6f710ed214bcJamie Gennis}
2242da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
2252da489cd246702bee5938545b18a6f710ed214bcJamie Gennisexport -f git
2262da489cd246702bee5938545b18a6f710ed214bcJamie Gennisexport -f mv
2272da489cd246702bee5938545b18a6f710ed214bcJamie Gennisexport -f sed
2282da489cd246702bee5938545b18a6f710ed214bcJamie Gennisexport -f cd
2292da489cd246702bee5938545b18a6f710ed214bcJamie Gennisexport -f editor
2302da489cd246702bee5938545b18a6f710ed214bcJamie Gennisexport EDITOR=editor
2312da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
2322da489cd246702bee5938545b18a6f710ed214bcJamie Gennis########## Invoke script with test stdin
2332da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
2342da489cd246702bee5938545b18a6f710ed214bcJamie Gennisfor i in "${INPUT[@]}"; do 
2352da489cd246702bee5938545b18a6f710ed214bcJamie Gennis    echo $i
2362da489cd246702bee5938545b18a6f710ed214bcJamie Gennisdone | tools/push-to-trunk.sh -c "path/to/chromium"
2372da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
2382da489cd246702bee5938545b18a6f710ed214bcJamie Gennisecho "Collected output:"
2392da489cd246702bee5938545b18a6f710ed214bcJamie Genniscommand cat $TEST_OUTPUT
2402da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
2412da489cd246702bee5938545b18a6f710ed214bcJamie Gennis########## Clean up
2422da489cd246702bee5938545b18a6f710ed214bcJamie Gennis
2432da489cd246702bee5938545b18a6f710ed214bcJamie Gennisrm -rf $TEST_OUTPUT
2442da489cd246702bee5938545b18a6f710ed214bcJamie Gennisrm -rf $INDEX
2452da489cd246702bee5938545b18a6f710ed214bcJamie Gennisrm -rf $MOCK_OUTPUT
2462da489cd246702bee5938545b18a6f710ed214bcJamie Gennisrm -rf $EXPECTED_COMMANDS
2472da489cd246702bee5938545b18a6f710ed214bcJamie Gennis