|  | ## @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) | 
|  |  | 
|  |  |