]> git.proxmox.com Git - mirror_edk2.git/blame - BaseTools/Source/Python/UPT/TestInstall.py
BaseTools: Remove './SecMain' from 'run' target
[mirror_edk2.git] / BaseTools / Source / Python / UPT / TestInstall.py
CommitLineData
6cf99034
HC
1# # @file\r
2# Test Install distribution package\r
3#\r
56636814 4# Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>\r
6cf99034 5#\r
2e351cbe 6# SPDX-License-Identifier: BSD-2-Clause-Patent\r
6cf99034
HC
7#\r
8"""\r
9Test Install multiple distribution package\r
10"""\r
11# #\r
12# Import Modules\r
13#\r
14from Library import GlobalData\r
15import Logger.Log as Logger\r
16from Logger import StringTable as ST\r
17import Logger.ToolError as TE\r
18from Core.DependencyRules import DependencyRules\r
19from InstallPkg import UnZipDp\r
20\r
21import shutil\r
22from traceback import format_exc\r
23from platform import python_version\r
24from sys import platform\r
25\r
26# # Tool entrance method\r
27#\r
28# This method mainly dispatch specific methods per the command line options.\r
29# If no error found, return zero value so the caller of this tool can know\r
30# if it's executed successfully or not.\r
31#\r
32# @param Options: command Options\r
33#\r
34def Main(Options=None):\r
35 ContentZipFile, DistFile = None, None\r
36 ReturnCode = 0\r
37\r
38 try:\r
39 DataBase = GlobalData.gDB\r
40 WorkspaceDir = GlobalData.gWORKSPACE\r
41 if not Options.DistFiles:\r
42 Logger.Error("TestInstallPkg", TE.OPTION_MISSING, ExtraData=ST.ERR_SPECIFY_PACKAGE)\r
43\r
44 DistPkgList = []\r
45 for DistFile in Options.DistFiles:\r
46 DistPkg, ContentZipFile, __, DistFile = UnZipDp(WorkspaceDir, DistFile)\r
47 DistPkgList.append(DistPkg)\r
48\r
49 #\r
50 # check dependency\r
51 #\r
52 Dep = DependencyRules(DataBase)\r
53 Result = True\r
54 DpObj = None\r
55 try:\r
56 Result, DpObj = Dep.CheckTestInstallPdDepexSatisfied(DistPkgList)\r
57 except:\r
58 Result = False\r
59\r
60 if Result:\r
61 Logger.Quiet(ST.MSG_TEST_INSTALL_PASS)\r
62 else:\r
63 Logger.Quiet(ST.MSG_TEST_INSTALL_FAIL)\r
64\r
5b0671c1 65 except TE.FatalError as XExcept:\r
6cf99034
HC
66 ReturnCode = XExcept.args[0]\r
67 if Logger.GetLevel() <= Logger.DEBUG_9:\r
68 Logger.Quiet(ST.MSG_PYTHON_ON % (python_version(), platform) + format_exc())\r
69\r
5b0671c1 70 except Exception as x:\r
6cf99034
HC
71 ReturnCode = TE.CODE_ERROR\r
72 Logger.Error(\r
73 "\nTestInstallPkg",\r
74 TE.CODE_ERROR,\r
75 ST.ERR_UNKNOWN_FATAL_INSTALL_ERR % Options.DistFiles,\r
c1387446 76 ExtraData=ST.MSG_SEARCH_FOR_HELP % ST.MSG_EDKII_MAIL_ADDR,\r
6cf99034
HC
77 RaiseError=False\r
78 )\r
79 Logger.Quiet(ST.MSG_PYTHON_ON % (python_version(), platform) + format_exc())\r
80\r
81 finally:\r
82 Logger.Quiet(ST.MSG_REMOVE_TEMP_FILE_STARTED)\r
83 if DistFile:\r
84 DistFile.Close()\r
85 if ContentZipFile:\r
86 ContentZipFile.Close()\r
56636814
HC
87 for TempDir in GlobalData.gUNPACK_DIR:\r
88 shutil.rmtree(TempDir)\r
89 GlobalData.gUNPACK_DIR = []\r
6cf99034
HC
90 Logger.Quiet(ST.MSG_REMOVE_TEMP_FILE_DONE)\r
91 if ReturnCode == 0:\r
92 Logger.Quiet(ST.MSG_FINISH)\r
93 return ReturnCode\r
94\r