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