# Test Case for dotnet-launcher - INSTALLER-PLUGIN
This script(PLUGIN.py) is a test that verifies the behavior of **install plugin**.
check the delete_unused_library_plugin, prefer_dotnet_aot_plugin and prefer_nuget_cache_plugin.
```
```
### Usage
* Build tpk
Must be run(./BuildTPK.py) at least once.
```
launcher/tests/Apps$ ./BuildTPK.py
```
* Run **INSTALLER-PLUGIN** test
```
launcher/tests/TCs$ ./2_PLUGIN/PLUGIN.py
launcher/tests/TCs/2_PLUGIN$ ./PLUGIN.py
```
* Run individual test
```
launcher/tests/TCs/2_PLUGIN$ ./PLUGIN.py TC_01
```
### Description
* TC_01
```
PASS : The Launcher_TC_PLUGIN_01 application should not have a library of other OS.
```
1. Nuget without `Tizen(tizen-armel, tizen-x86, ...)` related library is used.
2. The library does not exist in the application.
* TC_02
```
PASS : The Launcher_TC_PLUGIN_02 application must have a library of Tizen OS.
```
1. Nuget with `Tizen(tizen-armel, tizen-x86, ...)` related library is used.
2. The library exists in the application.
* TC_03
```
PASS : The Launcher_TC_PLUGIN_03 application does not generate native image.
```
1. The `System.Private.CoreLib.ni.dll`(SPC.dll.Backup) file exists.
2. The `prefer_dotnet_aot` metadata value is `false` in the manifest.
3. The `.native_image` folder and `.ni.dll` files do not exist.
* TC_04
```
PASS : The Launcher_TC_PLUGIN_04 application generates native image.
```
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
* TC_05
```
PASS : The Launcher_TC_PLUGIN_05 application must not have TAC applied.
```
1. The `prefer_nuget_cache` metadata value is `false` in the manifest.
2. The `.tac_symlink` folder should not exist.
* TC_06
```
PASS : The Launcher_TC_PLUGIN_06 application must have TAC applied.
```
1. The `prefer_nuget_cache` metadata value is `true` in the manifest.
2. The `.tac_symlink` folder and `symbolic link` files exist.
3. The number of `.dll` in the `.tac_symlink` folder and `.dll` in the `TAC` must match.
4. The original file of the `symbolic link` must exist in the `TAC`.
* TC_07
```
PASS : The Launcher_TC_PLUGIN_07 application must not have TLC applied.
```
1. The `prefer_nuget_cache` metadata value is `false` in the manifest.
2. The nuget used has a TFM folder related to Tizen.
3. The `library(.so)` should exist only in the application.
4. The `library(.so)` should not be a symbolic link.
5. The arch of the target and the arch of the library must match.
* TC_08
```
PASS : The Launcher_TC_PLUGIN_08 application must have TLC applied.
```
1. The `prefer_nuget_cache` metadata value is `true` in the manifest.
2. The nuget used has a TFM folder related to Tizen.
3. The `library(.so)` with `same SHA` value must exist in the application and TLC.
4. The `library(.so)` should be a symbolic link.
5. The arch of the target and the arch of the library must match.
* TC_09
```
PASS : The Launcher_TC_PLUGIN_09 application must have a ._TIZEN_DOTNET_SYSTEM_NET_DISABLEIPV6 file exist.
```
1. Applications without Internet privilege must have a ._TIZEN_DOTNET_SYSTEM_NET_DISABLEIPV6 file.
* TC_10
```
PASS : The Launcher_TC_PLUGIN_10 application must not have a ._TIZEN_DOTNET_SYSTEM_NET_DISABLEIPV6 file.
```
1. Applications with Internet privilege must not have a ._TIZEN_DOTNET_SYSTEM_NET_DISABLEIPV6 file.
----
### Note
* Precondition
- Clone the **dotnet-launcher** repository.
- The prerequisites are **sdb** and **python3.6+**.
- The script must be run on the **host PC**.
* SDBs
sdb with a smart device selector.
```
[1] 192.168.250.250 - 0
[2] 002c02f56c7d6c66 - TW3
Select a device [1-2]: 2
```