| ## @file |
| # Unit tests for TianoCompress utility |
| # |
| # Copyright (c) 2008, Intel Corporation |
| # |
| # All rights reserved. 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) |
| |
| |