@@ -623,9 +623,9 @@ def run_tests(path_db, application, workload, path_dockerfile, only_build_docker
623
623
results = [None ] * NUMBER_GENERATE_REPLICAS
624
624
static_results_array = [None ]
625
625
for j in range (NUMBER_GENERATE_REPLICAS // NUMBER_PARALLEL_REPLICAS ):
626
- debug ("Starting replica batch (%d/%d)" % ((
626
+ debug ("Starting replica batch (%d/%d), batch size %d " % ((
627
627
j * NUMBER_PARALLEL_REPLICAS ) + NUMBER_PARALLEL_REPLICAS ,
628
- NUMBER_GENERATE_REPLICAS ))
628
+ NUMBER_GENERATE_REPLICAS , NUMBER_PARALLEL_REPLICAS ))
629
629
630
630
for i in range (NUMBER_PARALLEL_REPLICAS ):
631
631
t = threading .Thread (target = _run_test , args = (containername ,
@@ -784,7 +784,7 @@ def run_tests(path_db, application, workload, path_dockerfile, only_build_docker
784
784
with open (os .path .join (runpath , "data" , "static_binary.csv" ), "a+" ) as outf :
785
785
outf .write (static_results )
786
786
787
- debug ("Outputing additional reproducibility information..." )
787
+ debug ("Outputing additional reproducibility and debugging information..." )
788
788
789
789
with open (os .path .join (runpath , "cmd.txt" ), "a+" ) as outf :
790
790
outf .write (" " .join (sys .argv ))
@@ -801,6 +801,25 @@ def run_tests(path_db, application, workload, path_dockerfile, only_build_docker
801
801
outf .write (logf .read ())
802
802
repnum += 1
803
803
804
+ debug ("Checking explorer logs..." )
805
+ with open (os .path .join (runpath , "explore.logs" )) as logf :
806
+ content = logf .read ()
807
+ err = False
808
+
809
+ if "Final check analysis for faking failed; the entire set cannot" in content :
810
+ warning ("At least one replica reported issues when consolidating stubbing" )
811
+ warning ("and faking measurements. Please check %s." %
812
+ os .path .join (runpath , "explore.logs" ))
813
+ err = True
814
+
815
+ if "[E] " in content :
816
+ warning ("At least one replica reported an error. Please check %s."
817
+ % os .path .join (runpath , "explore.logs" ))
818
+ err = True
819
+
820
+ if not err :
821
+ debug ("explorer logs all OK." )
822
+
804
823
end = datetime .now ()
805
824
806
825
info ("Done! Full analysis last %s." % str (end - start ))
@@ -1329,6 +1348,7 @@ if (args.cmd == "generate"):
1329
1348
# check Dockerfile for obvious errors
1330
1349
# we just provide that as a quick sanity check for confused users
1331
1350
# hopefully this does reduce the amount of bug reports we get :)
1351
+ debug ("Checking Dockerfile..." )
1332
1352
with open (args .dockerfile ) as dockerf :
1333
1353
content = dockerf .read ()
1334
1354
if "loupe-base:latest" not in content :
@@ -1345,6 +1365,10 @@ if (args.cmd == "generate"):
1345
1365
"option, which is mandatory when using the loupe wrapper." % args .dockerfile )
1346
1366
exit (1 )
1347
1367
1368
+ if "--final-check" not in content :
1369
+ warning ("Dockerfile (%s) calls explore.py without the --final-check "
1370
+ "option, which is recommended." % args .dockerfile )
1371
+
1348
1372
# remove potential logs from previous runs
1349
1373
try :
1350
1374
os .remove (QUIET_LOG )
0 commit comments