From f5b2cbd7fbb251aec8d662672605d9cb902566a5 Mon Sep 17 00:00:00 2001 From: Mahesh KS Date: Sun, 9 Apr 2017 15:35:13 -0500 Subject: [PATCH 1/3] testing commit to a new branch called dev branch --- .../MethodTransformVisitor.java | Bin 2964 -> 2933 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/mahesh/myJavaAgent/MyTestJavaAgent/MethodTransformVisitor.java b/src/main/java/com/mahesh/myJavaAgent/MyTestJavaAgent/MethodTransformVisitor.java index 3a478aa47f36c1850377b9afb57eb82b4901cd39..97bb3a3c37fce74834d15981d7f6440fa86c7088 100644 GIT binary patch delta 12 TcmbOt{#9&)71QQOCTmUr9@_); delta 43 xcmew=Hbs1c6_cETzP>_kYDq?Zib8UJS!z*YdMc2SlarcUl9`{k*^ Date: Tue, 11 Apr 2017 10:58:19 -0500 Subject: [PATCH 2/3] Added hashmap(classname=>packageName,hashset of line numbers) improved performance slightly --- .../JUnitTestExecutionListener.java | 12 +-- .../myJavaAgent/MyTestJavaAgent/MapValue.java | 25 +++++ .../MethodTransformVisitor.java | Bin 2933 -> 3226 bytes .../MyTestJavaAgent/WriteToFile.java | 89 ++++++++++++------ ...moReadyAgent-1.0-jar-with-dependencies.jar | Bin 315704 -> 316896 bytes target/DemoReadyAgent-1.0.jar | Bin 12414 -> 13606 bytes .../JUnitTestExecutionListener.class | Bin 2527 -> 2540 bytes .../MyTestJavaAgent/MapValue.class | Bin 0 -> 1149 bytes .../MethodTransformVisitor.class | Bin 1912 -> 1733 bytes .../MyTestJavaAgent/WriteToFile$1.class | Bin 720 -> 720 bytes .../MyTestJavaAgent/WriteToFile.class | Bin 5363 -> 6704 bytes .../compile/default-compile/createdFiles.lst | 1 + 12 files changed, 92 insertions(+), 35 deletions(-) create mode 100644 src/main/java/com/mahesh/myJavaAgent/MyTestJavaAgent/MapValue.java create mode 100644 target/classes/com/mahesh/myJavaAgent/MyTestJavaAgent/MapValue.class diff --git a/src/main/java/com/mahesh/myJavaAgent/MyTestJavaAgent/JUnitTestExecutionListener.java b/src/main/java/com/mahesh/myJavaAgent/MyTestJavaAgent/JUnitTestExecutionListener.java index 15727a5..cace0d2 100644 --- a/src/main/java/com/mahesh/myJavaAgent/MyTestJavaAgent/JUnitTestExecutionListener.java +++ b/src/main/java/com/mahesh/myJavaAgent/MyTestJavaAgent/JUnitTestExecutionListener.java @@ -16,8 +16,8 @@ public void testRunStarted(Description description) throws Exception { public void testRunFinished(Result result) throws Exception { // System.out.println("XXX Number of tests executed: " + result.getRunCount()); - WriteToFile.addToQueue("Number of tests executed: " + result.getRunCount()); - WriteToFile.addToQueue("XXX"); + WriteToFile.addToQueue("Number of tests executed: " + result.getRunCount(),-100); + WriteToFile.addToQueue("XXX",-100); while (!WriteToFile.bqOutput.isEmpty()) { Thread.sleep(10); } @@ -26,7 +26,7 @@ public void testRunFinished(Result result) throws Exception { public void testStarted(Description description) throws Exception { // System.out.println("[TEST] "+description.getClassName()+": " + description.getMethodName()); - WriteToFile.addToQueue("[TEST] "+description.getClassName()+": " + description.getMethodName()); + WriteToFile.addToQueue("[TEST] "+description.getClassName()+": " + description.getMethodName(),-100); } public void testFinished(Description description) throws Exception { @@ -36,16 +36,16 @@ public void testFinished(Description description) throws Exception { public void testFailure(Failure failure) throws Exception { // System.out.println("Failed: " + failure.getDescription().getMethodName()); - WriteToFile.addToQueue("[TEST FAILURE]Failed: " + failure.getDescription().getMethodName()); + WriteToFile.addToQueue("[TEST FAILURE]Failed: " + failure.getDescription().getMethodName(),-100); } public void testAssumptionFailure(Failure failure) { // System.out.println("Failed: " + failure.getDescription().getMethodName()); - WriteToFile.addToQueue("Failed: " + failure.getDescription().getMethodName()); + WriteToFile.addToQueue("Failed: " + failure.getDescription().getMethodName(),-100); } public void testIgnored(Description description) throws Exception { // System.out.println("Ignored: " + description.getMethodName()); - WriteToFile.addToQueue("[TEST IGNORED] Ignored: " + description.getMethodName()); + WriteToFile.addToQueue("[TEST IGNORED] Ignored: " + description.getMethodName(),-100); } } diff --git a/src/main/java/com/mahesh/myJavaAgent/MyTestJavaAgent/MapValue.java b/src/main/java/com/mahesh/myJavaAgent/MyTestJavaAgent/MapValue.java new file mode 100644 index 0000000..efa64b9 --- /dev/null +++ b/src/main/java/com/mahesh/myJavaAgent/MyTestJavaAgent/MapValue.java @@ -0,0 +1,25 @@ +package com.mahesh.myJavaAgent.MyTestJavaAgent; + +import java.util.HashSet; + +public class MapValue { + String PackageName; + public String getPackageName() { + return PackageName; + } + public HashSet lineHashSet; + + public HashSet getLineHashSet() { + return lineHashSet; + } + public void setLineHashSet(HashSet lineHashSet) { + this.lineHashSet = lineHashSet; + } + public MapValue() { + this.lineHashSet = new HashSet(); + } + public MapValue(String packName) { + this.lineHashSet = new HashSet(); + this.PackageName = packName; + } +} diff --git a/src/main/java/com/mahesh/myJavaAgent/MyTestJavaAgent/MethodTransformVisitor.java b/src/main/java/com/mahesh/myJavaAgent/MyTestJavaAgent/MethodTransformVisitor.java index 97bb3a3c37fce74834d15981d7f6440fa86c7088..36f265a65fee96730ec7c6a93c42ed529aeb12d7 100644 GIT binary patch delta 324 zcmew=HcN7YJ|lNa`t2m#xug{sU^-CiABX4$vKI|#eRvoshX4jGD-`A z6o7aNwh9oL$!tu<^$I{xP@0sJnXFJ;l2`(ypyt7if$~dID@ru0xi~o?{ODMPlGNf7 zpkW{hz2btL%n}VHeI-q61$}+6P*G|@PGWMZV@{5SQcO&Wl8%BBP!?za7bnQlqSTVo zqC9!9DbXOK^m0=3(n~UQ4P*6yKFZYqsjb~?$>hPxq_01@k=>U`(|Yn+b{S2WM?eZd zCUNGL>6K*`XO?*80a0{#|af= diff --git a/src/main/java/com/mahesh/myJavaAgent/MyTestJavaAgent/WriteToFile.java b/src/main/java/com/mahesh/myJavaAgent/MyTestJavaAgent/WriteToFile.java index 539bb24..8ab3abe 100644 --- a/src/main/java/com/mahesh/myJavaAgent/MyTestJavaAgent/WriteToFile.java +++ b/src/main/java/com/mahesh/myJavaAgent/MyTestJavaAgent/WriteToFile.java @@ -6,18 +6,22 @@ import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; +import java.util.Iterator; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; public class WriteToFile implements Runnable { private boolean init = false; - public static BlockingQueue bqOutput = new ArrayBlockingQueue(100000); + public static BlockingQueue> bqOutput = new ArrayBlockingQueue>(1000); + public static BlockingQueue> testDetails = new ArrayBlockingQueue>(1000); private static Path outputFile; private static boolean createdFile; private static final String fileName = "LineCovFile.txt"; private static Runnable writeThread; private static Runnable writeToQ; - private static HashMap> currTestHash = new HashMap>(); + private static HashMap currTestHash = new HashMap(); + private static String testStart = "TestStart"; + private static String endRun = "EndRun"; // private static File outFile; public WriteToFile() { @@ -87,20 +91,37 @@ public void run() { BufferedWriter writer; try { writer = new BufferedWriter( new FileWriter( fileName)); - for (String line=bqOutput.take(); !line.startsWith("XXX"); line=bqOutput.take()) { + for (HashMap testHash=bqOutput.take(); !(testHash.containsKey(WriteToFile.endRun)); testHash=bqOutput.take()) { +// System.out.println("%%%%%%%%%%%% Writing new hashset to a file"); try { //Files.write(outputFile, Arrays.asList(line), Charset.forName("UTF-8"),StandardOpenOption.APPEND); - writer.write(line+"\n"); + //first print the testname and other details in the testStart hash key + if ( WriteToFile.testDetails.peek()!= null){ + HashMap thisTestDetails = WriteToFile.testDetails.take(); + writer.write(thisTestDetails.get(WriteToFile.testStart)); + } + //now write every hash + + for (String className: testHash.keySet()) { + String packageName = testHash.get(className).getPackageName(); + HashSet itrHash = testHash.get(className).getLineHashSet(); + Iterator hashItr = itrHash.iterator(); + while(hashItr.hasNext()) { + writer.write(packageName +" : " + hashItr.next()+"\n"); + } + } } catch (IOException e) { e.printStackTrace(); } } +// System.out.println("%%%%%%%%%%%% came out of the for loop"); writer.close(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } + } catch ( InterruptedException e) { Thread.currentThread().interrupt(); System.out.println("Interrupted via InterruptedIOException"); @@ -136,52 +157,62 @@ public static int getNumber(String text){ } public static String getChars(String text){ - String test = text.replaceAll("\\d", ""); - - return test.substring(test.lastIndexOf("/")+1); + String[] test = text.split("/"); //text.replaceAll("\\d", ""); + + return test[test.length-1].trim(); } //OLD addToQueue uncomment for commonUtils in 7 sec - public static void addToQueue(String string) { - String text = getChars(string); - int num = getNumber(string); + public static void addToQueue(String string, int num) { +// try { +// bqOutput.put(string+":"+num); +// } catch (InterruptedException e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// } +// } + String className = getChars(string); +// System.out.println("^^^^^^^^^^^^got classname as "+className); +// currTestHash = new HashMap>(); if (num==-100) { // System.out.println("^^^^^^^^^^^^got [TEST"); - currTestHash = new HashMap>(); try { - bqOutput.put(string); + bqOutput.put(currTestHash); +// System.out.println("^^^^^^^^^^added hash to the queue"); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } + if (string.startsWith("XXX")) { +// System.out.println("^^^^^^^^^^End of the test run"); + HashMap endRunHash = new HashMap(); + endRunHash.put(WriteToFile.endRun,new MapValue()); + bqOutput.add(endRunHash); + return; + } + currTestHash = new HashMap(); + HashMap testStart = new HashMap(); + testStart.put(WriteToFile.testStart, string); + WriteToFile.testDetails.add(testStart); return; } + // System.out.println("^^^^^^^^^^^^got text as "+text); // System.out.println("^^^^^^^^^^^^got num as "+num); - if (currTestHash.containsKey(text)) { + //HashSet existingList = currTestHash.get(className); + MapValue existingMap = currTestHash.get(className); + if (existingMap != null) { + HashSet existingList = existingMap.getLineHashSet(); // System.out.println("^^^^^^^^^^^^EXISITING TEXT HASH CHECK"); - ArrayList existingList = currTestHash.get(text); if (existingList.contains(num)) { // System.out.println("^^^^^^^^^^^^EXISITING TEXT AND NUMBER AND HASH CHECK^^^^^"); return; } else { - try { - bqOutput.put(string); - } catch (InterruptedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } existingList.add(num); } } else { - ArrayList newList = new ArrayList(); - newList.add(num); - currTestHash.put(text, newList); - try { - bqOutput.put(string); - } catch (InterruptedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } + MapValue newMap = new MapValue(string); + newMap.getLineHashSet().add(num); + currTestHash.put(className,newMap); } } } diff --git a/target/DemoReadyAgent-1.0-jar-with-dependencies.jar b/target/DemoReadyAgent-1.0-jar-with-dependencies.jar index 09f1b8c4897b04542fe445e0a9d435544eab764e..75a01a2e26d14f66db69667806add0285edc277d 100644 GIT binary patch delta 12207 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%0D3=^58Uv9(aJ5t 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 diff --git a/target/DemoReadyAgent-1.0.jar b/target/DemoReadyAgent-1.0.jar index 1122d4826c10e5effdac3723826e7c2aab29567d..ddbb1dba7a9fc988d760729ae6224fd2191e4fe1 100644 GIT binary patch delta 6636 zcmZ8`1yCGYur}@q?(XisNN{%v5CUOwSloRR2pilMcUd5~lf?rp5Zo<5f`kygUpJp_;{_JGGKtn=0z(zt+g%*)H+C7?om$0-#%pug%On1 zBDAv_JSiFcJ#;efM;$oqk@&Mkr=AD)ERn4K6vT$ z1X^U%%jpIAmg{srU)VUh7Tyh-)?(VBXm6?LD5DsH(uOTxP>^{+45zt*vV!euyy~mL zb(3lELl8G6`q54N=@|wvx?)Vz4Xt~3Npkia+%~>O3Gokk^#${)y{hc6rlhY? zM)6PESEn4{0rnKhM8^9odIKMk3HbPS%Shp{bp)qJ>sC&1SrKmbD;mmh&ES^i9A0}t zFdhzEauSzoqjmo?W4z0--)nh|e9>w+eyT6K$FpwR7*sl`JH*k!Y(r%LzB&ZB0ZMnv zX!iXsdN>ne^-B3j=ygms$M!)fT4BZ}kk+!Zz@Q|ibp4k(c>Zq{WVSVtqg!kS(R&$W2nd*fLosG_vZ#f`aOnNW(% zgNTQeR4?O83nwI*L+sAOm$$%dRec~l%28F>_`vlDd@a@=a6Vg%;exmlZ>|>SzRa_% z@ygM07Rn1YKgc>IHf(tCdFXd&=Jb_|j$L@;fwF>M2Y%@TZZ#8J_Almyyt^0%%f)0m z>(}ruUIg|=w`)zu4uqd`tRp{z=qy{k^y%rmv*taiLQd|Yi%c3xx0h%ogx7Ka+$9IS zWAM2Nv#NGf^|`YwAxDGq9KFPlZj7L!1Ft-h;|rdNs*83_eq5$udw$CHW7vLpY4Ep7 z%c5IyM|j_#M#H#4@mK9_7XTQzQ+%&X?bO@Sy{58f#+3PTU_jh=^#0uz4&TgV;%}db z=nn14QIVN1LXCOEb-k9!vk?6tzeuRi;I9f5WHo)lBrxeBhXxCnW^l{a+C5W(gm*By zuOor_BBbE{d87Dl&S1dn1Jy>Ruv`3QnXvdPr6ERuJ8khk!3^V%?t(<{RGyx~Id@Q4 z#K;Np9P(=kg=7B5hqXchw9}kr-5eT*+K5b8RxpL6ic`Ce6BRN1lB{&)@{dd`XDKN4 zmPz9{MV*DIr$8&-G9rTLr$t#%$&kma@9G7ofmVLqeoMM0_)M6UyAxuCjQgox1b#W99f{&eaP#iqyb( zz8PD4!ip822LbnWf)T0Cpz#C%W@wP7%%qRdsL$_7b7P?!n<4KX*ov(+beC6q2Bem` zQ%73^8NpjqpAed=&#ETG&Wu`&^^_{Yg~Yg)`duMEV~8=%U-*wtnVJTP!%5N+vZ1Bu zx6Z;BCCNrv*%~cGMaDmVSt{l^M-YIaIw}qmzj3Z4i$yAaGS^3GSEgmY<#kc@0=z~^JFHJEHP{wr~dFg=|R&EmmEAKnRlI`TgSeWqnc3_)A#Ov10#a^Nv#LHYr1NL0%NZ-o5#;fYM`JltYhEOfD% zn-bzN-n>gaO9{{rJqko_HOySxU%>y@<0a8X4w-cV|3nlR242quCTNe^Qy<(xZ_~&ILIH zf$jqPUXg^#^f?$+T8*l!?Wpu~-%$Vhz^bFubgo}52x#3~(+RZ=xOOs^JN*ij0^ z;x=>)+R+4K#+|1r%DLw}%^d+68zG1Krxn+<)Y~1?Faq2JTp_ zeT>~@$&soo$HDP3HLOptgDiu;Qb2lf%fWh|?})YSA!oI#ZX zKXg~A#NRW%^l~Z45&OehE8c3QXz&HrN||b9Hp04gb>M9kNlamfYn2SEEvS8^r+C7u zXlxl&K+U_tWEoWkVQeQdp0a}otihVO30{09x#{+-p1md5BvW@)o9cILIhqQ7%TvJM zZh28Q-eu94kuIwf@??h1o-#zrlST6k=*kbd2gDh@vk z*w?JCK82;OPJq3|I6NY_$3}=lZy2o9%3|PyWBq1|ud8tvf&6v$JApb4V^GwRgI4l_ zyzXxTPewm~_UF@_Fgluwm>}gYDuB{rh3@r&NtXPakeu;b38kbm{(ELvqQQcomJN+& z0NXwlj?iNbH@Eo+ER~IZx=)|d^8o)pMY!qvGkWyD2SH@wMAW|qluR21>!13Jv4wpF z{Y7C64%LVxx1SQ~yE9Xt(;;Cw?vv1@3ysrOr`66{Cz;u)ETIJ z3SBaLCk(kib-QWL68v4I?sI>Wx7PP#^qbj%$=*fqMa*5?<}xleqW8qE(p^ibOcrT$ zZ)ZVfMMI<}*p)fO#tOe-_5LZdK|?NYmQ_6WioY+vSJSITsHCd$pJ~(e*i1bzBtj7E zA58juIzN*|h~e|r@!O~>lLe9r32~(-mrqK>;_s39PthvkUEF<3%3;)g!7HPr5Lf;J zeA6TC=XB#VRry(jw^id2L9=GYVPsKg7;y$KHp2h@xspCJSY3ci*;=0mm~0J<>mw3j zkQ{K1g2FF1eU8>K%8~#h>=; zf6wXvcE@ng7z!yE-q|Wp zL~tZAXegk(b4ilJDm=6~Q^Q~r-WtPAYW?bbXx-8}?~LvQGB5sX=Y>Azr*FYrFVvB(RutZY)Fx;Zo z-$>%bq7AON?V%^%gM*Ih1vhm2Udm8rO`ym}W8f(cAzg*W2YZ?hgh~{zhmpET7p}{r zr-!=CSIwOG=y~m|l;G}-)6o+ zLfgCg%5WnWqGi6KcBKR+5#>1Isl5n!W&`4>5`AW_^$W~DWp9^Q*1ra+d)HAOZ8v@d zc61wFUu8eMT_nf34Pqu_b_}XQW&HjeTn}=sn+6$S+kU$32yb7e7DVHdLQgN{6sfv! z^e>@Ha7Vwe%J?)N2Tp3N>?Pkjz52DL(!8=V`zd>9v;+2Wuv?7Txvcu~1VctnIsG&- zK`5}jPrw)a*01XrTt1OWdnYSuD_J!`Uw8?1sVsc)V{P!6d#szEW?l%PqIkSc&KK6i z> zVS*^cL)ogg@sD*B1kZ&~YRc#s!yDtQ*js+sRwykAA*-tIVre;_kZbL7m#{VNI^?FIn@b8x@7yY^(8M z?F#wJs(7xU-rz&G0z$DrMGUMGsLk>W{T~VR6tG$1bPa}DJd|M6UZt$A6E=u*y&wx7d_$W6B)69)*)=aBFMi!cUx*gkc8QW#$(OTcS)>C>y(!Dacb^+~H9^}rs&MntRcyPI(wx~p z&@zrM9VTW=gHANt%;asz^EmW8ze=k8{OF4-PkwO7806%nqtMAZ*D^;QwNvtyYA^mb z9(79~Cpb&^4Ob12+z&L>khbf8yKG`4k8IruA?Pz0akCTzV6!UMvYq{q33H*B2L@{r z5{qn*5oe9;uk4MGb6cmdvBicI2imr|KBw-r$E}LVERL=ymLr@MdCgWPtmo8dLhPWH z);woKYU*+8H^^HUe5*1ruxyHpu13?9H!&Ml2r5QM&SwEVu%*j-a!+g}9`SOc6-K97r!nn`Hc$nBOfw+{DMheRRZzJN z%044h5}jtruJ|(;Pc1slwD%*ZhHYWGs~BwD>}1`=L717-x?@Tg{VSB23ZGIT{oO%p z>UE>ogJl_u{Q1HmWK!#`6{4TN{^O4>>6pe_El%}C^)Jw|k2PA~u%&pm&FGpgK3WvS zXd2)a)L0uk2d3K^S5WRj(H8`|M6WV{OJp%i`1AKr@->m%vkI!LYah#c!$hC_FJQ29 zduM5BYjkqn{D~XFIC?J$maJ3UGM(b{=k;DN^LK{bRw#Ez+lH+u*F0j*O;B75Q%&x- zU$e3g{U70pBl?^;3%>>+ev4DwL`n`osvYKDH4`8*uIWqkOlW0s{?q&!B*pdY$;}L# zFn!xn>(Cr(l{K~*fh*^fe!!-=dfYCbD@0Ve&U4&~e52Mr7E-J^Jz|_C#{w(!{$3W; zc|fBCzG+OGxMJTs`Xb)R?@V=|K*M+gJyRlIvo6UUlQHI;^d1olbuCqRyIXzntE|qP z&F-sZf}=jOio|ChGde6R9vwxWnE18#f`=@5MCrq0r9256Z|^Il#q+3~a^%_BXTtW` zeP30NT258AP5bpM%V^w5Oml*NzKzIZ?`koW9Ufm{Y27#6ecCu}4HyF{%Q(gu!uB=Z zgRRPQA=@EL2Jq#me6|5cN`sa^@cXBGWp=#^RqDHEnMy!sptJb-$U>_6WOEXsEsr!rXYZ z70r0}{{9q(q_NA2@1>ufnh~Mp=SkoCBNQ!TX!{T*MtL7}TLd^(*7?vs3qTu}al_hb zn>h5iU`~`G{(9X%uSW*%M?@_A5w6IS3bT=AMLlmb>9ycLl*qZ}uXmeZ*A{f`LZNT@ zEe#hs8XhGAM7`Q$@a+zxfC5%;A~I*D5-WlmvKL94JI-n6Kv=UFg=}d)y7VR6l-Rt~ zJNl!D48cqdU~s)eO|HMdg7piv0sCSMUlB2U&=jJMzM!uhItUgAG7Uv0JsOVoGllyI zN^%W1#l1E*jXobX(Qe0`iraSFR+n=2B-H(5s%!@0sG(c57Ohn**=~;X`85Kc75cJ` z7^+@w8I}QXAE}X=Y;65Tv*0`#M$-~X*9(s=A6j#G4jdGi*rQM>+Fr?uIFPs%yd#J~ zODKeUTE6&+5CHr0W8CR`VU?n&dX|Z{U}ukv+{s6!(aP)Ko&QQZQ_SR_LL{14;kQdl zny36U0_>1V@Q%b#kQv#RRZmomaeava0!s}F5jP{F5Kp%uh6(O3alqtYLCioEeL)^i z6E8|dQukHxee|CpcPpjr5z1tv`D^+*R;Bd(sJ0Fu7I@SeUPw>go-w4y+b@ofzeUlX z7Hx7;c^OLUF2M1eJ7mR-_$}FyrBbz}mNR|C(l7(1=_pd9nkQ$~(0nz`;`GLysZ>Ja zOX)FyXPoht;LEu3FV{lCyQCT+X_p(KkagdmOVmF?pc3F%vuiO_c13D?x&;B%I;Nh8 zol7)1e6V{@wq6_6B17ya9u|gLJDvAfsgoyj!{!H{r37$4oSL1D>|K(`syg@H5g`Ra zQ|cH*Y|Cg9O%f-~&359x2cg<6`LAVm?&Efjrh^Pr#N4bs4)*E+mab(%tD=I{OA)UV zI~FX+`$rh70ZE^ZKYy(BCT_bHKzGxrur_QE&j+90rx9hC>pEj^V$=DD;#Eo&X`HX4=_fjO(l(FYS%-|8n3*> za2BnI5T>^)PHVK%lnA$RI1znmc3W->pQlK77k9_f=4 zH&mOC`tSFF_^46xDgI84li@*o`2J1u4`TK~Mnal;Vl@H(i9e!xS`8;OgdZ15&rk9< z+5ZQ4|2J7X&Hp+}p+s{+tyq(*lu@NS^NJm`F${eE+=t E50Bb3egFUf delta 5456 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 diff --git a/target/classes/com/mahesh/myJavaAgent/MyTestJavaAgent/JUnitTestExecutionListener.class b/target/classes/com/mahesh/myJavaAgent/MyTestJavaAgent/JUnitTestExecutionListener.class index 63151f95cc23c5cccb24572921a2d551c200fbf0..39b3bca3ec91f81c3bf7e9188bbe30f2bcb2aee9 100644 GIT binary patch delta 424 zcmcaF{6=^K7pth4hEG;vS)zVUVqUs_a7j^SUb?mCW;s?aCeCUGCLm;BFrRG5F2*S^ zX9okP5SPH5$v*6ws?rQ13`z{547vXX<7=h53 rK^f>iS)gx1pzf4`xld+p3g4J83#2|ZSqleB|V@C8-Y?xK+OycTwo2d45~mL!T>e60cw-QIkM_Qp$5pp z+#~{Vljt@EVIT|QEObNF8DtnVkPMZD8!F3Sz+lM0$e;#v01J>-2Vx@zeIO|d6v41e zEQ$!*bbz+$;Du_y23uyy>+?>nh>g5tH8zKKnK`AKs z1N>3qGke!~iSdIUc6N4{dFFX$_UEr}KZxjvnt9659-I9FW$9s-9u+9X_v0)*5wvzL z?GMsXXL6_nt#_{EM`?M|cdV`sT;FLU#dCf2N=^n{r3Gz-DO2rwRun`|zUw-^)YAYU z&A&5_W4Nz9DVY3)%M!;gK!9o(x=m zN5PaHxD!D~9eXsihH{`L18X>Y17*(~ow=v zj;4XFUb;Nh(rGl2r~Dm?l%sr+3ba&;`Q?m7)Qtz%Q9ra6?er043I;GH|0;zwbSLf1q=w5_(iEQRm lU&3P%f<=U&42LAx20*s}yB!l#pNpx}eJqPt@xavX{suV7=|=zn literal 0 HcmV?d00001 diff --git a/target/classes/com/mahesh/myJavaAgent/MyTestJavaAgent/MethodTransformVisitor.class b/target/classes/com/mahesh/myJavaAgent/MyTestJavaAgent/MethodTransformVisitor.class index bea680626f7c46423f874e62a792968c5aaf918e..fb68abd0e9736621fee2f0f1df42dbb03e21aa12 100644 GIT binary patch delta 587 zcmXYtPfrt36vcnjb~>d#upJbUVg;?X6iWpQf>{3ngH_apiJG|TiqvQqK-lsjCT;J2o@#zH@KRz4x5=XYA+bhu?qC&VfbV1T3WSAx}tigd%q>ELvE~ zbB|V@WmYV`ZNj*toK%8rPdY)iDZ_1H zH)Ks}V`jL!s#=XX#j+U3WUcFns9yR(w*DQzbV@KF_l;#`BRZJ@d4q*QX}|?TMNUH( zj)r6D0T)#m_7vWqXk-dAQ LUZXs<*~rE}uUAEv delta 773 zcmaKp%}*0i6vcn@(aumGXr~2~f)+uYR%%5Nm5K_2iXz>@shsgoZ$%5`u1<_%C$l z+Pxvsk!a%1jem@5CUfq&Z|-^b-ZMYie|I!~{{8wL80MwJMT-c;=w_si zE-q;p)o?k+6|Tk@qoC7k4&yPYyRPAe%S|08G)!voEte^mX_wnNyQ5`y9cCQv8AR6R zs%td^Z+4~nwwhnvS_#Zo{oGd^<(Q(6` zM9sup(QB5K+s%;aK32$dC!4dvRjaB`I@+z?LvohmoZx^|d?2b-4NBS6XQJ6pL{i&0 z0q%PyBy0OdY~c%sgxUehYZpibbOam@IHC*UYp>G2t`K21=D2o diff --git a/target/classes/com/mahesh/myJavaAgent/MyTestJavaAgent/WriteToFile$1.class b/target/classes/com/mahesh/myJavaAgent/MyTestJavaAgent/WriteToFile$1.class index d9a7b978dd0eab68acdb38dd641dbe10ce902459..ba75527c76081194bddc6120db398f3243b0bf12 100644 GIT binary patch delta 23 ecmcb>dVzI=Hxr}WWFIC^Rz(JO2Bpcfn9Kl9o&}`< delta 23 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 T!rn}Mj*T3-lpBpEX%xH%A_ErR diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst index 44b259b..c1224c9 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -2,6 +2,7 @@ com/mahesh/myJavaAgent/MyTestJavaAgent/JUnitTestExecutionListener.class com/mahesh/myJavaAgent/MyTestJavaAgent/ClassTransformVisitor.class com/mahesh/myJavaAgent/MyTestJavaAgent/MyClassFileTransformer.class com/mahesh/myJavaAgent/MyTestJavaAgent/MyJavaAgent.class +com/mahesh/myJavaAgent/MyTestJavaAgent/MapValue.class com/mahesh/myJavaAgent/MyTestJavaAgent/WriteToFile$1.class com/mahesh/myJavaAgent/MyTestJavaAgent/MyRunner.class com/mahesh/myJavaAgent/MyTestJavaAgent/MethodTransformVisitor.class From b51076b97cfb91c7739300f27a7c77d25134b6f8 Mon Sep 17 00:00:00 2001 From: Mahesh KS Date: Sat, 15 Apr 2017 15:10:31 -0500 Subject: [PATCH 3/3] addded map value to improve performance Fails with joda time after 90% test execution. Need to remodel data structure --- .../JUnitTestExecutionListener.java | 12 ++-- .../MethodTransformVisitor.java | Bin 3226 -> 3477 bytes .../MyTestJavaAgent/WriteToFile.java | 68 ++++-------------- ...moReadyAgent-1.0-jar-with-dependencies.jar | Bin 316896 -> 317085 bytes target/DemoReadyAgent-1.0.jar | Bin 13606 -> 13795 bytes .../DemoReadyAgent/pom.properties | 2 +- .../JUnitTestExecutionListener.class | Bin 2540 -> 2576 bytes .../MethodTransformVisitor.class | Bin 1733 -> 2145 bytes .../MyTestJavaAgent/WriteToFile.class | Bin 6704 -> 6746 bytes .../compile/default-compile/inputFiles.lst | 1 + 10 files changed, 20 insertions(+), 63 deletions(-) diff --git a/src/main/java/com/mahesh/myJavaAgent/MyTestJavaAgent/JUnitTestExecutionListener.java b/src/main/java/com/mahesh/myJavaAgent/MyTestJavaAgent/JUnitTestExecutionListener.java index cace0d2..dc88b0d 100644 --- a/src/main/java/com/mahesh/myJavaAgent/MyTestJavaAgent/JUnitTestExecutionListener.java +++ b/src/main/java/com/mahesh/myJavaAgent/MyTestJavaAgent/JUnitTestExecutionListener.java @@ -16,8 +16,8 @@ public void testRunStarted(Description description) throws Exception { public void testRunFinished(Result result) throws Exception { // System.out.println("XXX Number of tests executed: " + result.getRunCount()); - WriteToFile.addToQueue("Number of tests executed: " + result.getRunCount(),-100); - WriteToFile.addToQueue("XXX",-100); + WriteToFile.addToQueue("Number of tests executed: " + result.getRunCount(),"",-100); + WriteToFile.addToQueue("XXX","",-100); while (!WriteToFile.bqOutput.isEmpty()) { Thread.sleep(10); } @@ -26,7 +26,7 @@ public void testRunFinished(Result result) throws Exception { public void testStarted(Description description) throws Exception { // System.out.println("[TEST] "+description.getClassName()+": " + description.getMethodName()); - WriteToFile.addToQueue("[TEST] "+description.getClassName()+": " + description.getMethodName(),-100); + WriteToFile.addToQueue("[TEST] "+description.getClassName()+": " + description.getMethodName(),"",-100); } public void testFinished(Description description) throws Exception { @@ -36,16 +36,16 @@ public void testFinished(Description description) throws Exception { public void testFailure(Failure failure) throws Exception { // System.out.println("Failed: " + failure.getDescription().getMethodName()); - WriteToFile.addToQueue("[TEST FAILURE]Failed: " + failure.getDescription().getMethodName(),-100); + WriteToFile.addToQueue("[TEST FAILURE]Failed: " + failure.getDescription().getMethodName(),"",-100); } public void testAssumptionFailure(Failure failure) { // System.out.println("Failed: " + failure.getDescription().getMethodName()); - WriteToFile.addToQueue("Failed: " + failure.getDescription().getMethodName(),-100); + WriteToFile.addToQueue("Failed: " + failure.getDescription().getMethodName(),"",-100); } public void testIgnored(Description description) throws Exception { // System.out.println("Ignored: " + description.getMethodName()); - WriteToFile.addToQueue("[TEST IGNORED] Ignored: " + description.getMethodName(),-100); + WriteToFile.addToQueue("[TEST IGNORED] Ignored: " + description.getMethodName(),"",-100); } } diff --git a/src/main/java/com/mahesh/myJavaAgent/MyTestJavaAgent/MethodTransformVisitor.java b/src/main/java/com/mahesh/myJavaAgent/MyTestJavaAgent/MethodTransformVisitor.java index 36f265a65fee96730ec7c6a93c42ed529aeb12d7..ed44f9f29d60e97daea41768de87bb54d8f2bc2b 100644 GIT binary patch delta 189 zcmbOwIaPWCC!=t3PGWJfUt(^mH5X@QUWr0ZX5M6N#;dGg@y(1(%h@2z$>%vlC-39f zGdY9v_vCCYZEj8n|FYDgqRf<3uE|TeG$x>u{Nb!MXfzC(;N+@tn YX5_2{+Nm`80QdIEl|0fcoV8rF0P)&CKmY&$ delta 136 zcmbO#Jxg)}CnIC-WIjg8$()QllNA^*GUjgn#<-k~J=ZTWH&xSmawCV#> bqOutput = new ArrayBlockingQueue>(1000); - public static BlockingQueue> testDetails = new ArrayBlockingQueue>(1000); + public static BlockingQueue> bqOutput = new ArrayBlockingQueue>(10000); + public static BlockingQueue> testDetails = new ArrayBlockingQueue>(10000); private static Path outputFile; private static boolean createdFile; private static final String fileName = "LineCovFile.txt"; @@ -128,51 +128,11 @@ public void run() { } } -// public static void addToQueue(String string) { -// if (currTestHash.contains(string)) { -// return; -// } -// if (string.startsWith("[")||string.startsWith("xxx")) { -// currTestHash.add(string); -// if (!currTestHash.isEmpty()) { -// for (String out: currTestHash) { -// try { -// bqOutput.put(out); -// } catch (InterruptedException e) { -// // TODO Auto-generated catch block -// e.printStackTrace(); -// } -// } -// } -// return; -// } -// currTestHash.add(string); -// } - public static int getNumber(String text){ - if (text.matches(".*\\d+.*")) { - return Integer.parseInt(text.replaceAll("\\D", "")); - } else { - return -100; + public static void addToQueue(String className, String packName, int num) { + //start of the class line so skipping it + if (num == 0) { + return; } - } - - public static String getChars(String text){ - String[] test = text.split("/"); //text.replaceAll("\\d", ""); - - return test[test.length-1].trim(); - } - //OLD addToQueue uncomment for commonUtils in 7 sec - public static void addToQueue(String string, int num) { -// try { -// bqOutput.put(string+":"+num); -// } catch (InterruptedException e) { -// // TODO Auto-generated catch block -// e.printStackTrace(); -// } -// } - String className = getChars(string); -// System.out.println("^^^^^^^^^^^^got classname as "+className); -// currTestHash = new HashMap>(); if (num==-100) { // System.out.println("^^^^^^^^^^^^got [TEST"); try { @@ -182,7 +142,7 @@ public static void addToQueue(String string, int num) { // TODO Auto-generated catch block e.printStackTrace(); } - if (string.startsWith("XXX")) { + if (className.startsWith("XXX")) { // System.out.println("^^^^^^^^^^End of the test run"); HashMap endRunHash = new HashMap(); endRunHash.put(WriteToFile.endRun,new MapValue()); @@ -191,26 +151,22 @@ public static void addToQueue(String string, int num) { } currTestHash = new HashMap(); HashMap testStart = new HashMap(); - testStart.put(WriteToFile.testStart, string); + testStart.put(WriteToFile.testStart, className); WriteToFile.testDetails.add(testStart); return; } - + // TODO: seeing negative numbers to adding this + num = num<0? -1*num : num; // System.out.println("^^^^^^^^^^^^got text as "+text); // System.out.println("^^^^^^^^^^^^got num as "+num); //HashSet existingList = currTestHash.get(className); MapValue existingMap = currTestHash.get(className); - if (existingMap != null) { + if (existingMap != null && existingMap.PackageName.equals(packName)) { HashSet existingList = existingMap.getLineHashSet(); // System.out.println("^^^^^^^^^^^^EXISITING TEXT HASH CHECK"); - if (existingList.contains(num)) { -// System.out.println("^^^^^^^^^^^^EXISITING TEXT AND NUMBER AND HASH CHECK^^^^^"); - return; - } else { existingList.add(num); - } } else { - MapValue newMap = new MapValue(string); + MapValue newMap = new MapValue(packName); newMap.getLineHashSet().add(num); currTestHash.put(className,newMap); } diff --git a/target/DemoReadyAgent-1.0-jar-with-dependencies.jar b/target/DemoReadyAgent-1.0-jar-with-dependencies.jar index 75a01a2e26d14f66db69667806add0285edc277d..33f6e8fc408de906f7fcd2b24e46226440d24841 100644 GIT binary patch delta 11650 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 ROfYL+WMo4Q@cx?Y{{bjswNwBA diff --git a/target/DemoReadyAgent-1.0.jar b/target/DemoReadyAgent-1.0.jar index ddbb1dba7a9fc988d760729ae6224fd2191e4fe1..f2182c4d7129c850ed852896f3356b9b2e3d7f6c 100644 GIT binary patch delta 6190 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 delta 5998 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 E7kO`0uK)l5 literal 2540 zcmbtW>sA|86#fpk8HQ;=E`ioq(whWY8jD)AU^PIf!2lM*rLAa($srj!nMvp3D*7fa z|NGnipr~v40KSZGpzbp>nS>_Ax}3E#`&{-u-`?Ne`%M1$>(}1_+{QBn7cnd0BLy9p zmGQBVcNNTGUW`5wuX_qU#b+|Iy(AaoUGn@BkYUHYF4pdgcww@a{2mrYE-8HQ z^JuZls~9fBVnMg7nW|RdZY5JaTG77MvSn_0nbo5rcfH1ZWs9)HQtmm|eb2D1g5i4H z;?5kyd5<h=V4H%T% zbDam)u7oX$Gs0XZ65NUaO|}8u;I40a0bY+2j2SMpLPcuilsGjGLlv_IK(M*28K&2FnzdmEP4k^tl-bRvPRE#sGW|cFWo?}?$1>Z1B++nyF7E#JRNC`*W6b~}b zOLtQ$wy`5&SH(j-5|hU&zQUe_uT^}5CsdKUyR@lcUxKcp1TNt~MHv+a>2Wc)S=>uW zFjO33kD)^x_*9G%!Cq=Pn=fo_&w{;8`*TcE=- zr7A6R(Qb>jZ+Suc=SB7B&pJ%@>=2S+INhp9a5Hbn){bL%yl972rf8*7(SG1_pGq## zCcwOCb$S2Uy6@F|a`svnFx?<#Mz<~9cN}ruESR?bl&UW{iJZ9-Fm9Ig@P-LA=bjV{OZif|;^LTS^j#Gn$di>BtfYg(1!IY-k~?p5qkIKSRv zeX17X20c%9r_N0g<1MyL8vlX))y5r7ccN%~LomC1y@N+7=K8=4zc#CVSiwl2sa}`VR{YM>HRL5 zbdj8(UmBCqVc(M!ht2+mj)yPNIoNfK?iPl5KzuWYD9B;*bp+E$;10%`T$+ttn#B}uyyDW$IKC&5OX<2x1EEWAkr*5d z$3rCQ?lpW6A9D~#6U3(AFr*?K5Xlo8ZP{xN*Eke`ijoaV97vQ4=k2i8q3~NpRC=!ZExb6I6_1O4ef<{r6yC^jxMyvVk&RV>L%k^_0= z2YBE|U@hWy^`RfYN3obWa$6@>AulX1k4AImvd^A5M}PhO@)dxO@qG-%Frq*bizp?r zfQyn#dE*-4L$v1%2|(>uCT+N7|l4Z||LO@aMv)pk0n-F&9Eyr1-@s=21R zqkCPu-7s9kvz^jdiV@& zD{#BovQ5?0y1Ls{&BI4T*PV`TdFsw#U3a~)cL}rZXqNkf?U=9e3WUr9fs6mSF~Vob zo-9_6p*ifoM%4em*a_|nQx@;&-d0z0h=|LhhK|olZjyW2hNu7R$%jjix&0uYnFDU; z+eQeS%~k>^s%lNWS7Ibl*V7!zxAaagfux_6V+2-$*c!{%^WBm)d*HP62L=y9#-Fv5 zO}xg3gi24&=3c)=Gvz9{fUgu>#hQXM_&`C1#R|^SDNYq#t69ncMUW?5 z8F{Tpa6Zfe5_}eDg+W#*hT~`R>G%+dYN7Bd(q11T`8ydy5?WF^oFQmS63(I@fNPS2 z7<~*?T&Hw`=XR9#H%v(|<$UG{)A>K4&_6oFdn0vfq^44tA>L=>EMBB%(y8=pc!+d9 zbM-mqm>nO&IVuhmh==P)QJD-CTE!>0i6S;olCUoL1>dk#md#?8%H(;2G6_CYBY?jU zK;C!p->}izbRaxx=lolA%ajZB!Jo!m>f;uXc8}^k#4T)(5mtPItccHOoeBG#;zGFf E50#<{^8f$< delta 732 zcmZWmO>fgc5Pj>9*a=&392#0uO3Fu@I88&KEtF6`+q8i|4oFl&T-?NzRKZBK8wvH0 z1HS-#LvZ33R3f3`z>N$4f`7mrftcM!2nnrr_RZ{@*?F_yt*;|bzWx6E1wa`M19K{L zAORbtIFh&^Oj($V30%T_0t;9a?qxx_BFvJBt0pQYt_g2hFs>W8Vc;f%{`~dMbS&QN zxIwW0{wIrmC>zn9S}jlD7Do!lImR%~F^aT-+Z=bWVqle{iZzb2ILEP$8pmDSi+-sq zEFDehDXW%$#8Jn6jt5v{Sbn3;L?5)xUUJ**x}}cmZI-z9IEqA~4^<-3 ziH2#ye8?K3jq3(OV1XuggLBYQ3}f*KK)l%RSs1M Ot5Q~h%PG#vlEpvUNNV%| diff --git a/target/classes/com/mahesh/myJavaAgent/MyTestJavaAgent/WriteToFile.class b/target/classes/com/mahesh/myJavaAgent/MyTestJavaAgent/WriteToFile.class index 6b9f29a00a33589de6f5cfad9a5aa5fc775c619e..c663dd49b32d85420b6ca632a65732334ba91ea1 100644 GIT binary patch delta 621 zcmYk3%WG3X7{z~cbMv|h(g>|w4Qfea(u63%xDl!w#RoN3(=?3*A!w+e@qxI}MOW61 zP~qaDwhK{f#0Q#OP1;851FRSo7w)=n=gR-Uh5B7>(ap@6@0{L)8kJ{;{lV1V8C=B{|<5S8YpfrOh4-L}J5>+lop!=oC?XVt$AIfX+P3iVEHSX5p zach;Q$4YpQ`h90h$4+KTm9jnI-S4u#8XJRDf@)C3gDS6vEO%hDD%hDo-qRTv5NT<& z?5Gu<^0^D8Q|GNKp{U&q^?JsZ&~eL6+uh#ZXK%sqflE`*!2IWO(g!R;w!4~G=437VyucD?vpg( zldni;Q;T$`o{~>C7@DL@vbS#6O+7qIp}}yWN{^G8Y*KW}!mcomhf~NEYA6D9Valjo zT$IP1W}U1O#XWiKePJI7Ul&FGF>9%@9-A1?*g}IHG}+56`$|!8H*P_kCjbBd delta 596 zcmYk2%WG3n5Qo2$d-J++VU$#F3W~;PNE;2Q^1u3os zD`!<&M6B8_6q{VVNsQLCii;{zA5nBK2>u5y)N^TzZsyDk-^_2$?_1YQm$C5s=`4^G z`Lc0H>^BJU$4^KQ;G+-*dztqMmq9>i22mauB%Kfyx&yckehH7kcj0w{+Zq+u+@ej2 z;99xId&cV-9J*L6^;?tPBbqkOg#2l2_KNH(krOd#2DXbHD;3Cjje88ai7n z4O*>Whi7;Z9k;ry8Lx3P-M)I_HvJVM71DJwE~fBh5;n);YmVET7$e#sTBvd|lc=z@ zK~m-2Hrc!yNz}=?$d{K1i}ZhNJibK5RwyOVY15HvlFTGtt7)5^yLD4#tNl7x zk!WgrSQgFTt`XL8hwG|8t+Gk(s!Z9-Juax%$?hvxg}SuC4b^ig&4coh8PU|FY?+%j XYCo#8{*gscgD16{AEq$9Z diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst index ad4f268..974a0bb 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -2,6 +2,7 @@ /Users/HA/Documents/workspace/MyTestJavaAgent3/src/main/java/com/mahesh/myJavaAgent/MyTestJavaAgent/MethodTransformVisitor.java /Users/HA/Documents/workspace/MyTestJavaAgent3/src/main/java/com/mahesh/myJavaAgent/MyTestJavaAgent/MyClassFileTransformer.java /Users/HA/Documents/workspace/MyTestJavaAgent3/src/main/java/com/mahesh/myJavaAgent/MyTestJavaAgent/MyJavaAgent.java +/Users/HA/Documents/workspace/MyTestJavaAgent3/src/main/java/com/mahesh/myJavaAgent/MyTestJavaAgent/MapValue.java /Users/HA/Documents/workspace/MyTestJavaAgent3/src/main/java/com/mahesh/myJavaAgent/MyTestJavaAgent/WriteToFile.java /Users/HA/Documents/workspace/MyTestJavaAgent3/src/main/java/com/mahesh/myJavaAgent/MyTestJavaAgent/ClassTransformVisitor.java /Users/HA/Documents/workspace/MyTestJavaAgent3/src/main/java/com/mahesh/myJavaAgent/MyTestJavaAgent/MyRunner.java