@@ -182,6 +182,7 @@ public int runTests() throws Exception {
182182
183183 HashSet <DrillTest > finalExecutionFailures = new HashSet <DrillTest >();
184184 HashSet <DrillTest > finalDataVerificationFailures = new HashSet <DrillTest >();
185+ HashSet <DrillTest > finalDataPrecisionFailures = new HashSet <DrillTest >();
185186 HashSet <DrillTest > finalPlanVerificationFailures = new HashSet <DrillTest >();
186187 HashSet <DrillTest > finalCancelledFailures = new HashSet <DrillTest >();
187188 HashSet <DrillTest > finalRandomFailures = new HashSet <DrillTest >();
@@ -190,6 +191,7 @@ public int runTests() throws Exception {
190191 int totalPassingTests = 0 ;
191192 int totalExecutionFailures = 0 ;
192193 int totalDataVerificationFailures = 0 ;
194+ int totalDataPrecisionFailures = 0 ;
193195 int totalPlanVerificationFailures = 0 ;
194196 int totalTimeoutFailures = 0 ;
195197 int totalCancelledFailures = 0 ;
@@ -203,6 +205,7 @@ public int runTests() throws Exception {
203205
204206 List <DrillTest > passingTests = Lists .newArrayList ();
205207 List <DrillTest > dataVerificationFailures = Lists .newArrayList ();
208+ List <DrillTest > dataPrecisionFailures = Lists .newArrayList ();
206209 List <DrillTest > planVerificationFailures = Lists .newArrayList ();
207210 List <DrillTest > executionFailures = Lists .newArrayList ();
208211 List <DrillTest > timeoutFailures = Lists .newArrayList ();
@@ -287,6 +290,9 @@ public int runTests() throws Exception {
287290 case DATA_VERIFICATION_FAILURE :
288291 dataVerificationFailures .add (test );
289292 break ;
293+ case DATA_PRECISION_FAILURE :
294+ dataPrecisionFailures .add (test );
295+ break ;
290296 case PLAN_VERIFICATION_FAILURE :
291297 planVerificationFailures .add (test );
292298 break ;
@@ -328,6 +334,9 @@ public int runTests() throws Exception {
328334 else if (dataVerificationFailures .contains (test )){
329335 dataVerificationFailures .remove (test );
330336 }
337+ else if (dataPrecisionFailures .contains (test )){
338+ dataPrecisionFailures .remove (test );
339+ }
331340 else if (planVerificationFailures .contains (test )){
332341 planVerificationFailures .remove (test );
333342 }
@@ -337,7 +346,7 @@ else if(timeoutFailures.contains(test)){
337346 }
338347 }
339348
340- if (executionFailures .size ()>0 || dataVerificationFailures .size ()>0 || planVerificationFailures .size ()>0 || timeoutFailures .size ()>0 ) {
349+ if (executionFailures .size ()>0 || dataVerificationFailures .size ()>0 || dataPrecisionFailures . size ()> 0 || planVerificationFailures .size ()>0 || timeoutFailures .size ()>0 ) {
341350 LOG .info ("\n " +DrillTestDefaults .LINE_BREAK +"\n ITERATION FAILURES\n " +DrillTestDefaults .LINE_BREAK );
342351 }
343352
@@ -357,6 +366,15 @@ else if(timeoutFailures.contains(test)){
357366 LOG .info (test .getException ().getMessage ());
358367 }
359368 }
369+
370+ if (dataPrecisionFailures .size ()>0 ) {
371+ LOG .info ("\n Data Precision Failures:\n " );
372+ for (DrillTest test : dataPrecisionFailures ) {
373+ LOG .info ("Query: " + test .getInputFile ()+ "\n " + test .getQuery ());
374+ LOG .info ("\n Baseline: " + test .getExpectedFile ());
375+ LOG .info (test .getException ().getMessage ());
376+ }
377+ }
360378
361379 if (planVerificationFailures .size ()>0 ) {
362380 LOG .info ("\n Plan Verification Failures:\n " );
@@ -390,7 +408,7 @@ else if(timeoutFailures.contains(test)){
390408 }
391409 }
392410
393- if (executionFailures .size ()>0 || dataVerificationFailures .size ()>0 || planVerificationFailures .size ()>0 || timeoutFailures .size ()>0 || randomFailures .size ()>0 ) {
411+ if (executionFailures .size ()>0 || dataVerificationFailures .size ()>0 || dataPrecisionFailures . size ()> 0 || planVerificationFailures .size ()>0 || timeoutFailures .size ()>0 || randomFailures .size ()>0 ) {
394412 LOG .info ("\n " +DrillTestDefaults .LINE_BREAK +"\n ITERATION RESULTS\n " +DrillTestDefaults .LINE_BREAK );
395413 }
396414
@@ -410,6 +428,13 @@ else if(timeoutFailures.contains(test)){
410428 }
411429 }
412430
431+ if (dataPrecisionFailures .size ()>0 ){
432+ LOG .info ("\n Data Precision Failures:\n " );
433+ for (DrillTest test : dataPrecisionFailures ) {
434+ LOG .info (test .getInputFile ());
435+ }
436+ }
437+
413438 if (planVerificationFailures .size ()>0 ){
414439 LOG .info ("\n Plan Verification Failures:\n " );
415440 for (DrillTest test : planVerificationFailures ) {
@@ -458,9 +483,10 @@ else if(timeoutFailures.contains(test)){
458483 LOG .info (DrillTestDefaults .LINE_BREAK +"\n ITERATION SUMMARY\n " +DrillTestDefaults .LINE_BREAK );
459484 LOG .info ("Total Tests : " + (countTotalTests *cmdParam .clones ));
460485 LOG .info ("Passing Tests : " + passingTests .size ());
461- LOG .info ("Failing Tests : " + (executionFailures .size () + dataVerificationFailures .size () + planVerificationFailures .size () + timeoutFailures .size ())+"\n " );
486+ LOG .info ("Failing Tests : " + (executionFailures .size () + dataVerificationFailures .size () + dataPrecisionFailures . size () + planVerificationFailures .size () + timeoutFailures .size ())+"\n " );
462487 LOG .info ("> Execution Failures : " + executionFailures .size ());
463488 LOG .info ("> Data Verification Failures : " + dataVerificationFailures .size ());
489+ LOG .info ("> Data Precision Failures : " + dataPrecisionFailures .size ());
464490 LOG .info ("> Plan Verification Failures : " + planVerificationFailures .size ());
465491 LOG .info ("> Timeout Failures : " + timeoutFailures .size ());
466492
@@ -490,13 +516,15 @@ else if(timeoutFailures.contains(test)){
490516 totalPassingTests += passingTests .size ();
491517 totalExecutionFailures += executionFailures .size ();
492518 totalDataVerificationFailures += dataVerificationFailures .size ();
519+ totalDataPrecisionFailures += dataPrecisionFailures .size ();
493520 totalPlanVerificationFailures += planVerificationFailures .size ();
494521 totalTimeoutFailures += timeoutFailures .size ();
495522 totalRandomFailures += randomFailures .size ();
496523 totalCancelledFailures += canceledTests .size ();
497524 finalRandomFailures .addAll (randomFailures );
498525 finalExecutionFailures .addAll (executionFailures );
499526 finalDataVerificationFailures .addAll (dataVerificationFailures );
527+ finalDataPrecisionFailures .addAll (dataPrecisionFailures );
500528 finalPlanVerificationFailures .addAll (planVerificationFailures );
501529 finalTimeoutFailures .addAll (timeoutFailures );
502530 }
@@ -505,7 +533,7 @@ else if(timeoutFailures.contains(test)){
505533 LOG .info (DrillTestDefaults .LINE_BREAK +"\n " +String .format ("\n Completed %d iterations.\n Passing tests: %d \n Random failures: %d \n " +
506534 " Execution Failures: %d\n Data Verification Failures: %d\n Plan Verification Failures: %d" +
507535 "\n Timeouts: %d\n Canceled: %d" , i -1 , totalPassingTests , totalRandomFailures ,totalExecutionFailures ,
508- totalDataVerificationFailures , totalPlanVerificationFailures , totalTimeoutFailures , totalCancelledFailures ));
536+ totalDataVerificationFailures , totalDataPrecisionFailures , totalPlanVerificationFailures , totalTimeoutFailures , totalCancelledFailures ));
509537 if (finalRandomFailures .size ()>0 ){
510538 LOG .info (DrillTestDefaults .LINE_BREAK +"\n Random Failures:" );
511539 for (DrillTest test : finalRandomFailures ){
@@ -534,6 +562,12 @@ else if(timeoutFailures.contains(test)){
534562 LOG .info (test .getInputFile ());
535563 }
536564 }
565+ if (finalDataPrecisionFailures .size ()>0 ){
566+ LOG .info (DrillTestDefaults .LINE_BREAK +"\n Data Precision Failures" );
567+ for (DrillTest test : finalDataPrecisionFailures ){
568+ LOG .info (test .getInputFile ());
569+ }
570+ }
537571 if (finalPlanVerificationFailures .size ()>0 ){
538572 LOG .info (DrillTestDefaults .LINE_BREAK +"\n Plan Verification Failures" );
539573 for (DrillTest test : finalPlanVerificationFailures ){
@@ -560,7 +594,7 @@ else if(timeoutFailures.contains(test)){
560594 executor .close ();
561595 connectionPool .close ();
562596 restartDrill ();
563- return totalExecutionFailures + totalDataVerificationFailures + totalPlanVerificationFailures + totalTimeoutFailures + totalRandomFailures ;
597+ return totalExecutionFailures + totalDataVerificationFailures + totalDataPrecisionFailures + totalPlanVerificationFailures + totalTimeoutFailures + totalRandomFailures ;
564598 }
565599
566600 public void setup () throws IOException , InterruptedException , URISyntaxException {
@@ -880,7 +914,8 @@ private void generateReports(List<DrillTest> tests, int iteration) {
880914 document .set ("status" , test .getTestStatus ().toString ());
881915 if (test .getTestStatus ().equals (TestStatus .EXECUTION_FAILURE )
882916 || test .getTestStatus ().equals (TestStatus .DATA_VERIFICATION_FAILURE )
883- || test .getTestStatus ().equals (TestStatus .PLAN_VERIFICATION_FAILURE )) {
917+ ||test .getTestStatus ().equals (TestStatus .DATA_PRECISION_FAILURE )
918+ || test .getTestStatus ().equals (TestStatus .PLAN_VERIFICATION_FAILURE )) {
884919 document .set ("errorMessage" , test .getException ().toString ().replaceAll ("\n " ,"" ));
885920 }else {
886921 document .set ("errorMessage" , "N/A" );
0 commit comments