[TCT][scripts][Non-ACR] Added script to show purpose in report page 10/318810/1
authorTarun Kumar <tarun1.kumar@samsung.com>
Fri, 24 Jan 2025 09:29:09 +0000 (14:59 +0530)
committerTarun Kumar <tarun1.kumar@samsung.com>
Fri, 24 Jan 2025 09:29:09 +0000 (14:59 +0530)
Change-Id: I78e3380748a5f7e498b98033ec457cee0747e31f
Signed-off-by: Tarun Kumar <tarun1.kumar@samsung.com>
scripts_tpk/tctestsgen.py

index fe7bde086e6a3f5e8e98fcf14d6bab6b033609c0..fad2273d4595329f3219c9e8a2d741412a13d06d 100755 (executable)
@@ -35,7 +35,6 @@ def gen(tcfile):
        set=''
        tfile=open(TFILE)
        fil=open(FILE, 'w')
-
        # begin
        fil.write('<?xml version="1.0" encoding="UTF-8"?>\n')
        fil.write('    <?xml-stylesheet type="text/xsl" href="./testcase.xsl"?>\n')
@@ -56,9 +55,50 @@ def gen(tcfile):
                                for element in feature:
                                        fil.write('        <capability name="'+element+'"/>\n')
                                fil.write('      </capabilities>\n')
+
                tcname=fields[0]
                tcname=tcname.strip()
+
                tcpurpose=''
+
+               script_dir = os.path.dirname(os.path.abspath(__file__))
+               api_dir = os.path.dirname(script_dir)
+               path_to_tc = os.path.join(api_dir, f'src/{BUILD_TYPE}/{MODULE_NAME}')
+
+               if os.path.isdir(path_to_tc):
+                       c_files = [f for f in os.listdir(path_to_tc) if f.endswith('.c')]
+                       if c_files:
+                               grep_command = ['grep', '-B', '10', tcname] + [os.path.join(path_to_tc, f) for f in c_files]
+                       else:
+                               return
+               else:
+                       return
+
+               try:
+                       result = subprocess.run(grep_command, capture_output=True, text=True, check=True)
+               except subprocess.CalledProcessError as e:
+                       print("Command failed with error: " + e.stderr + "\n")
+
+               except Exception as e:
+                       print("An unexpected error occurred: " + str(e) + "\n")
+
+               output = result.stdout.strip()
+               lines = output.split('\n')
+               reversed_output = '\n'.join(reversed(lines))
+
+               purpose_pattern = re.compile(r'//& purpose:\s*(.*)')
+               description_pattern = re.compile(r'\* @description\s*(.*)')
+
+               purpose_match = purpose_pattern.search(reversed_output)
+               if purpose_match:
+                       tcpurpose = purpose_match.group(1).strip()
+               else:
+                       description_match = description_pattern.search(reversed_output)
+                       if description_match:
+                               tcpurpose = description_match.group(1).strip()
+                       else:
+                               tcpurpose = ""
+
                fil.write('      <testcase component="NativeAPI/'+MODULE_NAME_C+'/'+set+'" execution_type="auto" id="'+tcname+'" purpose="'+tcpurpose+'">\n')
                fil.write('        <description>\n')
                fil.write('          <test_script_entry test_script_expected_result="0">'+'{DEVICE_SUITE_TARGET_30}/external_wrapper.sh '+MODULE_FULL_NAME+' '+tcname+' '+BUILD_TYPE+'</test_script_entry>\n')