summaryrefslogtreecommitdiff
path: root/BaseTools/Tests
diff options
context:
space:
mode:
Diffstat (limited to 'BaseTools/Tests')
-rw-r--r--BaseTools/Tests/CToolsTests.py35
-rw-r--r--BaseTools/Tests/CheckPythonSyntax.py74
-rw-r--r--BaseTools/Tests/CheckUnicodeSourceFiles.py181
-rw-r--r--BaseTools/Tests/GNUmakefile21
-rw-r--r--BaseTools/Tests/PythonToolsTests.py34
-rw-r--r--BaseTools/Tests/RunTests.py38
-rw-r--r--BaseTools/Tests/TestTools.py186
-rw-r--r--BaseTools/Tests/TianoCompress.py74
8 files changed, 0 insertions, 643 deletions
diff --git a/BaseTools/Tests/CToolsTests.py b/BaseTools/Tests/CToolsTests.py
deleted file mode 100644
index ab75d9a7dc..0000000000
--- a/BaseTools/Tests/CToolsTests.py
+++ /dev/null
@@ -1,35 +0,0 @@
-## @file
-# Unit tests for C based BaseTools
-#
-# Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>
-#
-# This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution. The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-
-##
-# Import Modules
-#
-import os
-import sys
-import unittest
-
-import TianoCompress
-modules = (
- TianoCompress,
- )
-
-
-def TheTestSuite():
- suites = map(lambda module: module.TheTestSuite(), modules)
- return unittest.TestSuite(suites)
-
-if __name__ == '__main__':
- allTests = TheTestSuite()
- unittest.TextTestRunner().run(allTests)
-
diff --git a/BaseTools/Tests/CheckPythonSyntax.py b/BaseTools/Tests/CheckPythonSyntax.py
deleted file mode 100644
index 61a048ad5d..0000000000
--- a/BaseTools/Tests/CheckPythonSyntax.py
+++ /dev/null
@@ -1,74 +0,0 @@
-## @file
-# Unit tests for checking syntax of Python source code
-#
-# Copyright (c) 2009, Intel Corporation. All rights reserved.<BR>
-#
-# This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution. The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-
-##
-# Import Modules
-#
-import os
-import unittest
-import py_compile
-
-import TestTools
-
-class Tests(TestTools.BaseToolsTest):
-
- def setUp(self):
- TestTools.BaseToolsTest.setUp(self)
-
- def SingleFileTest(self, filename):
- try:
- py_compile.compile(filename, doraise=True)
- except Exception, e:
- self.fail('syntax error: %s, Error is %s' % (filename, str(e)))
-
-def MakePythonSyntaxCheckTests():
- def GetAllPythonSourceFiles():
- pythonSourceFiles = []
- for (root, dirs, files) in os.walk(TestTools.PythonSourceDir):
- for filename in files:
- if filename.lower().endswith('.py'):
- pythonSourceFiles.append(
- os.path.join(root, filename)
- )
- return pythonSourceFiles
-
- def MakeTestName(filename):
- assert filename.lower().endswith('.py')
- name = filename[:-3]
- name = name.replace(TestTools.PythonSourceDir, '')
- name = name.replace(os.path.sep, '_')
- return 'test' + name
-
- def MakeNewTest(filename):
- test = MakeTestName(filename)
- newmethod = lambda self: self.SingleFileTest(filename)
- setattr(
- Tests,
- test,
- newmethod
- )
-
- for filename in GetAllPythonSourceFiles():
- MakeNewTest(filename)
-
-MakePythonSyntaxCheckTests()
-del MakePythonSyntaxCheckTests
-
-TheTestSuite = TestTools.MakeTheTestSuite(locals())
-
-if __name__ == '__main__':
- allTests = TheTestSuite()
- unittest.TextTestRunner().run(allTests)
-
-
diff --git a/BaseTools/Tests/CheckUnicodeSourceFiles.py b/BaseTools/Tests/CheckUnicodeSourceFiles.py
deleted file mode 100644
index 6ae62f180a..0000000000
--- a/BaseTools/Tests/CheckUnicodeSourceFiles.py
+++ /dev/null
@@ -1,181 +0,0 @@
-## @file
-# Unit tests for AutoGen.UniClassObject
-#
-# Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
-#
-# This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution. The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-
-##
-# Import Modules
-#
-import os
-import unittest
-
-import codecs
-
-import TestTools
-
-from Common.Misc import PathClass
-import AutoGen.UniClassObject as BtUni
-
-from Common import EdkLogger
-EdkLogger.InitializeForUnitTest()
-
-class Tests(TestTools.BaseToolsTest):
-
- SampleData = u'''
- #langdef en-US "English"
- #string STR_A #language en-US "STR_A for en-US"
- '''
-
- def EncodeToFile(self, encoding, string=None):
- if string is None:
- string = self.SampleData
- if encoding is not None:
- data = codecs.encode(string, encoding)
- else:
- data = string
- path = 'input.uni'
- self.WriteTmpFile(path, data)
- return PathClass(self.GetTmpFilePath(path))
-
- def ErrorFailure(self, error, encoding, shouldPass):
- msg = error + ' should '
- if shouldPass:
- msg += 'not '
- msg += 'be generated for '
- msg += '%s data in a .uni file' % encoding
- self.fail(msg)
-
- def UnicodeErrorFailure(self, encoding, shouldPass):
- self.ErrorFailure('UnicodeError', encoding, shouldPass)
-
- def EdkErrorFailure(self, encoding, shouldPass):
- self.ErrorFailure('EdkLogger.FatalError', encoding, shouldPass)
-
- def CheckFile(self, encoding, shouldPass, string=None):
- path = self.EncodeToFile(encoding, string)
- try:
- BtUni.UniFileClassObject([path])
- if shouldPass:
- return
- except UnicodeError:
- if not shouldPass:
- return
- else:
- self.UnicodeErrorFailure(encoding, shouldPass)
- except EdkLogger.FatalError:
- if not shouldPass:
- return
- else:
- self.EdkErrorFailure(encoding, shouldPass)
- except Exception:
- pass
-
- self.EdkErrorFailure(encoding, shouldPass)
-
- def testUtf16InUniFile(self):
- self.CheckFile('utf_16', shouldPass=True)
-
- def testSupplementaryPlaneUnicodeCharInUtf16File(self):
- #
- # Supplementary Plane characters can exist in UTF-16 files,
- # but they are not valid UCS-2 characters.
- #
- # This test makes sure that BaseTools rejects these characters
- # if seen in a .uni file.
- #
- data = u'''
- #langdef en-US "English"
- #string STR_A #language en-US "CodePoint (\U00010300) > 0xFFFF"
- '''
-
- self.CheckFile('utf_16', shouldPass=False, string=data)
-
- def testSurrogatePairUnicodeCharInUtf16File(self):
- #
- # Surrogate Pair code points are used in UTF-16 files to
- # encode the Supplementary Plane characters. But, a Surrogate
- # Pair code point which is not followed by another Surrogate
- # Pair code point might be interpreted as a single code point
- # with the Surrogate Pair code point.
- #
- # This test makes sure that BaseTools rejects these characters
- # if seen in a .uni file.
- #
- data = codecs.BOM_UTF16_LE + '//\x01\xd8 '
-
- self.CheckFile(encoding=None, shouldPass=False, string=data)
-
- def testValidUtf8File(self):
- self.CheckFile(encoding='utf_8', shouldPass=True)
-
- def testValidUtf8FileWithBom(self):
- #
- # Same test as testValidUtf8File, but add the UTF-8 BOM
- #
- data = codecs.BOM_UTF8 + codecs.encode(self.SampleData, 'utf_8')
-
- self.CheckFile(encoding=None, shouldPass=True, string=data)
-
- def test32bitUnicodeCharInUtf8File(self):
- data = u'''
- #langdef en-US "English"
- #string STR_A #language en-US "CodePoint (\U00010300) > 0xFFFF"
- '''
-
- self.CheckFile('utf_16', shouldPass=False, string=data)
-
- def test32bitUnicodeCharInUtf8File(self):
- data = u'''
- #langdef en-US "English"
- #string STR_A #language en-US "CodePoint (\U00010300) > 0xFFFF"
- '''
-
- self.CheckFile('utf_8', shouldPass=False, string=data)
-
- def test32bitUnicodeCharInUtf8Comment(self):
- data = u'''
- // Even in comments, we reject non-UCS-2 chars: \U00010300
- #langdef en-US "English"
- #string STR_A #language en-US "A"
- '''
-
- self.CheckFile('utf_8', shouldPass=False, string=data)
-
- def testSurrogatePairUnicodeCharInUtf8File(self):
- #
- # Surrogate Pair code points are used in UTF-16 files to
- # encode the Supplementary Plane characters. In UTF-8, it is
- # trivial to encode these code points, but they are not valid
- # code points for characters, since they are reserved for the
- # UTF-16 Surrogate Pairs.
- #
- # This test makes sure that BaseTools rejects these characters
- # if seen in a .uni file.
- #
- data = '\xed\xa0\x81'
-
- self.CheckFile(encoding=None, shouldPass=False, string=data)
-
- def testSurrogatePairUnicodeCharInUtf8FileWithBom(self):
- #
- # Same test as testSurrogatePairUnicodeCharInUtf8File, but add
- # the UTF-8 BOM
- #
- data = codecs.BOM_UTF8 + '\xed\xa0\x81'
-
- self.CheckFile(encoding=None, shouldPass=False, string=data)
-
-TheTestSuite = TestTools.MakeTheTestSuite(locals())
-
-if __name__ == '__main__':
- allTests = TheTestSuite()
- unittest.TextTestRunner().run(allTests)
diff --git a/BaseTools/Tests/GNUmakefile b/BaseTools/Tests/GNUmakefile
deleted file mode 100644
index 0c11f6aae9..0000000000
--- a/BaseTools/Tests/GNUmakefile
+++ /dev/null
@@ -1,21 +0,0 @@
-## @file
-# GNU/Linux makefile for 'Tests' module build.
-#
-# Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>
-# This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution. The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-
-all: test
-
-test:
- @if command -v python2 >/dev/null 2>&1; then python2 RunTests.py; else python RunTests.py; fi
-
-clean:
- find . -name '*.pyc' -exec rm '{}' ';'
-
diff --git a/BaseTools/Tests/PythonToolsTests.py b/BaseTools/Tests/PythonToolsTests.py
deleted file mode 100644
index c953dafcbd..0000000000
--- a/BaseTools/Tests/PythonToolsTests.py
+++ /dev/null
@@ -1,34 +0,0 @@
-## @file
-# Unit tests for Python based BaseTools
-#
-# Copyright (c) 2008 - 2015, Intel Corporation. All rights reserved.<BR>
-#
-# This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution. The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-
-##
-# Import Modules
-#
-import os
-import sys
-import unittest
-
-
-def TheTestSuite():
- suites = []
- import CheckPythonSyntax
- suites.append(CheckPythonSyntax.TheTestSuite())
- import CheckUnicodeSourceFiles
- suites.append(CheckUnicodeSourceFiles.TheTestSuite())
- return unittest.TestSuite(suites)
-
-if __name__ == '__main__':
- allTests = TheTestSuite()
- unittest.TextTestRunner().run(allTests)
-
diff --git a/BaseTools/Tests/RunTests.py b/BaseTools/Tests/RunTests.py
deleted file mode 100644
index 0dd65632d0..0000000000
--- a/BaseTools/Tests/RunTests.py
+++ /dev/null
@@ -1,38 +0,0 @@
-## @file
-# Unit tests for BaseTools utilities
-#
-# Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>
-#
-# This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution. The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-
-##
-# Import Modules
-#
-import os
-import sys
-import unittest
-
-import TestTools
-
-def GetCTestSuite():
- import CToolsTests
- return CToolsTests.TheTestSuite()
-
-def GetPythonTestSuite():
- import PythonToolsTests
- return PythonToolsTests.TheTestSuite()
-
-def GetAllTestsSuite():
- return unittest.TestSuite([GetCTestSuite(), GetPythonTestSuite()])
-
-if __name__ == '__main__':
- allTests = GetAllTestsSuite()
- unittest.TextTestRunner(verbosity=2).run(allTests)
-
diff --git a/BaseTools/Tests/TestTools.py b/BaseTools/Tests/TestTools.py
deleted file mode 100644
index 27afd79f20..0000000000
--- a/BaseTools/Tests/TestTools.py
+++ /dev/null
@@ -1,186 +0,0 @@
-## @file
-# Utility functions and classes for BaseTools unit tests
-#
-# Copyright (c) 2008 - 2015, Intel Corporation. All rights reserved.<BR>
-#
-# This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution. The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-
-##
-# Import Modules
-#
-import base64
-import os
-import os.path
-import random
-import shutil
-import subprocess
-import sys
-import types
-import unittest
-
-TestsDir = os.path.realpath(os.path.split(sys.argv[0])[0])
-BaseToolsDir = os.path.realpath(os.path.join(TestsDir, '..'))
-CSourceDir = os.path.join(BaseToolsDir, 'Source', 'C')
-PythonSourceDir = os.path.join(BaseToolsDir, 'Source', 'Python')
-TestTempDir = os.path.join(TestsDir, 'TestTempDir')
-
-if PythonSourceDir not in sys.path:
- #
- # Allow unit tests to import BaseTools python modules. This is very useful
- # for writing unit tests.
- #
- sys.path.append(PythonSourceDir)
-
-def MakeTheTestSuite(localItems):
- tests = []
- for name, item in localItems.iteritems():
- if isinstance(item, types.TypeType):
- if issubclass(item, unittest.TestCase):
- tests.append(unittest.TestLoader().loadTestsFromTestCase(item))
- elif issubclass(item, unittest.TestSuite):
- tests.append(item())
- return lambda: unittest.TestSuite(tests)
-
-def GetBaseToolsPaths():
- if sys.platform in ('win32', 'win64'):
- return [ os.path.join(BaseToolsDir, 'Bin', sys.platform.title()) ]
- else:
- uname = os.popen('uname -sm').read().strip()
- for char in (' ', '/'):
- uname = uname.replace(char, '-')
- return [
- os.path.join(BaseToolsDir, 'Bin', uname),
- os.path.join(BaseToolsDir, 'BinWrappers', uname),
- os.path.join(BaseToolsDir, 'BinWrappers', 'PosixLike')
- ]
-
-BaseToolsBinPaths = GetBaseToolsPaths()
-
-class BaseToolsTest(unittest.TestCase):
-
- def cleanOutDir(self, dir):
- for dirItem in os.listdir(dir):
- if dirItem in ('.', '..'): continue
- dirItem = os.path.join(dir, dirItem)
- self.RemoveFileOrDir(dirItem)
-
- def CleanUpTmpDir(self):
- if os.path.exists(self.testDir):
- self.cleanOutDir(self.testDir)
-
- def HandleTreeDeleteError(self, function, path, excinfo):
- os.chmod(path, stat.S_IWRITE)
- function(path)
-
- def RemoveDir(self, dir):
- shutil.rmtree(dir, False, self.HandleTreeDeleteError)
-
- def RemoveFileOrDir(self, path):
- if not os.path.exists(path):
- return
- elif os.path.isdir(path):
- self.RemoveDir(path)
- else:
- os.remove(path)
-
- def DisplayBinaryData(self, description, data):
- print description, '(base64 encoded):'
- b64data = base64.b64encode(data)
- print b64data
-
- def DisplayFile(self, fileName):
- sys.stdout.write(self.ReadTmpFile(fileName))
- sys.stdout.flush()
-
- def FindToolBin(self, toolName):
- for binPath in BaseToolsBinPaths:
- bin = os.path.join(binPath, toolName)
- if os.path.exists(bin):
- break
- assert os.path.exists(bin)
- return bin
-
- def RunTool(self, *args, **kwd):
- if 'toolName' in kwd: toolName = kwd['toolName']
- else: toolName = None
- if 'logFile' in kwd: logFile = kwd['logFile']
- else: logFile = None
-
- if toolName is None: toolName = self.toolName
- bin = self.FindToolBin(toolName)
- if logFile is not None:
- logFile = open(os.path.join(self.testDir, logFile), 'w')
- popenOut = logFile
- else:
- popenOut = subprocess.PIPE
-
- args = [toolName] + list(args)
-
- Proc = subprocess.Popen(
- args, executable=bin,
- stdout=popenOut, stderr=subprocess.STDOUT
- )
-
- if logFile is None:
- Proc.stdout.read()
-
- return Proc.wait()
-
- def GetTmpFilePath(self, fileName):
- return os.path.join(self.testDir, fileName)
-
- def OpenTmpFile(self, fileName, mode = 'r'):
- return open(os.path.join(self.testDir, fileName), mode)
-
- def ReadTmpFile(self, fileName):
- f = open(self.GetTmpFilePath(fileName), 'r')
- data = f.read()
- f.close()
- return data
-
- def WriteTmpFile(self, fileName, data):
- f = open(self.GetTmpFilePath(fileName), 'w')
- f.write(data)
- f.close()
-
- def GenRandomFileData(self, fileName, minlen = None, maxlen = None):
- if maxlen is None: maxlen = minlen
- f = self.OpenTmpFile(fileName, 'w')
- f.write(self.GetRandomString(minlen, maxlen))
- f.close()
-
- def GetRandomString(self, minlen = None, maxlen = None):
- if minlen is None: minlen = 1024
- if maxlen is None: maxlen = minlen
- return ''.join(
- [chr(random.randint(0,255))
- for x in xrange(random.randint(minlen, maxlen))
- ])
-
- def setUp(self):
- self.savedEnvPath = os.environ['PATH']
- self.savedSysPath = sys.path[:]
-
- for binPath in BaseToolsBinPaths:
- os.environ['PATH'] = \
- os.path.pathsep.join((os.environ['PATH'], binPath))
-
- self.testDir = TestTempDir
- if not os.path.exists(self.testDir):
- os.mkdir(self.testDir)
- else:
- self.cleanOutDir(self.testDir)
-
- def tearDown(self):
- self.RemoveFileOrDir(self.testDir)
-
- os.environ['PATH'] = self.savedEnvPath
- sys.path = self.savedSysPath
-
diff --git a/BaseTools/Tests/TianoCompress.py b/BaseTools/Tests/TianoCompress.py
deleted file mode 100644
index e141364162..0000000000
--- a/BaseTools/Tests/TianoCompress.py
+++ /dev/null
@@ -1,74 +0,0 @@
-## @file
-# Unit tests for TianoCompress utility
-#
-# Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>
-#
-# This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution. The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-
-##
-# Import Modules
-#
-import os
-import random
-import sys
-import unittest
-
-import TestTools
-
-class Tests(TestTools.BaseToolsTest):
-
- def setUp(self):
- TestTools.BaseToolsTest.setUp(self)
- self.toolName = 'TianoCompress'
-
- def testHelp(self):
- result = self.RunTool('--help', logFile='help')
- #self.DisplayFile('help')
- self.assertTrue(result == 0)
-
- def compressionTestCycle(self, data):
- path = self.GetTmpFilePath('input')
- self.WriteTmpFile('input', data)
- result = self.RunTool(
- '-e',
- '-o', self.GetTmpFilePath('output1'),
- self.GetTmpFilePath('input')
- )
- self.assertTrue(result == 0)
- result = self.RunTool(
- '-d',
- '-o', self.GetTmpFilePath('output2'),
- self.GetTmpFilePath('output1')
- )
- self.assertTrue(result == 0)
- start = self.ReadTmpFile('input')
- finish = self.ReadTmpFile('output2')
- startEqualsFinish = start == finish
- if not startEqualsFinish:
- print
- print 'Original data did not match decompress(compress(data))'
- self.DisplayBinaryData('original data', start)
- self.DisplayBinaryData('after compression', self.ReadTmpFile('output1'))
- self.DisplayBinaryData('after decomression', finish)
- self.assertTrue(startEqualsFinish)
-
- def testRandomDataCycles(self):
- for i in range(8):
- data = self.GetRandomString(1024, 2048)
- self.compressionTestCycle(data)
- self.CleanUpTmpDir()
-
-TheTestSuite = TestTools.MakeTheTestSuite(locals())
-
-if __name__ == '__main__':
- allTests = TheTestSuite()
- unittest.TextTestRunner().run(allTests)
-
-