blob: 5aeca2e510966d6bf21c56012ac03f0c748af82b [file] [log] [blame]
#!/bin/bash
################################################################################
##
## Licensed to the Apache Software Foundation (ASF) under one or more
## contributor license agreements. See the NOTICE file distributed with
## this work for additional information regarding copyright ownership.
## The ASF licenses this file to You under the Apache License, Version 2.0
## (the "License"); you may not use this file except in compliance with
## the License. You may obtain a copy of the License at
##
## http://www.apache.org/licenses/LICENSE-2.0
##
## Unless required by applicable law or agreed to in writing, software
## distributed under the License is distributed on an "AS IS" BASIS,
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
## See the License for the specific language governing permissions and
## limitations under the License.
##
################################################################################
##
## mini_run.sh - does an ant run on subdirectories.
##
if [ $# -lt 1 ]
then
echo "usage: mini_run.sh [FLAGS] <dir>|<file> ... "
echo ""
echo " where <dir> represents a top-level test directory. For example: "
echo " components/Menu"
echo ""
echo " or where <file> represents a specific test file. For example: "
echo " components/Menu/Properties/Menu_Properties.mxml"
echo ""
echo " You can specify any number of directories or files. (Delimited by spaces)"
echo " if you designate -caseName, you should only indicate one file"
echo ""
echo " where [FLAGS] represents optional flags (before other args). Currently supported: "
echo ""
echo " -addAntArg=<-Darg=val> - pass this arg to the ant script. may be repeated."
echo ""
echo " -addArg=<compilerArg> - pass this arg to the compile for this run. may be repeated."
echo ""
echo " -all - run ALL TESTCASES locally. Report only failures. "
echo " No other args should be used. This takes a long while. "
echo ""
echo " -apollo - (AIR) compile and run for AIR"
echo ""
echo " -bug=<bugID> - excludes normally, but include testcases associated with <bugID>"
echo ""
echo " -branch=<branch> - fetch excludes for the given branch "
echo ""
echo " -browser - run in default browser"
echo ""
echo " -caseName=<testcase> - runs <testcase>, if you have also designated a file. "
echo ""
echo " -changes - run the tests in changes.properties (generated by MustellaTestChooser)"
echo ""
echo " -covtimeout - add a 30 second additional timeout to run. separate from other timeouts"
echo ""
echo " -createImages - mixin the CreateBitmapReferences, to create baselines image files"
echo ""
echo " -doCheck - insert tests to database, checking keywords & duplicate testIDs"
echo ""
echo " -debug - add \"-debug\" to swf compilation "
echo ""
echo " -failures - run tests that failed last run (mini_run run)"
echo " 'Timed out' type failures will not be rerun"
echo ""
echo " -hurricane - ZIP and SEND files to hurricane server to create baselines."
echo " Use regular file/directory arguments."
echo " Will not run the tests locally. "
echo ""
echo " -imageDiff - mixin the EnableRemoteImageDiff include, to debug image compares"
echo ""
echo " -keep - (AIR) keep generated xml files in apollo run"
echo ""
echo " -kw=<keyword> - limit run to test cases with <keyword>"
echo " You can optionally indicate directories or files with -kw flags."
echo ""
echo " -mail=name@address send mail, if any, to this address only"
echo ""
echo " -mobile - run mobile tests"
echo ""
echo " -myExcludes - do not fetch excludes from the database; use the ones already present in"
echo " qa/sdk/testsuites/mustella/tests"
echo ""
echo " -nofail - ignore failures and continue processesing. "
echo " REPORTS NO FAILURES. (useful for bitmap regeneration)"
echo ""
echo " -norun - don't run anything. If -doCheck, stop after that"
echo ""
echo " -port=<runner port> - specify a port that the Runner will listen on. Ordinarily"
echo " a user won't have to set this. "
echo " because this is passed at compile time as a mixin, the"
echo " only supported ports are 9999 and 10001"
echo ""
echo " -quick - Non-connectivity option: use existing excludes, skip cleanup"
echo ""
echo " -results=log - get results via flashlog. (server style. Not always possible)"
echo " -results=wire- get results over the wire. (the default)"
echo ""
echo " -retest=<bugID> - Run only the testcases associated with <bugID>. No file or dir args needed."
echo " This is a rather narrow sense of retest. Cannot be used detached from db"
echo ""
echo " -rerun - run cases already compiled. Useful if re-configuring runtimes"
echo " such as comparing standalone to browser, or browser to browser"
echo ""
echo " -skipExclude - run testcases, ignoring any exclusions in the database"
echo ""
echo " -smoke - run the testcases designated in smoke.properties. must"
echo " designate one or more directory arguments with this flag or use -all"
echo " also currently requires the presence of c:/tmp or /tmp on your machine"
echo " smoke.properties must be in the include text file format".
echo " designate directories or one or more smoke.properties files"
echo " for example: "
echo " ./mini_run.sh -smoke tests/components runs all of the smoke properties"
echo " found in the subdirectories under components"
echo " see: http://flexteam.macromedia.com/flexwiki/index.php/SDK:QA:mustella#Smoke_Tests"
echo " -sniffers - mixin ALL sniffers (Event,Mouse,Pixel,Object) and playback control"
echo ""
echo " -step_timeout=<seconds> - ADD <seconds> to every test case step to avoid timeouts. "
echo " useful in the context of running code coverage, etc. when "
echo " things can get rather slow"
echo ""
echo " -tier2 - run the testcases designated in tier2.properties files"
echo " See -smoke for expected behavior"
echo " "
echo ""
echo " -timeout=<seconds> - set global test timeout to <seconds> (an int value). "
echo ""
echo " -verbose - Show more console output"
echo ""
echo ""
echo ""
exit
fi
if [ "$ANT_HOME" = "" ]
then
echo "ANT_HOME is not set. Please set this variable"
exit
fi
propfile=properties/mustella_tmp.properties
inherit_propfile=properties/mustella1.properties
changes=0
hurricane=0
use_wire=true
propfileName=mustella_tmp
newFile=""
cleanFile=""
testName=""
seenFile=""
run_one_file=""
skipcheck=1;
skipexclude=false
imageDiff=0
sniffers=0
createImages=0
timeout=12000
smoke=""
print_passes=true
run_all=0
ant_target=run
browser_run=""
apollo_run=""
exit_on_compile_error=true
extra_arg=""
port=9999
keep=false
find_our_own_files=false
failed_only=0
no_run=0
beliteral=0
# local.properties should be optional
if [ -f "local.properties" ]
then
check_air=`egrep "use_apollo" local.properties | egrep -v "^#" | awk -F"=" '{print $2}'`
run_mobile_tests=`egrep "run_mobile_tests" local.properties | egrep -v "^#" | awk -F"=" '{print $2}'`
fi
os=`uname -s | tr '[A-Z]' '[a-z]'`
tmp=`echo $os | egrep "cygwin"`
if [ "$tmp" = "" ]
then
tmp=/tmp
else
tmp=c:/tmp
fi
mkdir $tmp 2>/dev/null
# arg_list=`echo "$*" | awk -f cleanup.awk `
# echo "here is the arg list: $arg_list"
# exit
for i in "$@"
do
if [ "$i" = "-docheck" ] || [ "$i" = "-doCheck" ]
then
skipcheck=0
continue
fi
if [ "$i" = "-skipexclude" ] || [ "$i" = "-skipExclude" ] || [ "$i" = "-skipexcludes" ] || [ "$i" = "-skipExcludes" ]
then
skipexclude=true
continue
fi
if [ "$i" = "-myExcludes" ]
then
antArgs="$antArgs -Dexcludes_done=true"
continue
fi
if [ "$i" = "-compileOnly" ]
then
compileOnly=1
continue
fi
if [ "$i" = "-changes" ]
then
changes=1
continue
fi
if [ "$i" = "-failures" ]
then
failed_only=1
tmp0=-includes=IncludeFileLocation
if [ "$extra_arg" = "" ]
then
extra_arg="${tmp0}"
else
extra_arg="${extra_arg} $tmp0"
fi
continue
fi
if [ "$i" = "-verbose" ]
then
beVerbose=true
antArgs="$antArgs -Ddebug=true"
continue
fi
if [ "$i" = "-hurricane" ]
then
echo "HURRICANE noted, no local run"
hurricane=1
fi
if [ "$i" = "-nofail" ]
then
extra_arg=" ${extra_arg} -includes=NoFail "
fi
if [ "$i" = "-imageDiff" ]
then
imageDiff=1
extra_arg=" ${extra_arg} -includes=EnableRemoteImageDiff "
timeout=1440000
continue
fi
if [ "$i" = "-rerun" ]
then
ant_target=rerun
continue
fi
if [ "$i" = "-results=log" ]
then
antArgs="$antArgs -Dresult_include=-includes=SendFormattedResultsToLog -Dget_results_from_log=true"
use_wire=false
continue
fi
if [ "$i" = "-results=wire" ]
then
## with vetting runs, use the log
if [ "$TEST_REVIEW" != "1" ]
then
antArgs="$antArgs -Dresult_include=-includes=SendResultsToRunner -Dget_results_from_log=false"
use_wire=true
fi
continue
fi
if [ "$i" = "-keep" ]
then
keep=true
continue
fi
if [ "$i" = "-apollo" ]
then
apollo_run=" -Duse_apollo=true"
check_air=true
continue
fi
if [ "$i" = "-mobile" ]
then
apollo_run=" -Duse_apollo=true -Drun_mobile_tests=true"
run_mobile_tests=true
continue
fi
if [ "$i" = "-browser" ]
then
browser_run=" -Duse_browser=true"
continue
fi
if [ "$i" = "-norun" ]
then
no_run=1
continue
fi
if [ "$i" = "-all" ]
then
run_all=1
skipcheck=1
timeout=45
propfileName=mustella1
exit_on_compile_error=false
break_early=1
continue
fi
if [ "$i" = "-createImages" ]
then
createImages=1
extra_arg=" ${extra_arg} -includes=CreateBitmapReferences "
continue
fi
if [ "$i" = "-sniffers" ]
then
sniffers=1
extra_arg=" ${extra_arg} -includes=SendResultsToSnifferClient,SendFormattedResultsToLog,PlaybackControl,VerboseMode,EventSnifferRemote,ObjectSnifferRemote,PixelSnifferRemote,MouseSnifferRemote "
# antArgs=" ${antArgs} -Dexit_include=false"
antArgs=" ${antArgs} -Dexit_include=-includes=UnitTester"
timeout=1440000
continue
fi
if [ "$i" = "-smoke" ]
then
target=smoke
smoke=1
extra_arg=" ${extra_arg} -includes=IncludeFileLocation"
rm $tmp/IncludeList.txt
continue
fi
if [ "$i" = "-tier2" ]
then
target=tier2
smoke=1
extra_arg=" ${extra_arg} -includes=IncludeFileLocation"
rm $tmp/IncludeList.txt
continue
fi
if [ "$i" = "-debug" ]
then
extra_arg=" ${extra_arg} -debug"
fi
if [ "$i" = "-covtimeout" ]
then
extra_arg=" ${extra_arg} -includes=CoverageTimeout"
antArgs="$antArgs -Dcoverage_timeout=30000"
fi
if [ "$i" = "-quick" ]
then
antArgs="$antArgs -Dexcludes_done=true -Dnoclean.set=true"
fi
startsArgWith=`echo $i | awk '{printf ("%s", substr($1, 0, 4))}'`
if [ "$startsArgWith" = "-kw=" ]
then
echo "we are here: $i"
tmp0=`echo "$i" | sed -e 's/-kw=//' -e 's/ /@/g'`
# tmp0=`echo "$i" | awk '{printf ("%s", substr($1, 5))}'`
echo "we are here: $tmp0"
if [ "$keyword_list" != "" ]
then
keyword_list="$keyword_list,$tmp0"
else
keyword_list="$tmp0"
fi
echo $keyword_list
fi
startsArgWith=`echo $i | awk '{printf ("%s", substr($1, 0, 5))}'`
if [ "$startsArgWith" = "-port" ]
then
port=`echo $i | awk '{printf ("%s", substr($1, 7))}'`
## we can only toggle port. the default is 9999;
## if we want to change it, toggle
if [ "$port" != "9999" ]
then
[ "$extra_arg" = "" ] && extra_arg=" -Duser_args=-includes=RunnerPortAlt" || extra_arg=" ${extra_arg} -includes=RunnerPortAlt"
fi
continue
fi
if [ "$startsArgWith" = "-mail" ]
then
recip=`echo $i | awk '{printf ("%s", substr($1, 7))}'`
mailto=" -Drecipients=$recip -Dqa_recipients=$recip -Dalways_recipients=$recip "
echo "saw -mail, set to: $mailto"
continue
fi
startsArgWith=`echo $i | awk '{printf ("%s", substr($1, 0, 8))}'`
if [ "$startsArgWith" = "-branch=" ]
then
aBranch=`echo $i | awk '{ printf ("%s", substr($1, index($1, "=")+1))}'`
useBranch=$aBranch
antArgs=" ${antArgs} -Dbranch_name=${aBranch}"
fi
if [ "$startsArgWith" = "-retest=" ]
then
theBugID=`echo $i | awk '{ printf ("%s", substr($1, index($1, "=")+1))}'`
antArgs=" ${antArgs} -Dbug_retry=${theBugID} "
find_our_own_files=true
tmp0=-includes=IncludeFileLocation
if [ "$extra_arg" = "" ]
then
extra_arg="${tmp0}"
else
extra_arg="${extra_arg} $tmp0"
fi
# used to continue, but allow users to narrow the run
fi
startsArgWith=`echo $i | awk '{printf ("%s", substr($1, 0, 5))}'`
if [ "$startsArgWith" = "-bug=" ]
then
theBugID=`echo $i | awk '{ printf ("%s", substr($1, index($1, "=")+1))}'`
antArgs=" ${antArgs} -Dbug_retry=${theBugID} "
continue
fi
startsArgWith=`echo $i | awk '{printf ("%s", substr($1, 0, 9))}'`
if [ "$startsArgWith" = "-caseName" ]
then
testName=`echo $i | awk '{printf ("%s", substr($1, 11))}'`
continue
fi
if [ "$startsArgWith" = "-timeout=" ]
then
timeout=`echo $i | awk '{printf ("%s", substr($1, 10))}'`
continue
fi
if [ "$startsArgWith" = "-addAntAr" ]
then
tmp0=`echo $i | awk '{printf ("%s", substr($1, 12))}'`
antArgs="$antArgs $tmp0"
continue
fi
if [ "$startsArgWith" = "-step_tim" ]
then
tmp0=`echo $i | awk '{printf ("%s", substr($1, 15))}'`
antArgs="$antArgs -Dstep_timeout=$tmp0"
continue
fi
startsArgWith=`echo $i | awk '{printf ("%s", substr($1, 0, 7))}'`
if [ "$startsArgWith" = "-addArg" ]
then
tmp0=`echo $i | awk '{printf ("%s", substr($1, 9))}'`
if [ "$extra_arg" = "" ]
then
extra_arg="${tmp0}"
else
extra_arg="${extra_arg} $tmp0"
fi
continue
fi
startsWith=`echo $i | awk '{
x=$1;
y=substr($1, 0, index($1, "/"));
if (index(y, "/") > 0)
printf ( "%s", substr(y, 0, length(y)-1) )
else
printf ( "%s", y)}'`
if [ "$startsWith" = "tests" ]
then
## trim it for Ant.
newi=`echo $i | awk '{printf ("%s", substr($1, 7))}'`
i=$newi
fi
### okay, we dug this up, if it's a -f, we should
### set a -D property for ant run_this_script.
### otherwise, run a whole directory
### the other args are the same, however. :(
mustellaTestDir=${MUSTELLA_TEST_DIR}
if [ ! -d "$mustellaTestDir" ]
then
mustellaTestDir="tests";
fi
tmpx=$mustellaTestDir/${i}
# echo "Looking for $tmpx"
end=`echo $tmpx | awk -F"." '{print $NF}'`
if [ ! -f "$tmpx" ] && [ ! -d "$tmpx" ]
then
continue
fi
## The case when a baseline or other asset gets checked in makes it difficult to
## know what test to run. Lacking such definition, we run
## all tests in that area.
if [ "$end" != "mxml" ] && [ ! -d "$tmpx" ]
then
dir=$tmpx
while :
do
## this fails if the name contains a SWF already.
## we're headed for a directory
correctspot=`ls $dir 2>/dev/null | egrep -i "SWFs|swfs"`
# echo "transform with correctspot: $correctspot"
#
# don't get fooled by files with "swf" in them
# move up until we find a swfs directory, or end up
# with nowhere to go
#
if [ "$correctspot" = "" ] || [ -f "$dir" ] && [ "$dir" != "." ]
then
# echo "doing dirname on $dir"
dir=`dirname $dir`
elif [ "$correctspot" != "" ] || [ "$dir" = "." ]
then
tmpx=$dir
# get rid of the leading /tests/
i=`echo $dir | awk '{printf ("%s", substr($1, 7))}'`
break
fi
done
# echo "result: $i"
fi
## if break_early, we probably don't want to descend into this stuff.
##
if [ "$break_early" = "1" ]
then
break
fi
if [ -f "$tmpx" ] || [ "$smoke" = "1" ]
then
# echo "It's a file"
### new.
# was:
dir=`dirname $i`
dir=`dirname $dir`
is_mobile_test=`echo $dir | egrep "mobile"`
has_air=`echo $dir | egrep "apollo"`
if [ "$check_air" = "true" ] && [ "$has_air" = "" ] && [ "$TEST_REVIEW" = "1" ] && [ "$run_mobile_tests" != "true" ]
then
echo "AIR vetting run, but directory $dir is not an air test. Will not run it"
continue
fi
if [ "${run_mobile_tests}" != "true" ] && [ "$is_mobile_test" != "" ]
then
echo "Not a mobile server, and $dir is a mobile directory. Will not run it"
continue
fi
if [ "${run_mobile_tests}" = "true" ] && [ "$is_mobile_test" = "" ]
then
echo "Mobile server, and $dir is not a mobile directory. Will not run it."
continue
fi
end=`echo $tmpx | awk -F"." '{print $NF}'`
## if it's not a .png file, just run the file. If it is a png file, we'll generalize the run
## to the directory (not knowing any better)
if [ "$end" != "png" ]
then
## append to a semicolon delimted list of individual files
if [ "$run_one_file" != "" ]
then
tmpz=`basename $i`
run_one_file="${run_one_file};${tmpz}"
else
run_one_file=`basename $i`
fi
fi
if [ "$smoke" = "1" ]
then
# constrain original directory
. ./make_smoke.sh $i $target
sdk_mustella_includes="${sdk_mustella_includes},${tmp_result}"
sdk_mustella_swfs="${sdk_mustella_swfs},${tmp_dir}"
else
sdk_mustella_includes="${sdk_mustella_includes},${i}"
sdk_mustella_swfs="${sdk_mustella_swfs},${dir}/**/*.swf"
fi
elif [ -d "$tmpx" ]
then
### Figure out where we might be.
### if this directory has .mxml or .png, we have to move up
### to include the swfs directory.
### anything else, we can assume they gave us the right thing
val=`ls $tmpx/*.mxml 2>/dev/null`
ret1=$?
val=`ls $tmpx/*.png 2>/dev/null`
ret2=$?
if [ $ret1 != 0 ] && [ $ret2 != 0 ]
then
beliteral=1
fi
dir=$tmpx
adjusted=0
lastdir=""
while :
do
if [ $beliteral = 1 ]
then
break
fi
correctspot=`ls $dir | egrep -i "SWFs|swfs"`
echo "at correctspot: $correctspot"
if [ "$correctspot" = "" ]
then
adjusted=1
dir=`dirname $dir`
[ "$beVerbose" = "true" ] && echo "at adjust dir: $dir"
[ "$dir" = "$lastdir" ] && echo "no change, abort" : lastdir=$dir
[ "$beVerbose" = "true" ] && echo " last dir: $lastdir"
[ "$lastdir" = "" ] && lastdir=$dir && echo "lastdir empty!"
else
## clean off the "tests" front
tmpx=$dir
dir=`echo $dir | awk '{printf ("%s", substr($1, 7))}'`
break
fi
done
# local.properties should be optional
if [ -f "local.properties" ] && [ "${run_mobile_tests}" != "true" ]
then
run_mobile_tests=`egrep "run_mobile_tests" local.properties | egrep -v "^#" | awk -F"=" '{print $2}'`
fi
is_mobile_test=`echo $dir | egrep "mobile"`
if [ "$check_air" = "true" ] && [ "$has_air" = "" ] && [ "$TEST_REVIEW" = "1" ] && [ "$run_mobile_tests" != "true" ]
then
echo "AIR vetting run, but directory $dir is not an air test. Will not run it"
continue
fi
if [ "${run_mobile_tests}" != "true" ] && [ "$is_mobile_test" != "" ]
then
echo "Not a mobile server, and $dir is a mobile directory. Will not run it"
continue
fi
if [ "${run_mobile_tests}" = "true" ] && [ "$is_mobile_test" = "" ]
then
echo "Mobile server, and $dir is not a mobile directory. Will not run it."
continue
fi
if [ $adjusted = 1 ]
then
## we need to add a swf directory
##
sdk_mustella_includes=${dir}/${correctspot}/**/*.mxml,${sdk_mustella_includes}
sdk_mustella_swfs=${dir}/${correctspot}/**/*.swf,${sdk_mustella_swfs}
fi
### can we lighten up about the commas? just have a leading comma, big deal
if [ "$sdk_mustella_includes" != "" ]
then
sdk_mustella_includes="${sdk_mustella_includes},${i}/**/*.mxml"
sdk_mustella_swfs="${sdk_mustella_swfs},${i}/**/*.swf"
else
sdk_mustella_includes="${i}/**/*.mxml"
sdk_mustella_swfs="${i}/**/*.swf"
fi
else
echo "Not found"
fi
done
### special case: the -smoke and -all case is problematic
if [ "$smoke" = "1" ] && [ "$run_all" = "1" ]
then
## special case, all and smoke
propfileName=mustella_tmp
print_passes=true
# make smoke sets tmp_result and tmp_dir
. ./make_smoke.sh tests $target
sdk_mustella_includes="${tmp_result}"
sdk_mustella_swfs="${tmp_dir}"
fi
rm $propfile 2>/dev/null
if [ "$sdk_mustella_includes" = "" ] && [ "$changes" = "0" ] && [ "$run_all" = "0" ] && [ "$find_our_own_files" = "false" ] && [ "$failed_only" = "0" ] && [ "$keyword_list" = "" ]
then
echo "Nothing was found to include. Will exit"
exit 1
fi
egrep "sdk.mustella.excludes" $inherit_propfile | awk -f clobber.awk > $propfile
egrep "apollo_only_excludes" $inherit_propfile | awk -f clobber.awk >> $propfile
if [ "$find_our_own_files" = "true" ]
then
echo "Querying for test files..."
$ANT_HOME/bin/ant -Dbug_retry=$theBugID query_from_bug_id
### if there's nothing to run, figure out the includes automatically.
### Otherwise, use what we're given
if [ "$sdk_mustella_includes" = "" ]
then
echo " " >> $propfile
echo " " >> $propfile
echo "sdk.mustella.swfs=**/*.swf" >> $propfile
sort -u tmp_mustella_tmp | egrep -v "rows affected" | awk 'BEGIN { printf ("sdk.mustella.includes=")}{printf ("%s,", $NF)}' >> $propfile
egrep -v "rows affected" ${tmp}/IncludeList.txt.tmp > ${tmp}/IncludeList.txt
else
egrep -v "rows affected" ${tmp}/IncludeList.txt.tmp > ${tmp}/IncludeList.txt
echo "sdk.mustella.includes=${sdk_mustella_includes}" >> $propfile
echo "sdk.mustella.swfs=${sdk_mustella_swfs}" >> $propfile
fi
elif [ "$failed_only" = "1" ]
then
input=failures.txt
list_of_files=`awk '{if (NF > 1) {print $1}}' $input | sort -u`
list_of_failed_swfs=`awk '{if (NF == 1) {print $1}}' $input | sort -u | awk -F 'mustella/tests/' '{print $2}'`
for i in $list_of_files
do
derived_swf=`dirname $i`
derived_swf=`dirname $derived_swf`
## create the ant fileset type includes
testfile="${i}.mxml";
echo $testfile
tmp0list="$tmp0list,$testfile"
## split on the word testSWF, then split on the quotes, take the middle and replace .mxml with .swf
swfname=`grep 'testSWF=' tests/$testfile | awk -F 'testSWF' '{print $2}' | awk -F '"' '{print $2}' | sed 's/\.mxml/\.swf/'`
swfname=`echo $swfname | sed 's_\.\.\/SWFs\/__'`
swfname=`echo $swfname | sed 's_\.\.\/swfs\/__'`
echo $swfname
if [ -d "tests/${derived_swf}/SWFs" ]
then
## backflips for windows because it will match either:
f_lower=`ls "tests/${derived_swf}" | egrep "swfs"`
[ $? = 0 ] && swf0list="$swf0list,$derived_swf/swfs/$swfname" || swf0list="$swf0list,$derived_swf/SWFs/$swfname"
## on unix(mac) the guess is that it would actually match correctly
elif [ -d "tests/${derived_swf}/swfs" ]
then
echo "Matched lower"
swf0list="$swf0list,$derived_swf/swfs/$swfname"
fi
done
for i in $list_of_failed_swfs
do
swf0list="$swf0list,${i}"
done
## write properties file
echo "sdk.mustella.includes=${tmp0list}" >> $propfile
# echo "sdk.mustella.swfs=**/*.swf" >> $propfile
echo "sdk.mustella.swfs=$swf0list" >> $propfile
## write include file
outfile=$tmp/IncludeList.txt
cat $input | sed -e '/^$/d' -e 's/ /$/' > $outfile
elif [ "$keyword_list" != "" ]
then
## this target calls a task that takes the keywords and
## creates an include list
## and uses any includes to limit the include set
echo "Feeding mustella includes: $sdk_mustella_includes"
if [ "$sdk_mustella_includes" = "" ]
then
"$ANT_HOME/bin/ant" write_keyword_includes -Dkeyword_list=$keyword_list
else
"$ANT_HOME/bin/ant" write_keyword_includes -Dkeyword_list=$keyword_list -Dsdk.mustella.includes="$sdk_mustella_includes"
fi
ret=$?
echo "Return from ant was: $ret"
if [ "$ret" != "0" ]
then
echo "Failure in the keyword run setup. See above errors. Sorry, exiting"
exit 1;
fi
egrep "sdk.mustella.includes" .tmp_file_list >> $propfile
## this one is a bit of a hack:
echo "sdk.mustella.swfs=**/*.swf" >> $propfile
here=`pwd`
## clean that out.
cleaning=`echo $here | egrep "cygdrive"`
if [ "$cleaning" != "" ]
then
# /cygdrive/c/depot_tmp/depot/flex/qa/sdk/testsuites/mustella
here=`echo $here | sed -e 's/\/cygdrive\/\([A-Za-z]\)/\1:/'`
fi
[ -d classes ] || mkdir classes
extra_arg="${extra_arg} -includes=CurrentIncludeList"
extra_arg="${extra_arg} -source-path+=${here}/classes";
### NEED THE ARGS
elif [ "$changes" = "1" ]
then
input=changes.txt
list_of_files=`awk '{{print $1}}' $input | sort -u`
for i in $list_of_files
do
derived_swf=`dirname $i`
derived_swf=`dirname $derived_swf`
## create the ant fileset type includes
testfile="${i}.mxml";
echo $testfile
tmp0list="$tmp0list,$testfile"
## split on the word testSWF, then split on the quotes, take the middle and replace .mxml with .swf
swfname=`grep 'testSWF=' tests/$testfile | awk -F 'testSWF' '{print $2}' | awk -F '"' '{print $2}' | sed 's/\.mxml/\.swf/'`
swfname=`echo $swfname | sed 's_\.\.\/SWFs\/__'`
swfname=`echo $swfname | sed 's_\.\.\/swfs\/__'`
echo $swfname
if [ -d "tests/${derived_swf}/SWFs" ]
then
## backflips for windows because it will match either:
f_lower=`ls "tests/${derived_swf}" | egrep "swfs"`
[ $? = 0 ] && swf0list="$swf0list,$derived_swf/swfs/$swfname" || swf0list="$swf0list,$derived_swf/SWFs/$swfname"
## on unix(mac) the guess is that it would actually match correctly
elif [ -d "tests/${derived_swf}/swfs" ]
then
echo "Matched lower"
swf0list="$swf0list,$derived_swf/swfs/$swfname"
fi
done
## write properties file
echo "sdk.mustella.includes=${tmp0list}" >> $propfile
# echo "sdk.mustella.swfs=**/*.swf" >> $propfile
echo "sdk.mustella.swfs=$swf0list" >> $propfile
else
echo "sdk.mustella.includes=${sdk_mustella_includes}" >> $propfile
echo "sdk.mustella.swfs=${sdk_mustella_swfs}" >> $propfile
fi
# echo "sdk.mustella.includes=${sdk_mustella_includes}"
# echo "sdk.mustella.swfs=${sdk_mustella_swfs}"
## defaults for results fetching.
# mini run defaults to over-the-wire results fetching (except for vetting (TEST_REVIEW))
if [ "$use_wire" = "true" ]
then
rezIsSet=`echo "$antArgs" | egrep "SendResultsToRunner"`
if [ "$rezIsSet" = "" ] && [ "$TEST_REVIEW" != "1" ]
then
antArgs="$antArgs -Dresult_include=-includes=SendResultsToRunner -Dget_results_from_log=false"
fi
fi
# avoid race to know where the build lives (hack)
mkdir build 2>/dev/null
mkdir build/lib 2>/dev/null
## give a run id so it doesn't bother getting one (we don't care).
if [ "$skipcheck" = "0" ] || [ "$TEST_REVIEW" = "1" ]
then
echo "Running testcase checks/inserts...."
## test review implies an attended, server run
if [ "$TEST_REVIEW" = "1" ]
then
echo "As test review"
echo "$ANT_HOME/bin/ant $mailto -Dfork_compile=true -Dsend_check_email=true -Dfeature=mustella_tmp -Dport=${port} insert_tests"
"$ANT_HOME/bin/ant" $mailto $antArgs -Dfork_compile=true -Dsend_check_email=true -Dfeature=mustella_tmp -Dport=${port} insert_tests
ret=$?
else
echo "$ANT_HOME/bin/ant $mailto $antArgs -Dfail_on_testcase_check=true -Dfork_compile=true -Dsend_check_email=false -Ddebug_insert=true -Dfeature=mustella_tmp -Dport=$port insert_tests"
"$ANT_HOME/bin/ant" $mailto $antArgs -Dfail_on_testcase_check=true -Dfork_compile=true -Dsend_check_email=false -Ddebug_insert=true -Dfeature=mustella_tmp -Dport=${port} insert_tests
ret=$?
fi
### NEED THE ARGS
if [ "$ret" != "0" ]
then
echo "Bad return from testcase check. exiting."
exit 1
fi
else
echo "Skipping testcase check"
fi
if [ "$TEST_REVIEW" = "1" ]
then
echo "Doing this as a Test Review."
ant_target=sendResults
## let it mail a compile error
## we'll do a comparison, so we need the database
timeout=45
echo $ANT_HOME/bin/ant -Dsave_failures=true $mailto -Dfork_compile=true -Drun_type=mini -Dexit_on_compile_error=false -Dinsert_results=true -Dfeature=mustella_tmp -Dsubject="$subject" -Dsocket_mixin=SocketAddress -Dport=${port} -Dauto_exclude=true -Dflex_version=$flex_version -Dbuild_version=$build_version -Duser_args=${extra_arg} $recipients $qa_recipients $always_recipients $antArgs -Dserver_time="$server_time" -Ddb_time="$db_time" $ant_target -Dplayer.timeout=$timeout $apollo_run
"$ANT_HOME/bin/ant" -Dsave_failures=true $mailto -Dfork_compile=true -Drun_type=mini -Dexit_on_compile_error=false -Dinsert_results=true -Dfeature=mustella_tmp -Dsocket_mixin=SocketAddress -Dport=${port} -Dauto_exclude=true -Dflex_version=$flex_version -Dbuild_version=$build_version -Duser_args=${extra_arg} $recipients $qa_recipients $always_recipients $antArgs -Dserver_time="$server_time" -Ddb_time="$db_time" $ant_target -Dplayer.timeout=$timeout $apollo_run
elif [ "$hurricane" = "1" ]
then
echo "hurricane!"
## the generalized swfs piece:
# tmp_hur=`echo ${sdk_mustella_swfs} | sed -e 's/\*\*/swfs/' -e 's/\*.swf/**/'`
tmp_hur=`echo ${sdk_mustella_swfs} | sed -e 's/\*\*/swfs/' -e 's/\*\*/swfs/' -e 's/\*.swf/**/'`
tmp_hur2=`echo ${sdk_mustella_swfs} | sed -e 's/\*\*/SWFs/'`
if [ "$useBranch" = "" ]
then
branchArg=""
else
branchArg="-Dbranch_name=$useBranch"
fi
$ANT_HOME/bin/ant zip_materials $branchArg -Dsdk.mustella.includes.send="${sdk_mustella_includes},${tmp_hur},${tmp_hur2}"
else
if [ "$compileOnly" = "1" ]
then
ant_target=compileLite
exit_on_compile_error=false
fi
if [ "$extra_arg" = "" ]
then
extra_arg="-includes=SetShowRTE"
else
extra_arg="${extra_arg} -includes=SetShowRTE"
fi
echo "Doing a regular mini run"
if [ "$beVerbose" = "true" ]
then
echo $ANT_HOME/bin/ant $mailto -Dfork_compile=true -Dcurrent.run.id=-1 -Dexit_on_compile_error=$exit_on_compile_error -Dinsert_results=false -Dokay_to_exit=true -Dskip_exclude=${skipexclude} -Dfeature=${propfileName} -Dinclude_list=${testName} -Dplayer.timeout=$timeout -Dprint_passes=$print_passes -Dsave_failures=true $browser_run $apollo_run -Duser_args="${extra_arg}" -Dport=${port} -Dflex_version=$flex_version -Dbuild_version=$build_version $antArgs $ant_target -Dkeep_air=$keep
fi
"$ANT_HOME/bin/ant" $mailto -Dfork_compile=true -Dcurrent.run.id=-1 -Dexit_on_compile_error=$exit_on_compile_error -Dinsert_results=false -Dokay_to_exit=true -Dskip_exclude=${skipexclude} -Dfeature=${propfileName} -Dinclude_list=${testName} -Dplayer.timeout=$timeout -Dprint_passes=$print_passes -Dsave_failures=true $browser_run $apollo_run -Duser_args="${extra_arg}" -Dport=${port} -Dflex_version=$flex_version -Dbuild_version=$build_version $antArgs -Dserver_time="$server_time" $ant_target -Dkeep_air=$keep
fi