From f7843fb4dce772eeb346bc9453099ce8f14845e1 Mon Sep 17 00:00:00 2001 From: Blanca Date: Mon, 24 Aug 2015 13:20:11 -0500 Subject: [PATCH 1/2] Adding License checker test cases --- tests/LAPluginTestCase.py | 82 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 tests/LAPluginTestCase.py diff --git a/tests/LAPluginTestCase.py b/tests/LAPluginTestCase.py new file mode 100644 index 0000000..2f36d9d --- /dev/null +++ b/tests/LAPluginTestCase.py @@ -0,0 +1,82 @@ +# +# LAPluginTestCase.py - Test cases for License Checker plugin, part of ISA FW +# +# Copyright (c) 2015, Intel Corporation +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of Intel Corporation nor the names of its contributors +# may be used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE + +import unittest +import sys +sys.path.append("../isafw") +import isafw +import shutil +import os + + +reportdir = "./la_plugin/output" + +class TestLAPlugin(unittest.TestCase): + + def setUp(self): + # cleaning up the report dir and creating it if needed + if os.path.exists(os.path.dirname(reportdir+"/internal/test")): + shutil.rmtree(reportdir) + os.makedirs(os.path.dirname(reportdir+"/internal/test")) + # fetching proxy info + proxy = "" + if "http_proxy" in os.environ: + proxy = os.environ['http_proxy'] + if "https_proxy" in os.environ: + proxy = os.environ['https_proxy'] + # creating ISA FW class + self.imageSecurityAnalyser = isafw.ISA(proxy, reportdir) + + def test_package_with_licenses_OK(self): + pkg = isafw.ISA_package() + pkg.name = "bash" + pkg.version = "4.3" + pkg.licenses = ["Apache-1.1"] + self.imageSecurityAnalyser.process_package(pkg) + badLicExist = os.path.isfile (reportdir + "/license_report") + # if no bad licenses exist no report is created + self.assertFalse(badLicExist) + + def test_package_with_licenses_NotOK(self): + pkg = isafw.ISA_package() + pkg.name = "bash" + pkg.version = "4.3" + pkg.licenses = ["BadLicense-1.1"] + self.imageSecurityAnalyser.process_package(pkg) + with open(reportdir + "/license_report", 'r') as freport: + output = freport.readline() + print(output) + # if bad licenses exist a report listing them is created + self.assertEqual(output, + "bash: BadLicense-1.1\n", + 'Output does not match') + + +if __name__ == '__main__': + unittest.main() + From cc1446b44ecbdf9a887c8638600d5dd8d518bd0b Mon Sep 17 00:00:00 2001 From: Blanca Date: Tue, 25 Aug 2015 17:17:53 -0500 Subject: [PATCH 2/2] Adding LATestCase to the TestSuite --- tests/LAPluginTestCase.py | 1 - tests/TestSuiteISAFW.py | 4 +++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/LAPluginTestCase.py b/tests/LAPluginTestCase.py index 2f36d9d..f72bd55 100644 --- a/tests/LAPluginTestCase.py +++ b/tests/LAPluginTestCase.py @@ -70,7 +70,6 @@ def test_package_with_licenses_NotOK(self): self.imageSecurityAnalyser.process_package(pkg) with open(reportdir + "/license_report", 'r') as freport: output = freport.readline() - print(output) # if bad licenses exist a report listing them is created self.assertEqual(output, "bash: BadLicense-1.1\n", diff --git a/tests/TestSuiteISAFW.py b/tests/TestSuiteISAFW.py index eea580a..29be7e5 100755 --- a/tests/TestSuiteISAFW.py +++ b/tests/TestSuiteISAFW.py @@ -31,6 +31,7 @@ from KCAPluginTestCase import * from CFAPluginTestCase import * from FSAPluginTestCase import * +from LAPluginTestCase import * suite = unittest.TestLoader().loadTestsFromTestCase(TestCVEPlugin) unittest.TextTestRunner(verbosity=2).run(suite) @@ -44,4 +45,5 @@ suite = unittest.TestLoader().loadTestsFromTestCase(TestFSAPlugin) unittest.TextTestRunner(verbosity=2).run(suite) - +suite = unittest.TestLoader().loadTestsFromTestCase(TestLAPlugin) +unittest.TextTestRunner(verbosity=2).run(suite)