summary: updated build scripts for testing.
.gitignore: added files created by new targets. build.xml: removed targets install and reinstall. modified target help to depend on android_rules.help and only explain targets defined here. updated target javadoc. added targets lint-xml, lint-html, and monkey. added private target -pre-clean to remove files created by new targets. tests/AndroidManifest.xml: updated note on running the tests. tests/ant.properties: removed test.runner as target test is now overridden. tests/build.xml: removed target test-report as it is now integrated with overridden target test. overrode target test to disable deleting coverage.em and use the new test runner. overrode target help to depend on android_rules.help and only explain targets defined here. added targets javadoc, lint-xml, lint-html, and artifacts. added private target -pre-clean to remove files created by new targets. tests/clean-tests.sh: new sh script to run through all the tests.
This commit is contained in:
parent
982f78fcc9
commit
a0ee0b1561
6 changed files with 374 additions and 63 deletions
14
.gitignore
vendored
14
.gitignore
vendored
|
@ -1,5 +1,13 @@
|
||||||
local.properties
|
|
||||||
bin
|
|
||||||
gen
|
|
||||||
.settings
|
.settings
|
||||||
|
bin
|
||||||
|
coverage
|
||||||
|
coverage.ec
|
||||||
|
coverage.em
|
||||||
|
gen
|
||||||
|
javadoc
|
||||||
|
junit-report.xml
|
||||||
|
lint-results.*ml
|
||||||
|
lint-results_files
|
||||||
|
local.properties
|
||||||
|
monkey.txt
|
||||||
*~
|
*~
|
||||||
|
|
164
build.xml
164
build.xml
|
@ -82,11 +82,11 @@
|
||||||
<!-- version-tag: custom -->
|
<!-- version-tag: custom -->
|
||||||
|
|
||||||
<!-- K9 CUSTOM STUFF -->
|
<!-- K9 CUSTOM STUFF -->
|
||||||
|
|
||||||
<!-- out folders for a parent project if this project is an instrumentation project -->
|
<!-- out folders for a parent project if this project is an instrumentation project -->
|
||||||
<property name="rclib" value="${out.dir}/K9RemoteControl.jar" />
|
<property name="rclib" value="${out.dir}/K9RemoteControl.jar" />
|
||||||
<property name="rcdir" value="com/fsck/k9/remotecontrol/**" />
|
<property name="rcdir" value="com/fsck/k9/remotecontrol/**" />
|
||||||
|
|
||||||
<!-- A bloody hack, but a useful and quick one -->
|
<!-- A bloody hack, but a useful and quick one -->
|
||||||
<target name="get-version">
|
<target name="get-version">
|
||||||
<exec executable="perl" failonerror="true" outputproperty="version-name" errorproperty="version-error">
|
<exec executable="perl" failonerror="true" outputproperty="version-name" errorproperty="version-error">
|
||||||
|
@ -95,14 +95,14 @@
|
||||||
</exec>
|
</exec>
|
||||||
<echo>Building version number ${version-name}</echo>
|
<echo>Building version number ${version-name}</echo>
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="get-version-from-git">
|
<target name="get-version-from-git">
|
||||||
<exec executable="git" failonerror="true" outputproperty="version-name" errorproperty="version-error">
|
<exec executable="git" failonerror="true" outputproperty="version-name" errorproperty="version-error">
|
||||||
<arg line="describe --tags"/>
|
<arg line="describe --tags"/>
|
||||||
</exec>
|
</exec>
|
||||||
<echo>Building version number ${version-name}</echo>
|
<echo>Building version number ${version-name}</echo>
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="set-version">
|
<target name="set-version">
|
||||||
<echo>Setting version to ${version-name}</echo>
|
<echo>Setting version to ${version-name}</echo>
|
||||||
<fail unless="version-name">You can't set the version without passing -Dversion-name=1.234</fail>
|
<fail unless="version-name">You can't set the version without passing -Dversion-name=1.234</fail>
|
||||||
|
@ -113,12 +113,12 @@
|
||||||
<arg line="-p -i.bak -e's/(?<=android:versionCode=")(\d+)(?=")/$1+1/e' AndroidManifest.xml" />
|
<arg line="-p -i.bak -e's/(?<=android:versionCode=")(\d+)(?=")/$1+1/e' AndroidManifest.xml" />
|
||||||
</exec>
|
</exec>
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<!-- rules -->
|
<!-- rules -->
|
||||||
<target name="bump-version" depends="set-version,commit-version">
|
<target name="bump-version" depends="set-version,commit-version">
|
||||||
<echo>Bumping K-9 to ${version-name}</echo>
|
<echo>Bumping K-9 to ${version-name}</echo>
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="commit-version">
|
<target name="commit-version">
|
||||||
<exec executable="git" failonerror="true">
|
<exec executable="git" failonerror="true">
|
||||||
<arg line="commit -m'Bumped manifest to ${version-name}' AndroidManifest.xml"/>
|
<arg line="commit -m'Bumped manifest to ${version-name}' AndroidManifest.xml"/>
|
||||||
|
@ -159,51 +159,30 @@
|
||||||
<arg value="bin/k9-${version-name}-release.apk" />
|
<arg value="bin/k9-${version-name}-release.apk" />
|
||||||
</exec>
|
</exec>
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<!-- Install the package on the default emulator -->
|
|
||||||
<target name="install" depends="debug">
|
|
||||||
<echo>Installing ${out.final.file} onto default emulator...</echo>
|
|
||||||
<exec executable="${adb}" failonerror="true">
|
|
||||||
<arg value="install" />
|
|
||||||
<arg path="${out.final.file}" />
|
|
||||||
</exec>
|
|
||||||
</target>
|
|
||||||
<!-- Re-Install the package on the default emulator -->
|
|
||||||
<target name="reinstall" depends="debug">
|
|
||||||
<echo>Reinstalling ${out.final.file} onto default emulator...</echo>
|
|
||||||
<exec executable="${adb}" failonerror="true">
|
|
||||||
<arg value="install" />
|
|
||||||
<arg value="-r" />
|
|
||||||
<arg path="${out.final.file}" />
|
|
||||||
</exec>
|
|
||||||
</target>
|
|
||||||
<target name="astyle">
|
<target name="astyle">
|
||||||
<exec executable="astyle" failonerror="true">
|
<exec executable="astyle" failonerror="true">
|
||||||
<arg line="--style=java --indent=spaces=4 --indent-switches --max-instatement-indent=4 --brackets=attach --add-brackets --convert-tabs --unpad-paren --pad-header --pad-oper --suffix=none --recursive 'src/com/fsck/k9/*.java' 'tests/src/com/fsck/k9/*.java'"/>
|
<arg line="--style=java --indent=spaces=4 --indent-switches --max-instatement-indent=4 --brackets=attach --add-brackets --convert-tabs --unpad-paren --pad-header --pad-oper --suffix=none --recursive 'src/com/fsck/k9/*.java' 'tests/src/com/fsck/k9/*.java'"/>
|
||||||
</exec>
|
</exec>
|
||||||
</target>
|
</target>
|
||||||
<target name="help">
|
|
||||||
|
<target name="help" depends="android_rules.help">
|
||||||
<!-- displays starts at col 13
|
<!-- displays starts at col 13
|
||||||
|13 80| -->
|
|13 80| -->
|
||||||
<echo>Android Ant Build. Available targets:</echo>
|
<echo>Additional targets:</echo>
|
||||||
<echo> help: Displays this help.</echo>
|
<!--echo> bump-version: ant -Dversion-name=3.123</echo>
|
||||||
<echo> debug: Builds the application and sign it with a debug key.</echo>
|
<echo> Bumps the project version to 3.123,tags and commits it.</echo>
|
||||||
<echo> release: Builds the application. The generated apk file must be</echo>
|
<echo> upload: Uploads a new release to google code.</echo-->
|
||||||
<echo> signed before it is published.</echo>
|
<echo> rclib: Creates library for remote control applications.</echo>
|
||||||
<echo> install: Installs the debug package onto a running emulator or</echo>
|
<echo> astyle: Make K-9's source look like it's supposed to.</echo>
|
||||||
<echo> device. This can only be used if the application has </echo>
|
<echo> eclipse: Apply template Eclipse settings.</echo>
|
||||||
<echo> not yet been installed.</echo>
|
<echo> javadoc: Javadoc output to javadoc/. ANDROID_HOME environment</echo>
|
||||||
<echo> reinstall: Installs the debug package on a running emulator or</echo>
|
<echo> variable must be set (i.e. /opt/android-sdk-linux/).</echo>
|
||||||
<echo> device that already has the application.</echo>
|
<echo> lint-xml: Lint output lint-results.xml.</echo>
|
||||||
<echo> The signatures must match.</echo>
|
<echo> lint-html: Lint output to lint-results.html.</echo>
|
||||||
<echo> uninstall: uninstall the application from a running emulator or</echo>
|
<echo> monkey: Runs monkey on the running emulator. Change the</echo>
|
||||||
<echo> device.</echo>
|
<echo> defaults -Dmonkey.seed=NUM and -Dmonkey.count=NUM</echo>
|
||||||
<echo> bump-version: ant -Dversion-name=3.123</echo>
|
<echo> from 0 and 200, respectively.</echo>
|
||||||
<echo> Bumps the project version to 3.123,tags and commits it</echo>
|
|
||||||
<echo> astyle: Make K-9's source look like it's supposed to</echo>
|
|
||||||
<echo> eclipse: Apply template Eclipse settings</echo>
|
|
||||||
<echo> javadoc: Create javadoc. Requires ANDROID_HOME environment</echo>
|
|
||||||
<echo> variable to be set (i.e. /opt/android-sdk-update-manager/)</echo>
|
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="eclipse" description="Apply template Eclipse settings">
|
<target name="eclipse" description="Apply template Eclipse settings">
|
||||||
|
@ -213,19 +192,110 @@
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<property environment="env" />
|
<property environment="env" />
|
||||||
|
|
||||||
|
<property name="javadoc-dir" location="javadoc" />
|
||||||
|
|
||||||
<target name="javadoc" description="build javadoc">
|
<target name="javadoc" description="build javadoc">
|
||||||
<mkdir dir="javadoc"/>
|
<mkdir dir="${javadoc-dir}"/>
|
||||||
<javadoc
|
<javadoc
|
||||||
destdir="javadoc"
|
destdir="${javadoc-dir}"
|
||||||
doctitle="K-9 Mail"
|
doctitle="K-9 Mail"
|
||||||
verbose="on"
|
verbose="on"
|
||||||
use="true"
|
use="true"
|
||||||
classpath="${env.ANDROID_HOME}/platforms/android-15/android.jar"
|
classpath="${env.ANDROID_HOME}/platforms/${target}/android.jar"
|
||||||
sourcepath="gen;src"
|
sourcepath="gen;src"
|
||||||
linkoffline="http://d.android.com/reference ${env.ANDROID_HOME}/docs/reference/"
|
linkoffline="http://d.android.com/reference ${env.ANDROID_HOME}/docs/reference/"
|
||||||
/>
|
/>
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
|
<target name="lint-xml">
|
||||||
|
<exec executable="lint" failonerror="true">
|
||||||
|
<arg value="--xml" />
|
||||||
|
<arg value="lint-results.xml" />
|
||||||
|
<arg path="." />
|
||||||
|
</exec>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="lint-html">
|
||||||
|
<exec executable="lint" failonerror="true">
|
||||||
|
<arg value="--html" />
|
||||||
|
<arg value="lint-results.html" />
|
||||||
|
<arg path="." />
|
||||||
|
</exec>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="monkey">
|
||||||
|
<xpath input="AndroidManifest.xml" expression="/manifest/@package" output="manifest.package" />
|
||||||
|
<if condition="monkey.count">
|
||||||
|
<else>
|
||||||
|
<property name="monkey.count" value="200" />
|
||||||
|
</else>
|
||||||
|
</if>
|
||||||
|
<if condition="monkey.seed">
|
||||||
|
<else>
|
||||||
|
<property name="monkey.seed" value="0" />
|
||||||
|
</else>
|
||||||
|
</if>
|
||||||
|
<exec executable="${adb}" output="monkey.txt" failonerror="true">
|
||||||
|
<arg line="${adb.device.arg}" />
|
||||||
|
<arg value="-e" />
|
||||||
|
<arg value="shell" />
|
||||||
|
<arg value="monkey" />
|
||||||
|
<arg value="-p" />
|
||||||
|
<arg value="${manifest.package}" />
|
||||||
|
<arg value="-v" />
|
||||||
|
<arg value="-s" />
|
||||||
|
<arg value="${monkey.seed}" />
|
||||||
|
<arg value="${monkey.count}" />
|
||||||
|
</exec>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<scriptdef name="lastindexplus1" language="javascript">
|
||||||
|
<attribute name="text" />
|
||||||
|
<attribute name="substring" />
|
||||||
|
<attribute name="property" />
|
||||||
|
<![CDATA[
|
||||||
|
var text = attributes.get("text");
|
||||||
|
var substring = attributes.get("substring");
|
||||||
|
project.setProperty(attributes.get("property"), text.lastIndexOf(substring) + 1);
|
||||||
|
]]>
|
||||||
|
</scriptdef>
|
||||||
|
|
||||||
|
<scriptdef name="substring" language="javascript">
|
||||||
|
<attribute name="text" />
|
||||||
|
<attribute name="start" />
|
||||||
|
<attribute name="end" />
|
||||||
|
<attribute name="property" />
|
||||||
|
<![CDATA[
|
||||||
|
var text = attributes.get("text");
|
||||||
|
var start = attributes.get("start");
|
||||||
|
var end = attributes.get("end") || text.length();
|
||||||
|
project.setProperty(attributes.get("property"), text.substring(start, end));
|
||||||
|
]]>
|
||||||
|
</scriptdef>
|
||||||
|
|
||||||
|
<!-- this, and the two scriptdefs above, are for CloudBees. see tests/build.xml -->
|
||||||
|
<target name="-artifactd" depends="-set-debug-files, -artifact" />
|
||||||
|
<target name="-artifacti" depends="-set-instrumented-mode, -artifact" />
|
||||||
|
<target name="-artifact">
|
||||||
|
<lastindexplus1 text="${env.GIT_BRANCH}" substring="/" property="lastindexof" />
|
||||||
|
<substring text="${env.GIT_BRANCH}" start="${lastindexof}" property="branch" />
|
||||||
|
<substring text="${env.GIT_COMMIT}" start="0" end="10" property="commit" />
|
||||||
|
|
||||||
|
<copy file="${out.final.file}"
|
||||||
|
tofile="${out.dir}/K9-${branch}-${env.BUILD_ID}-${commit}-${env.BUILD_NUMBER}.apk"
|
||||||
|
verbose="on"
|
||||||
|
/>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="-pre-clean" description="Removes testing output and javadoc">
|
||||||
|
<delete file="monkey.txt" verbose="${verbose}" />
|
||||||
|
<delete file="lint-results.xml" verbose="${verbose}" />
|
||||||
|
<delete file="lint-results.html" verbose="${verbose}" />
|
||||||
|
<delete dir="lint-results_files" verbose="${verbose}" />
|
||||||
|
<delete dir="${javadoc-dir}" verbose="${verbose}" />
|
||||||
|
</target>
|
||||||
|
|
||||||
<!-- END K-9 STUFF-->
|
<!-- END K-9 STUFF-->
|
||||||
<import file="${sdk.dir}/tools/ant/build.xml" />
|
<import file="${sdk.dir}/tools/ant/build.xml" />
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
<!--
|
<!--
|
||||||
This declares that this application uses the instrumentation test runner targeting
|
This declares that this application uses the instrumentation test runner targeting
|
||||||
the package of com.fsck.k9. To run the tests use the command:
|
the package of com.fsck.k9. To run the tests use the command:
|
||||||
"adb shell am instrument -w com.fsck.k9.tests/android.test.InstrumentationTestRunner"
|
"adb shell am instrument -w com.fsck.k9.tests/com.zutubi.android.junitreport.JUnitReportTestRunner"
|
||||||
-->
|
-->
|
||||||
<instrumentation android:name="com.zutubi.android.junitreport.JUnitReportTestRunner"
|
<instrumentation android:name="com.zutubi.android.junitreport.JUnitReportTestRunner"
|
||||||
android:targetPackage="com.fsck.k9"
|
android:targetPackage="com.fsck.k9"
|
||||||
|
|
|
@ -16,4 +16,3 @@
|
||||||
# The password will be asked during the build when you use the 'release' target.
|
# The password will be asked during the build when you use the 'release' target.
|
||||||
|
|
||||||
tested.project.dir=../
|
tested.project.dir=../
|
||||||
test.runner=com.zutubi.android.junitreport.JUnitReportTestRunner
|
|
||||||
|
|
197
tests/build.xml
197
tests/build.xml
|
@ -81,19 +81,194 @@
|
||||||
-->
|
-->
|
||||||
<!-- version-tag: custom -->
|
<!-- version-tag: custom -->
|
||||||
|
|
||||||
<target name="test-report">
|
<!-- K-9 CUSTOM STUFF -->
|
||||||
<xpath input="${tested.project.dir}/AndroidManifest.xml"
|
|
||||||
expression="/manifest/@package" output="tested.manifest.package" />
|
<property environment="env" />
|
||||||
<xpath input="AndroidManifest.xml"
|
|
||||||
expression="/manifest/@package" output="manifest.package" />
|
<property name="javadoc-dir" location="javadoc" />
|
||||||
<echo>Downloading XML test report...</echo>
|
|
||||||
<exec executable="${adb}" failonerror="true">
|
<target name="javadoc" description="build javadoc">
|
||||||
<arg line="${adb.device.arg}"/>
|
<mkdir dir="${javadoc-dir}"/>
|
||||||
<arg value="pull" />
|
<javadoc
|
||||||
<arg value="/data/data/${tested.manifest.package}/files/junit-report.xml" />
|
destdir="${javadoc-dir}"
|
||||||
<arg value="junit-report.xml" />
|
doctitle="K-9 Mail"
|
||||||
|
verbose="on"
|
||||||
|
use="true"
|
||||||
|
classpath="${env.ANDROID_HOME}/platforms/${target}/android.jar"
|
||||||
|
sourcepath="gen;src"
|
||||||
|
linkoffline="http://d.android.com/reference ${env.ANDROID_HOME}/docs/reference/"
|
||||||
|
/>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="lint-xml">
|
||||||
|
<exec executable="lint" failonerror="true">
|
||||||
|
<arg value="--xml" />
|
||||||
|
<arg value="lint-results.xml" />
|
||||||
|
<arg path="." />
|
||||||
</exec>
|
</exec>
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
|
<target name="lint-html">
|
||||||
|
<exec executable="lint" failonerror="true">
|
||||||
|
<arg value="--html" />
|
||||||
|
<arg value="lint-results.html" />
|
||||||
|
<arg path="." />
|
||||||
|
</exec>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<property name="junit-file" location="junit-report.xml" />
|
||||||
|
|
||||||
|
<!-- This is overridden because otherwise it deletes coverage.em after extraction, requiring
|
||||||
|
another compile. Also, test.runner can be changed here instead of in ant.properties, and
|
||||||
|
the code to pull the results is integrated. Changes are commented because from looking at
|
||||||
|
r20-preview, this might break and need to be redone. -->
|
||||||
|
<target name="test" depends="-test-project-check"
|
||||||
|
description="OVERRIDE: Runs tests from the package defined in test.package property">
|
||||||
|
|
||||||
|
<property name="tested.project.absolute.dir" location="${tested.project.dir}" />
|
||||||
|
|
||||||
|
<property name="test.runner" value="com.zutubi.android.junitreport.JUnitReportTestRunner" /><!-- changed from original -->
|
||||||
|
|
||||||
|
<!-- Application package of the tested project extracted from its manifest file -->
|
||||||
|
<xpath input="${tested.project.absolute.dir}/AndroidManifest.xml"
|
||||||
|
expression="/manifest/@package" output="tested.manifest.package" />
|
||||||
|
<xpath input="AndroidManifest.xml"
|
||||||
|
expression="/manifest/@package" output="manifest.package" />
|
||||||
|
|
||||||
|
<property name="emma.dump.file"
|
||||||
|
value="/data/data/${tested.manifest.package}/coverage.ec" />
|
||||||
|
|
||||||
|
<if condition="${emma.enabled}">
|
||||||
|
<then>
|
||||||
|
<echo>WARNING: Code Coverage is currently only supported on the emulator and rooted devices.</echo>
|
||||||
|
<run-tests-helper emma.enabled="true">
|
||||||
|
<extra-instrument-args>
|
||||||
|
<arg value="-e" />
|
||||||
|
<arg value="coverageFile" />
|
||||||
|
<arg value="${emma.dump.file}" />
|
||||||
|
</extra-instrument-args>
|
||||||
|
</run-tests-helper>
|
||||||
|
<echo>Downloading coverage file into project directory...</echo>
|
||||||
|
<exec executable="${adb}" failonerror="true">
|
||||||
|
<arg line="${adb.device.arg}" />
|
||||||
|
<arg value="pull" />
|
||||||
|
<arg value="${emma.dump.file}" />
|
||||||
|
<arg value="coverage.ec" />
|
||||||
|
</exec>
|
||||||
|
<echo>Extracting coverage report...</echo>
|
||||||
|
<emma>
|
||||||
|
<report sourcepath="${tested.project.absolute.dir}/${source.dir}"
|
||||||
|
verbosity="${verbosity}">
|
||||||
|
<!-- TODO: report.dir or something like should be introduced if necessary -->
|
||||||
|
<infileset dir=".">
|
||||||
|
<include name="coverage.ec" />
|
||||||
|
<include name="coverage.em" />
|
||||||
|
</infileset>
|
||||||
|
<!-- TODO: reports in other, indicated by user formats -->
|
||||||
|
<html outfile="coverage.html" />
|
||||||
|
</report>
|
||||||
|
</emma>
|
||||||
|
<!-- commented out from original
|
||||||
|
<echo>Cleaning up temporary files...</echo>
|
||||||
|
<delete file="coverage.ec" />
|
||||||
|
<delete file="coverage.em" />
|
||||||
|
-->
|
||||||
|
<echo>Saving the report file in ${basedir}/coverage/coverage.html</echo>
|
||||||
|
</then>
|
||||||
|
<else>
|
||||||
|
<run-tests-helper />
|
||||||
|
</else>
|
||||||
|
</if>
|
||||||
|
<!-- added for JUnitReportTestRunner: -->
|
||||||
|
<echo>Saving the JUnit test report as ${junit-file}</echo>
|
||||||
|
<exec executable="${adb}" failonerror="true">
|
||||||
|
<arg line="${adb.device.arg}"/>
|
||||||
|
<arg value="pull" />
|
||||||
|
<arg value="/data/data/${tested.manifest.package}/files/junit-report.xml" />
|
||||||
|
<arg value="${junit-file}" />
|
||||||
|
</exec>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<scriptdef name="lastindexplus1" language="javascript">
|
||||||
|
<attribute name="text" />
|
||||||
|
<attribute name="substring" />
|
||||||
|
<attribute name="property" />
|
||||||
|
<![CDATA[
|
||||||
|
var text = attributes.get("text");
|
||||||
|
var substring = attributes.get("substring");
|
||||||
|
project.setProperty(attributes.get("property"), text.lastIndexOf(substring) + 1);
|
||||||
|
]]>
|
||||||
|
</scriptdef>
|
||||||
|
|
||||||
|
<scriptdef name="substring" language="javascript">
|
||||||
|
<attribute name="text" />
|
||||||
|
<attribute name="start" />
|
||||||
|
<attribute name="end" />
|
||||||
|
<attribute name="property" />
|
||||||
|
<![CDATA[
|
||||||
|
var text = attributes.get("text");
|
||||||
|
var start = attributes.get("start");
|
||||||
|
var end = attributes.get("end") || text.length();
|
||||||
|
project.setProperty(attributes.get("property"), text.substring(start, end));
|
||||||
|
]]>
|
||||||
|
</scriptdef>
|
||||||
|
|
||||||
|
<target name="artifacts" description="Copies the apks as unique CloudBees artifacts">
|
||||||
|
<lastindexplus1 text="${env.GIT_BRANCH}" substring="/" property="lastindexof" />
|
||||||
|
<substring text="${env.GIT_BRANCH}" start="${lastindexof}" property="branch" />
|
||||||
|
<substring text="${env.GIT_COMMIT}" start="0" end="10" property="commit" />
|
||||||
|
|
||||||
|
<!-- calls ../build.xml -->
|
||||||
|
<property name="tested.project.absolute.dir" location="${tested.project.dir}" />
|
||||||
|
<condition property="my.project.target" value="-artifacti" else="-artifactd">
|
||||||
|
<isset property="emma.enabled" />
|
||||||
|
</condition>
|
||||||
|
<subant target="${my.project.target}" failonerror="true">
|
||||||
|
<fileset dir="${tested.project.absolute.dir}" includes="build.xml" />
|
||||||
|
</subant>
|
||||||
|
|
||||||
|
<!-- define out.final.file if not already defined (if calling without debug, for instance) -->
|
||||||
|
<condition property="out.final.file.isset" value="true" else="false">
|
||||||
|
<isset property="out.final.file" />
|
||||||
|
</condition>
|
||||||
|
<if condition="${out.final.file.isset}">
|
||||||
|
<else>
|
||||||
|
<property name="out.final.file"
|
||||||
|
location="${out.absolute.dir}/${ant.project.name}-debug.apk" />
|
||||||
|
</else>
|
||||||
|
</if>
|
||||||
|
|
||||||
|
<copy file="${out.final.file}"
|
||||||
|
tofile="${out.dir}/K9-${branch}-${env.BUILD_ID}-${commit}-${env.BUILD_NUMBER}-tests.apk"
|
||||||
|
verbose="on"
|
||||||
|
/>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="-pre-clean" description="Removes testing output">
|
||||||
|
<delete file="${junit-file}" verbose="${verbose}" />
|
||||||
|
<delete file="lint-results.xml" verbose="${verbose}" />
|
||||||
|
<delete file="lint-results.html" verbose="${verbose}" />
|
||||||
|
<delete dir="lint-results_files" verbose="${verbose}" />
|
||||||
|
<delete file="coverage.ec" verbose="${verbose}" />
|
||||||
|
<delete file="coverage.em" verbose="${verbose}" />
|
||||||
|
<delete dir="coverage" verbose="${verbose}" />
|
||||||
|
<delete dir="${javadoc-dir}" verbose="${verbose}" />
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="help" depends="android_rules.help">
|
||||||
|
<!-- displays starts at col 13
|
||||||
|
|13 80| -->
|
||||||
|
<echo>Additional targets:</echo>
|
||||||
|
<echo> javadoc: Javadoc output to javadoc/. ANDROID_HOME environment</echo>
|
||||||
|
<echo> variable must be set (i.e. /opt/android-sdk-linux/).</echo>
|
||||||
|
<echo> lint-xml: Lint output lint-results.xml.</echo>
|
||||||
|
<echo> lint-html: Lint output to lint-results.html.</echo>
|
||||||
|
<echo> test: Overridden -- also outputs junit-report.xml.</echo>
|
||||||
|
<echo> artifacts: Copies the apks as unique CloudBees artifacts. Usage:</echo>
|
||||||
|
<echo> ant [emma] [debug] artifacts</echo>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<!-- END K-9 CUSTOM STUFF -->
|
||||||
|
|
||||||
<import file="${sdk.dir}/tools/ant/build.xml" />
|
<import file="${sdk.dir}/tools/ant/build.xml" />
|
||||||
</project>
|
</project>
|
||||||
|
|
59
tests/clean-tests.sh
Executable file
59
tests/clean-tests.sh
Executable file
|
@ -0,0 +1,59 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# clean and run all the tests on an emulator -- only one emulator should be running (a device can be attached).
|
||||||
|
# will start and stop an emulator if no emulator is running.
|
||||||
|
# name of emulator is given as an argument (no spaces in the name!), or "api7" if not given.
|
||||||
|
# starting the emulator requires daemonize which requires a Unix-like system: http://software.clapper.org/daemonize/
|
||||||
|
|
||||||
|
# clean
|
||||||
|
ant all clean || exit 99
|
||||||
|
|
||||||
|
# see if emulator is running, and uninstall package if so
|
||||||
|
EMULATOR_ALREADY_RUNNING=false
|
||||||
|
if adb devices | grep emulator | grep device$; then
|
||||||
|
ant -Dadb.device.arg=-e uninstall || exit 98
|
||||||
|
EMULATOR_ALREADY_RUNNING=true
|
||||||
|
fi
|
||||||
|
|
||||||
|
# build project and test project
|
||||||
|
time ant emma debug artifacts || exit 1
|
||||||
|
|
||||||
|
# start emulator if not running, and uninstall package
|
||||||
|
if [ $EMULATOR_ALREADY_RUNNING == false ] ; then
|
||||||
|
if [ -z $1 ]; then
|
||||||
|
AVD_NAME=api7
|
||||||
|
else
|
||||||
|
AVD_NAME=$1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo starting emulator ${AVD_NAME}
|
||||||
|
daemonize -o /tmp/${AVD_NAME}.stdout -e /tmp/${AVD_NAME}.stderr -p /tmp/${AVD_NAME}.pid -l /tmp/${AVD_NAME}.lock \
|
||||||
|
$ANDROID_HOME/tools/emulator-arm -avd ${AVD_NAME} -no-audio -no-window -no-snapshot-save || exit 97
|
||||||
|
ps ux | grep -f /tmp/${AVD_NAME}.pid | grep emulator || exit 96
|
||||||
|
adb kill-server
|
||||||
|
time adb start-server
|
||||||
|
adb devices
|
||||||
|
#sleep 7
|
||||||
|
adb devices | grep emulator || exit 95
|
||||||
|
echo adb -e wait-for-device
|
||||||
|
time adb -e wait-for-device
|
||||||
|
adb devices | grep device$ || exit 94
|
||||||
|
ant -Dadb.device.arg=-e uninstall || exit 98
|
||||||
|
fi
|
||||||
|
|
||||||
|
# install project and test project, run tests
|
||||||
|
time ant -Dadb.device.arg=-e emma installd test || exit 2
|
||||||
|
|
||||||
|
# lint, javadoc, monkey
|
||||||
|
cd ..
|
||||||
|
time ant lint-xml || exit 3
|
||||||
|
time ant javadoc || exit 4
|
||||||
|
time ant -Dmonkey.count=200 -Dmonkey.seed=0 monkey || exit 5
|
||||||
|
|
||||||
|
# kill emulator if this script started it
|
||||||
|
if [ $EMULATOR_ALREADY_RUNNING == false ] ; then
|
||||||
|
adb emu kill || exit 93
|
||||||
|
sleep 1
|
||||||
|
! ps ux | grep -f /tmp/${AVD_NAME}.pid | grep emulator || exit 92
|
||||||
|
rm -f /tmp/${AVD_NAME}.stdout /tmp/${AVD_NAME}.stderr /tmp/${AVD_NAME}.pid /tmp/${AVD_NAME}.lock
|
||||||
|
fi
|
Loading…
Reference in a new issue