]> git.proxmox.com Git - mirror_edk2.git/blame_incremental - BaseTools/Source/Python/UPT/TestInstall.py
BaseTools: Remove './SecMain' from 'run' target
[mirror_edk2.git] / BaseTools / Source / Python / UPT / TestInstall.py
... / ...
CommitLineData
1# # @file\r
2# Test Install distribution package\r
3#\r
4# Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>\r
5#\r
6# SPDX-License-Identifier: BSD-2-Clause-Patent\r
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
65 except TE.FatalError as XExcept:\r
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
70 except Exception as x:\r
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
76 ExtraData=ST.MSG_SEARCH_FOR_HELP % ST.MSG_EDKII_MAIL_ADDR,\r
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
87 for TempDir in GlobalData.gUNPACK_DIR:\r
88 shutil.rmtree(TempDir)\r
89 GlobalData.gUNPACK_DIR = []\r
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