From 46cd26e7748a994310ed7e5e717280de89063fb4 Mon Sep 17 00:00:00 2001 From: Sebastian Goscik Date: Mon, 16 May 2016 17:17:26 +0100 Subject: [PATCH] BaseUiAutomation: Added functions for checking version strings Added splitVersion and compareVersions functions allow versions strings like "3.2.045" to be compared. Also fixed the build script to now copy to the correct folder --- wlauto/common/android/BaseUiAutomation.class | Bin 4182 -> 5862 bytes wlauto/external/uiauto/build.sh | 2 +- .../arm/wlauto/uiauto/BaseUiAutomation.java | 39 ++++++++++++++++++ 3 files changed, 40 insertions(+), 1 deletion(-) diff --git a/wlauto/common/android/BaseUiAutomation.class b/wlauto/common/android/BaseUiAutomation.class index 2683f4534b2f27d2ea696527c87283c81637d3e8..353201f68d9295455a1c15c45c20dfba64ff3b31 100644 GIT binary patch literal 5862 zcmb7IcVHXU9sZsr`Q-D3U?q0qI0+(T*p_WI6L27qgcuwgC&d{UT+)klu`iKz=5)%S zqzh>2V$(Lv7HHFvQs|IfToSsVrF%ekOEDDfqnH`htoM z+#kiGDjvfZ6?{p>a%sS0cwEJo@fEpzRW4ssu?An4%QxheZz}j!6yH{{O6s&6-%;>{ zd_Jk*x+uP@;(PeMy!-b5Dr{mrm5Wab2#ds5bLQn!bbdoz08v66YyeXP-Q#ujrmcZPMxw6ZG& zBDsuVj8INNQXJ@vAS+w${3MGl5Il;yWApW;(R(8 zl#nYa@p4IA%j%@GEm_CR^jbxs{|5&KwKkP8bi2nIOzDn-9}BoFyDWdpi$W#Ou6J>p zAz*2AjyzIB-etuxhYc&w;EDADH91GOoz2{m5w@+Ak#iAH#>XaalfJ9A4LxlzN;5r_ znHJHpbEjb&>5JSG-lNbNP(KYT(jp+t&B@m^ldv zF5i*M z8ZHBsUgVa^6X#$tRjBEH4{w&38*YFoSui&p5{)WFZ z<1%hC$JN?afNH z*+VqZBx2MmK>!xcE7ax=?u3?4|IPAebz!;9RFvZSWvls}=Y74a8k!E|&}4zo=`d)E%> zcAs&1-pHm57b{9yX0)}Ru=k3Oz?ne;AG*Ot?v>7!K_{00?ls@zryDkJrr(I$?O!6T zjwhsR6t}#|X>Msyvx%m75f9Lpr=sI@@{fp!ou?J2z}U0MuMZ;R-fUW6dWPLrL6^oHnhdU1w?xJUOf(_zkM9h{!!E<3Q%LU zTnf-eF{OZ$4tIvbhsi?Y@AV|6`ZhGUtU93gA>f!=UezE0e@(+&AfaNtM5j7kc zr3jsD!hFth8Sn5JU&B4=gVV-QM{{GnI-NX#f;8yYh!qJ0W-@YJzLMF z$W{Ck@(g^ks+#?Ow4wnR6yfxm_LqL{eIMAO^i6bK)dG@V?Xz3*#j{$ z06{*5FrQ0+cQ8uQ`nbooWPK8z8WQ@R^+8K_BSRHse7i{}6{;;Mbjo3V2Ge6>KtOFt zKy68Yhwv&g9A>_GusMTIK|bmj;;~Z;n76HLg6F|L)G#RJ#8Z9FMK!aew=m-I6I~3h zMt;|h;k47klIeUh?PS6%pyw9$H&z$0XcWz(Xz5hsotn^!+J>5juo1uI4lHSn6wunJ z6p-lej6RB3W0Wp#J9zB5@QT_)2-VjfMD-!mx`c<0JubPm`_#9iVH_R(vE;Ty=wZBK z42wsxBoL7Gh*7U?)bC=ZWIyIJnOc}gZA_vSOrw>ASQmECx)cjanpI$kSz+?VZbC3i zWQ@SU<#;o4t~Ungm$d}-<-8S@7MDDJEo?WR4$=D7(^@`lX5fy9xvBX?tAY+Y}AgqY|LCC1Rz*B_?uy84I^`fpW#`zX#m z8d^0capWE(5_6UmaDJP+-iJu|aB$-uM5+#79iq#g2$hqsgW&?DE0nL|?QCuDKr60i zg};Fn??!^;CIaea+I&4NyVdoCtbr=xye;c^8>@r#iOlbTl1~Q6=Q>&>_paxgOw=3r IRfQY>2Sdu>ssI20 delta 1468 zcmZ{k>r+)_6vlu1oCABG%`Qb|YzCOZgba{F4i~jhG13CmN-l|!gq$NDAdb;7v@$YM zu`I3K&F=RrrG`Oi+5KjH?pt4*KJ*tfP1Eyk5Y9ByhqK=IUGG}Y^Q`r*eSWX_wP@u0 zKWEMX%lO5mnm%LtU8)#xxWi?TlsW9OxzlFI#W4{McR8fZy4%I(ZkJ*9*z7ft_t@O) zl1rb>eP-R~aKBkcT=ICpMC>=a2W>_j9&#DUvxAs{7$9-Ye99S% z=s>Esr#oF#(c^KJ&ul*TIL8_!6jWR6tZf%g+Jb%N8$y`X5Y^iLSSSlnY zrb(>~P^#r!CZua=Afl+MS-dK)W1Voa6uqA772~ml8{`Yi+eni8)eb5^4!pt zN#@U$=d#M&RBOg-GBihLIifTN92*oB5o&&bym1D3zu%I3Rl-!TAkel#I4dboe=b*d zOb?8DSUiijcm~h-OgBQxC}0yeN@IccH*vF>AoMV%YpYbMqVKy1YiQ_5Y)|RT$QP zFxqAm@AexP)CE1iSd6Hr7paRebGUG9=Hd9$Uw}{7dxKViqEvLLN zH~h!W1Cv}fu4Cp1HDwT#WX{9|hUw`D32}>t(o|fLSCBDRn~17Qb93mo@yzU;!@!+r9&KB^-i6doZE!EO;KI6(IanMo*g7e(nmjO z1~{ZYNWs#*|}b(fGCrDYRasquj1-MAUofX1hM7VuAPQXG=zx WD7pl=RB$`!)#s5}%1%LrNd60Zm(9Nb diff --git a/wlauto/external/uiauto/build.sh b/wlauto/external/uiauto/build.sh index 96b8b7f2..074f245a 100755 --- a/wlauto/external/uiauto/build.sh +++ b/wlauto/external/uiauto/build.sh @@ -18,4 +18,4 @@ ant build -cp bin/classes/com/arm/wlauto/uiauto/BaseUiAutomation.class ../../common +cp bin/classes/com/arm/wlauto/uiauto/BaseUiAutomation.class ../../common/android diff --git a/wlauto/external/uiauto/src/com/arm/wlauto/uiauto/BaseUiAutomation.java b/wlauto/external/uiauto/src/com/arm/wlauto/uiauto/BaseUiAutomation.java index 4d26100b..8fd35df6 100644 --- a/wlauto/external/uiauto/src/com/arm/wlauto/uiauto/BaseUiAutomation.java +++ b/wlauto/external/uiauto/src/com/arm/wlauto/uiauto/BaseUiAutomation.java @@ -20,6 +20,10 @@ import java.io.File; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.concurrent.TimeoutException; +import java.util.Arrays; +import java.util.ArrayList; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import android.app.Activity; import android.os.Bundle; @@ -109,5 +113,40 @@ public class BaseUiAutomation extends UiAutomatorTestCase { throw new TimeoutException("Timed out waiting for Logcat text \"%s\"".format(searchText)); } } + + public Integer[] splitVersion(String versionString) { + String pattern = "(\\d+).(\\d+).(\\d+)"; + Pattern r = Pattern.compile(pattern); + ArrayList result = new ArrayList(); + + Matcher m = r.matcher(versionString); + if (m.find() && m.groupCount() > 0) { + for(int i=1; i<=m.groupCount(); i++) { + result.add(Integer.parseInt(m.group(i))); + } + } else { + throw new IllegalArgumentException(versionString + " - unknown format"); + } + return result.toArray(new Integer[result.size()]); + } + + //Return values: + // -1 = a lower than b + // 0 = a and b equal + // 1 = a greater than b + public int compareVersions(Integer[] a, Integer[] b) { + if (a.length != b.length) { + String msg = "Versions do not match format:\n %1$s\n %1$s"; + msg = String.format(msg, Arrays.toString(a), Arrays.toString(b)); + throw new IllegalArgumentException(msg); + } + for(int i=0; i b[i]) + return 1; + else if(a[i] < b[i]) + return -1; + } + return 0; + } }