[TC Fixed] Even without SPC.ni.dll, the application generates native image (#379)
author최종헌/Common Platform Lab(SR)/삼성전자 <j-h.choi@samsung.com>
Wed, 9 Feb 2022 05:12:43 +0000 (14:12 +0900)
committerGitHub Enterprise <noreply-CODE@samsung.com>
Wed, 9 Feb 2022 05:12:43 +0000 (14:12 +0900)
Change-Id: I062ac6e2c57a7fc9faf45c3bc8e1315e377f9e7e

tests/TCs/1_AOT/AOT.py
tests/TCs/1_AOT/README.md

index f32488bf983f55344fb3df71a90447b906d02fc5..af7873ae6816d5ede9cb91c3c3916e35868d5699 100755 (executable)
@@ -39,7 +39,7 @@ def TC_01():
 
     return "PASS"
 
-# The `Launcher_TC_AOT_02` application generates native image.
+# The `Launcher_TC_AOT_02` application generates native image when the SPC.ni.dll exists.
 def TC_02():
     if "OK" not in create_spc_ni():
         return f"FAIL : Create native image for {SPC_DLL}"
@@ -80,7 +80,7 @@ def TC_02():
 
     return "PASS"
 
-# The `Launcher_TC_AOT_03` application does not generate native image.
+# The `Launcher_TC_AOT_03` application generates native image when the SPC.ni.dll doesn't exist.
 def TC_03():
     if "OK" not in remove_system_ni():
         return "FAIL : Remove the platform native image"
@@ -100,13 +100,24 @@ def TC_03():
     if root_path == "None":
         return f"FAIL : Get the root path for {pkg_id}"
 
-    if exist(f"{root_path}/bin/.native_image"):
-        return "FAIL : The .native_image folder should not exist"
+    if not exist(f"{root_path}/bin/.native_image"):
+        return "FAIL : The .native_image folder should exist"
 
-    raw = cmd(f"shell find {root_path}/bin/ -name *.ni.dll")
-    lines = [l for l in raw.splitlines()]
-    if len(lines) != 0:
-        return "FAIL : The .ni.dll files should not exist"
+    raw = cmd(f"shell find {root_path}/bin/.native_image/ -name *.ni.dll")
+    lines1 = [l for l in raw.splitlines()]
+    raw = cmd(f"shell find {root_path}/bin/ -maxdepth 1 -name *.dll -not -name *.ni.dll")
+    lines2 = [l for l in raw.splitlines()]
+    if len(lines1) != len(lines2):
+        return "FAIL : The number of .dll and .ni.dll must match in the application"
+
+    for ni in lines1:
+        is_same = False
+        for dll in lines2:
+            if Path(ni).name.replace(".ni.dll", "") == Path(dll).name.replace(".dll", ""):
+                is_same = True
+                break
+        if not is_same:
+            return "FAIL : The file name of .dll and .ni.dll must match in the application"
 
     return "PASS"
 
index e5bc7b3856015996f2f68263751cf5dcfe4b9bbf..6a6e06c2d86fe33a1b9d70d51d2a4463f72e5ca0 100644 (file)
@@ -36,20 +36,22 @@ launcher/tests/TCs/1_AOT$ ./AOT.py TC_01
   3. The `.native_image` folder and `.ni.dll` files do not exist.
 * TC_02
 ```
-  PASS : The Launcher_TC_AOT_02 application generates native image.
+  PASS : The Launcher_TC_AOT_02 application generates native image when the SPC.ni.dll exists.
 ```
   1. The `System.Private.CoreLib.ni.dll`(SPC.dll.Backup) file exists.
   2. The `prefer_dotnet_aot` metadata value is `true` in the manifest.
   3. The `.native_image` folder and `.ni.dll` files exist.
-  4. The number of `.dll` and `.ni.dll` in the application is the same.
-  5. The file name of `.dll` and `.ni.dll` must match in the application
+  4. The number of `.dll` files and the number of `.ni.dll` files in the application are the same.
+  5. The file names of `.dll` and `.ni.dll` must match in the application.
 * TC_03
 ```
-  PASS : The Launcher_TC_AOT_03 application does not generate native image.
+  PASS : The Launcher_TC_AOT_03 application generates native image when the SPC.ni.dll doesn't exist.
 ```
   1. The `System.Private.CoreLib.ni.dll`(SPC.dll.Backup) file does not exist.
   2. The `prefer_dotnet_aot` metadata value is `true` in the manifest.
-  3. The `.native_image` folder and `.ni.dll` files do not exist.
+  3. The `.native_image` folder and `.ni.dll` files exist.
+  4. The number of `.dll` files and the number of `.ni.dll` files in the application are the same.
+  5. The file names of `.dll` and `.ni.dll` must match in the application.
 ----
 
 ### Note