4545DATA_DIR = "%s/data" % BASE_PATH
4646LOG_DIR = "%s/results" % BASE_PATH
4747
48- logger = logger_init (filepath = BASE_PATH ).getlogger ()
49-
5048
5149class TestSuite ():
5250 guest_add_args = ""
@@ -384,6 +382,30 @@ def run_test(testsuite, avocado_bin):
384382 return
385383
386384
385+ def log_files (log_dir ):
386+ """
387+ Log the test config files, input file, norun config files, command line.
388+ """
389+ with open (os .path .join (log_dir , "command.txt" ), "w" ) as fp :
390+ fp .write (" " .join (sys .argv ))
391+ fp .write ("\n " )
392+
393+ no_run_tests = os .path .join (log_dir , "no_run_tests" )
394+ helper .copy_file (NORUNTEST_PATH , no_run_tests )
395+
396+ config_path = os .path .join (log_dir , "test_configs" )
397+ for suite in args .run_suite .split (',' ):
398+ if 'host' in suite :
399+ helper .copy_file ("%s/%s.cfg" % (TEST_CONF_PATH , suite .replace ('_' , '/' , 1 )), config_path )
400+ elif 'guest' in suite :
401+ config_sub_path = os .path .join (config_path , suite .split ("_" )[1 ])
402+ helper .copy_file ("%s/%s.cfg" % (TEST_CONF_PATH , suite .replace ('_' , '/' , 2 )), config_sub_path )
403+
404+ if args .inputfile :
405+ input_file = os .path .join (log_dir , "input_file" )
406+ helper .copy_file (args .inputfile , input_file )
407+
408+
387409def env_clean ():
388410 """
389411 Clean/uninstall avocado and autotest
@@ -587,6 +609,21 @@ def parse_test_config(test_config_file, avocado_bin, enable_kvm):
587609 default = False , help = 'enable bootstrap kvm tests' )
588610
589611 args = parser .parse_args ()
612+
613+ if args .outputdir :
614+ # Check if it is valid path
615+ if not os .path .isdir (os .path .abspath (args .outputdir )):
616+ raise ValueError ("No output dir" )
617+ outputdir = args .outputdir
618+ else :
619+ outputdir = BASE_PATH
620+ timeObj = time .localtime (time .time ())
621+ log_dir = os .path .join (outputdir , "%d-%d-%d_%d_%d_%d" % (timeObj .tm_mday , timeObj .tm_mon , timeObj .tm_year ,
622+ timeObj .tm_hour , timeObj .tm_min , timeObj .tm_sec ))
623+ os .makedirs (log_dir )
624+ logger = helper .get_logger (log_dir )
625+ outputdir = os .path .join (log_dir , "results" )
626+
590627 if helper .get_machine_type () == 'pHyp' :
591628 args .enable_kvm = False
592629 if args .run_suite :
@@ -604,13 +641,6 @@ def parse_test_config(test_config_file, avocado_bin, enable_kvm):
604641 additional_args = args .add_args
605642 if args .verbose :
606643 additional_args += ' --show-job-log'
607- if args .outputdir :
608- # Check if it valid path
609- if not os .path .isdir (os .path .abspath (args .outputdir )):
610- raise ValueError ("No output dir" )
611- outputdir = os .path .join (args .outputdir , 'results' )
612- else :
613- outputdir = os .path .join (BASE_PATH , 'results' )
614644
615645 additional_args += ' --job-results-dir %s' % outputdir
616646 bootstraped = False
@@ -696,6 +726,10 @@ def parse_test_config(test_config_file, avocado_bin, enable_kvm):
696726 Testsuites [test_suite ].runstatus ("Cant_Run" ,
697727 "Config file not present" )
698728 continue
729+
730+ # Log config files
731+ log_files (log_dir )
732+
699733 # Run Tests
700734 for test_suite in Testsuites_list :
701735 if not Testsuites [test_suite ].run == "Cant_Run" :
@@ -711,7 +745,9 @@ def parse_test_config(test_config_file, avocado_bin, enable_kvm):
711745 Testsuites [test_suite ].run ,
712746 Testsuites [test_suite ].runsummary ))
713747 summary_output .append (Testsuites [test_suite ].runlink )
748+ summary_output .append ("" )
714749 logger .info ("\n " .join (summary_output ))
750+ logger .info ("Results and Configs logged at: %s" % log_dir )
715751
716752 if os .path .isdir ("/tmp/mux/" ):
717753 logger .info ("Removing temporary mux dir" )
0 commit comments