@@ -757,12 +757,14 @@ def get_testcase(self, tc_name, phase, ts_name=None):
757757 """
758758 ts_names = self .started_suites .keys ()
759759 if ts_name :
760- if ts_name not in self .instance .testsuite .ztest_suite_names :
761- logger .warning (f"On { phase } : unexpected Ztest suite '{ ts_name } ' "
762- f"not present among: { self .instance .testsuite .ztest_suite_names } " )
760+ if self .trace and ts_name not in self .instance .testsuite .ztest_suite_names :
761+ # This can happen if a ZTEST_SUITE name is macro-generated
762+ # in the test source files, e.g. based on DT information.
763+ logger .debug (f"{ phase } : unexpected Ztest suite '{ ts_name } ' is "
764+ f"not present among: { self .instance .testsuite .ztest_suite_names } " )
763765 if ts_name not in self .detected_suite_names :
764766 if self .trace :
765- logger .debug (f"On { phase } : detected new Ztest suite '{ ts_name } '" )
767+ logger .debug (f"{ phase } : detected new Ztest suite '{ ts_name } '" )
766768 self .detected_suite_names .append (ts_name )
767769 ts_names = [ ts_name ] if ts_name in ts_names else []
768770
@@ -773,68 +775,74 @@ def get_testcase(self, tc_name, phase, ts_name=None):
773775 tc_fq_id = self .instance .compose_case_name (f"{ ts_name_ } .{ tc_name } " )
774776 if tc := self .instance .get_case_by_name (tc_fq_id ):
775777 if self .trace :
776- logger .debug (f"On { phase } : Ztest case '{ tc_name } ' matched to '{ tc_fq_id } " )
778+ logger .debug (f"{ phase } : Ztest case '{ tc_name } ' matched to '{ tc_fq_id } " )
777779 return tc
778780 logger .debug (
779- f"On { phase } : Ztest case '{ tc_name } ' is not known"
781+ f"{ phase } : Ztest case '{ tc_name } ' is not known"
780782 f" in { self .started_suites } running suite(s)."
781783 )
782784 tc_id = self .instance .compose_case_name (tc_name )
783785 return self .instance .get_case_or_create (tc_id )
784786
785- def start_suite (self , suite_name ):
787+ def start_suite (self , suite_name , phase = 'TS_START' ):
786788 if suite_name not in self .detected_suite_names :
787789 self .detected_suite_names .append (suite_name )
788- if suite_name not in self .instance .testsuite .ztest_suite_names :
789- logger .warning (f"Unexpected Ztest suite '{ suite_name } '" )
790+ if self .trace and suite_name not in self .instance .testsuite .ztest_suite_names :
791+ # This can happen if a ZTEST_SUITE name is macro-generated
792+ # in the test source files, e.g. based on DT information.
793+ logger .debug (f"{ phase } : unexpected Ztest suite '{ suite_name } ' is "
794+ f"not present among: { self .instance .testsuite .ztest_suite_names } " )
790795 if suite_name in self .started_suites :
791796 if self .started_suites [suite_name ]['count' ] > 0 :
792- logger .warning (f"Already STARTED '{ suite_name } ':{ self .started_suites [suite_name ]} " )
797+ # Either the suite restarts itself or unexpected state transition.
798+ logger .warning (f"{ phase } : already STARTED '{ suite_name } ':"
799+ f"{ self .started_suites [suite_name ]} " )
793800 elif self .trace :
794- logger .debug (f"START suite '{ suite_name } '" )
801+ logger .debug (f"{ phase } : START suite '{ suite_name } '" )
795802 self .started_suites [suite_name ]['count' ] += 1
796803 self .started_suites [suite_name ]['repeat' ] += 1
797804 else :
798805 self .started_suites [suite_name ] = { 'count' : 1 , 'repeat' : 0 }
799806
800- def end_suite (self , suite_name , phase = '' , suite_status = None ):
807+ def end_suite (self , suite_name , phase = 'TS_END ' , suite_status = None ):
801808 if suite_name in self .started_suites :
802809 if phase == 'TS_SUM' and self .started_suites [suite_name ]['count' ] == 0 :
803810 return
804811 if self .started_suites [suite_name ]['count' ] < 1 :
805812 logger .error (
806- f"Already ENDED { phase } suite '{ suite_name } ':{ self .started_suites [suite_name ]} "
813+ f"{ phase } : already ENDED suite '{ suite_name } ':{ self .started_suites [suite_name ]} "
807814 )
808815 elif self .trace :
809- logger .debug (f"END { phase } suite '{ suite_name } ':{ self .started_suites [suite_name ]} " )
816+ logger .debug (f"{ phase } : END suite '{ suite_name } ':{ self .started_suites [suite_name ]} " )
810817 self .started_suites [suite_name ]['count' ] -= 1
811818 elif suite_status == 'SKIP' :
812- self .start_suite (suite_name ) # register skipped suites at their summary end
819+ self .start_suite (suite_name , phase ) # register skipped suites at their summary end
813820 self .started_suites [suite_name ]['count' ] -= 1
814821 else :
815- logger .warning (f"END { phase } suite '{ suite_name } ' without START detected" )
822+ logger .warning (f"{ phase } : END suite '{ suite_name } ' without START detected" )
816823
817- def start_case (self , tc_name ):
824+ def start_case (self , tc_name , phase = 'TC_START' ):
818825 if tc_name in self .started_cases :
819826 if self .started_cases [tc_name ]['count' ] > 0 :
820- logger .warning (f"Already STARTED '{ tc_name } ':{ self .started_cases [tc_name ]} " )
827+ logger .warning (f"{ phase } : already STARTED case "
828+ f"'{ tc_name } ':{ self .started_cases [tc_name ]} " )
821829 self .started_cases [tc_name ]['count' ] += 1
822830 else :
823831 self .started_cases [tc_name ] = { 'count' : 1 }
824832
825- def end_case (self , tc_name , phase = '' ):
833+ def end_case (self , tc_name , phase = 'TC_END ' ):
826834 if tc_name in self .started_cases :
827835 if phase == 'TS_SUM' and self .started_cases [tc_name ]['count' ] == 0 :
828836 return
829837 if self .started_cases [tc_name ]['count' ] < 1 :
830838 logger .error (
831- f"Already ENDED { phase } case '{ tc_name } ':{ self .started_cases [tc_name ]} "
839+ f"{ phase } : already ENDED case '{ tc_name } ':{ self .started_cases [tc_name ]} "
832840 )
833841 elif self .trace :
834- logger .debug (f"END { phase } case '{ tc_name } ':{ self .started_cases [tc_name ]} " )
842+ logger .debug (f"{ phase } : END case '{ tc_name } ':{ self .started_cases [tc_name ]} " )
835843 self .started_cases [tc_name ]['count' ] -= 1
836844 elif phase != 'TS_SUM' :
837- logger .warning (f"END { phase } case '{ tc_name } ' without START detected" )
845+ logger .warning (f"{ phase } : END case '{ tc_name } ' without START detected" )
838846
839847
840848 def handle (self , line ):
@@ -846,7 +854,7 @@ def handle(self, line):
846854 self .start_suite (test_suite_start_match .group ("suite_name" ))
847855 elif test_suite_end_match := re .search (self .test_suite_end_pattern , line ):
848856 suite_name = test_suite_end_match .group ("suite_name" )
849- self .end_suite (suite_name , 'TS_END' )
857+ self .end_suite (suite_name )
850858 elif testcase_match := re .search (self .test_case_start_pattern , line ):
851859 tc_name = testcase_match .group (2 )
852860 tc = self .get_testcase (tc_name , 'TC_START' )
0 commit comments