audk/BaseTools/Tests/TianoCompress.py

76 lines
2.4 KiB
Python

## @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
#
from __future__ import print_function
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)