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