示例#1
0
    def setUp(self):
        """open up a sapfile class"""
        base = os.path.join(os.path.dirname(__file__), os.pardir, os.pardir)
        self.nysa_base = os.path.abspath(base)
        self.out_dir = os.path.join(os.path.expanduser("~"), "sandbox")

        self.mp = ModuleProcessor()
        self.dbg = False
    def setUp(self):
        """open up a sapfile class"""
        base = os.path.join(os.path.dirname(__file__), os.pardir, os.pardir)
        self.nysa_base = os.path.abspath(base)
        self.out_dir = os.path.join(os.path.expanduser("~"), "sandbox")

        self.mp = ModuleProcessor()
        self.dbg = False
class Test(unittest.TestCase):
    """Unit test for sapfile"""

    def setUp(self):
        """open up a sapfile class"""
        base = os.path.join(os.path.dirname(__file__), os.pardir, os.pardir)
        self.nysa_base = os.path.abspath(base)
        self.out_dir = os.path.join(os.path.expanduser("~"), "sandbox")

        self.mp = ModuleProcessor()
        self.dbg = False

    def test_write_file(self):
        """a file will end up in a directory after this is tested"""
        self.mp.buf = "crappidy crap data!"
        self.mp.write_file(self.out_dir, filename="test")
        # no error was raised!

    def test_apply_tags(self):
        """a file should be changed based on the tags"""
        project_name = "projjjjeeeecccttt NAME!!!"
        # This should raise an error if something went wrong
        filename = os.path.join(self.nysa_base, "nysa", "ibuilder", "bus", "NYSA_README.txt")
        filein = open(filename)
        self.mp.buf = filein.read()
        filein.close()
        tag_map = {"PROJECT_NAME": project_name}
        self.mp.set_tags(tag_map)
        self.mp.apply_tags()
        result = self.mp.buf.find(project_name) == 0
        self.assertEqual(result, True)

    def test_set_tags(self):
        """test to see if a tag file was loaded correctly"""
        tag_file = os.path.join(self.nysa_base, "nysa", "ibuilder", "tags", "README.json")
        self.mp.set_tags(tag_file)
        self.assertEqual(True, True)

    def test_process_file_no_dir(self):
        """make sure the process_file fales when user doesn't put in directory"""
        self.assertRaises(ModuleFactoryError, self.mp.process_file, filename="README")

    def test_process_file_no_location(self):
        """make sue the process file fails when user doesn't give a location"""

        filein = open(TEST_MEM_CONFIG_FILENAME)
        json_tags = json.load(filein)
        self.mp.set_tags(json_tags)
        file_tags = {"location": "bus"}
        self.assertRaises(ModuleFactoryError, self.mp.process_file, filename="README", directory=self.out_dir)

    def test_process_file_no_filename(self):
        """excercise the gen script only functionality"""
        filein = open(TEST_MEM_CONFIG_FILENAME)
        json_tags = json.load(filein)
        self.mp.set_tags(json_tags)
        file_tags = {"gen_script": "gen_top"}
        self.mp.process_file("top", directory=self.out_dir, file_dict=file_tags, debug=self.dbg)
        # debug=True)

        # if this doesn't throw an error then we're good

    def test_process_file(self):
        """excercise all functions of the class"""
        # print "testing process file"
        filein = open(TEST_MEM_CONFIG_FILENAME)
        json_tags = json.load(filein)
        filein.close()

        self.mp.set_tags(json_tags)
        file_tags = {"location": "${NYSA}/ibuilder/bus"}
        self.mp.process_file(filename="NYSA_README.txt", directory=self.out_dir, file_dict=file_tags, debug=self.dbg)

    def test_resolve_dependencies(self):
        # harder dependency
        filename = "wb_sdram.v"
        self.mp.resolve_dependencies(filename, debug=self.dbg)
        self.assertNotEqual(len(self.mp.verilog_dependency_list), 0)

    def test_has_dependency(self):
        # scan a file that is not a verilog file
        result = self.mp.has_dependencies("wb_gpio", debug=self.dbg)
        self.assertEqual(result, False)
        # scan for a file that is a verilog file with a full path
        file_location = os.path.join(TEST_DEP_MODULE)
        # result = self.mp.has_dependencies(file_location, debug=self.dbg)
        result = self.mp.has_dependencies(file_location, debug=self.dbg)
        self.assertEqual(result, True)
        # scan a file that is a verilog file but not the full path
        result = self.mp.has_dependencies("uart_io_handler.v", debug=self.dbg)
        self.assertEqual(result, True)

        # scan a file that has multiple levels of dependencies
        result = self.mp.has_dependencies("sdram.v", debug=self.dbg)
        self.assertEqual(result, True)

        result = self.mp.has_dependencies("wb_gpio.v", debug=self.dbg)
        self.assertEqual(result, False)

    def test_process_bram_file(self):
        """excercise all functions of the class"""
        # print "testing process file"
        # tag_file = os.path.join(  self.nysa_base,
        #                          "nysa",
        #                          "ibuilder",
        #                          "example_projects",
        #                          "mem_example.json")

        filein = open(TEST_MEM_CONFIG_FILENAME)
        json_tags = json.load(filein)
        filein.close()

        self.mp.set_tags(json_tags)
        file_tags = {"location": "bus"}
        self.mp.process_file(filename="wb_bram.v", directory=self.out_dir, file_dict=file_tags, debug=self.dbg)
        # print self.mp.buf

        # if this doesn't throw an error then we're good

    def test_process_gen_script(self):
        """excercise the script"""
        filein = open(TEST_CONFIG_FILENAME)
        json_tags = json.load(filein)
        self.mp.set_tags(json_tags)
        file_tags = {"location": "hdl/rtl/wishbone/interconnect", "gen_script": "gen_interconnect"}
        self.mp.process_file(
            filename="wishbone_interconnect.v", directory=self.out_dir, file_dict=file_tags, debug=False
        )
        # print self.mp.buf
        # if this doesn't throw an error then we're good

    def test_get_list_of_dependencies(self):
        deps = self.mp.get_list_of_dependencies("wb_gpio.v", debug=self.dbg)
        self.assertEqual(len(deps) == 0, True)
        deps = self.mp.get_list_of_dependencies("uart_io_handler.v", debug=self.dbg)
        self.assertEqual(len(deps) > 0, True)
        deps = self.mp.get_list_of_dependencies("sdram.v", debug=self.dbg)
        self.assertEqual(len(deps) > 0, True)
示例#4
0
class Test(unittest.TestCase):
    """Unit test for sapfile"""
    def setUp(self):
        """open up a sapfile class"""
        base = os.path.join(os.path.dirname(__file__), os.pardir, os.pardir)
        self.nysa_base = os.path.abspath(base)
        self.out_dir = os.path.join(os.path.expanduser("~"), "sandbox")

        self.mp = ModuleProcessor()
        self.dbg = False

    def test_write_file(self):
        """a file will end up in a directory after this is tested"""
        self.mp.buf = "crappidy crap data!"
        self.mp.write_file(self.out_dir, filename="test")
        #no error was raised!

    def test_apply_tags(self):
        """a file should be changed based on the tags"""
        project_name = "projjjjeeeecccttt NAME!!!"
        #This should raise an error if something went wrong
        filename = os.path.join(self.nysa_base, "nysa", "ibuilder", "bus",
                                "NYSA_README.txt")
        filein = open(filename)
        self.mp.buf = filein.read()
        filein.close()
        tag_map = {"PROJECT_NAME": project_name}
        self.mp.set_tags(tag_map)
        self.mp.apply_tags()
        result = (self.mp.buf.find(project_name) == 0)
        self.assertEqual(result, True)

    def test_set_tags(self):
        """test to see if a tag file was loaded correctly"""
        tag_file = os.path.join(self.nysa_base, "nysa", "ibuilder", "tags",
                                "README.json")
        self.mp.set_tags(tag_file)
        self.assertEqual(True, True)

    def test_process_file_no_dir(self):
        """make sure the process_file fales when user doesn't put in directory"""
        self.assertRaises(ModuleFactoryError,
                          self.mp.process_file,
                          filename="README")

    def test_process_file_no_location(self):
        """make sue the process file fails when user doesn't give a location"""

        filein = open(TEST_MEM_CONFIG_FILENAME)
        json_tags = json.load(filein)
        self.mp.set_tags(json_tags)
        file_tags = {"location": "bus"}
        self.assertRaises(ModuleFactoryError,
                          self.mp.process_file,
                          filename="README",
                          directory=self.out_dir)

    def test_process_file_no_filename(self):
        """excercise the gen script only functionality"""
        filein = open(TEST_MEM_CONFIG_FILENAME)
        json_tags = json.load(filein)
        self.mp.set_tags(json_tags)
        file_tags = {"gen_script": "gen_top"}
        self.mp.process_file("top",
                             directory=self.out_dir,
                             file_dict=file_tags,
                             debug=self.dbg)
        #debug=True)

        #if this doesn't throw an error then we're good

    def test_process_file(self):
        """excercise all functions of the class"""
        #print "testing process file"
        filein = open(TEST_MEM_CONFIG_FILENAME)
        json_tags = json.load(filein)
        filein.close()

        self.mp.set_tags(json_tags)
        file_tags = {"location": "${NYSA}/ibuilder/bus"}
        self.mp.process_file(filename="NYSA_README.txt",
                             directory=self.out_dir,
                             file_dict=file_tags,
                             debug=self.dbg)

    def test_resolve_dependencies(self):
        #harder dependency
        filename = "wb_sdram.v"
        self.mp.resolve_dependencies(filename, debug=self.dbg)
        self.assertNotEqual(len(self.mp.verilog_dependency_list), 0)

    def test_has_dependency(self):
        #scan a file that is not a verilog file
        result = self.mp.has_dependencies("wb_gpio", debug=self.dbg)
        self.assertEqual(result, False)
        #scan for a file that is a verilog file with a full path
        file_location = os.path.join(TEST_DEP_MODULE)
        #result = self.mp.has_dependencies(file_location, debug=self.dbg)
        result = self.mp.has_dependencies(file_location, debug=self.dbg)
        self.assertEqual(result, True)
        #scan a file that is a verilog file but not the full path
        result = self.mp.has_dependencies("uart_io_handler.v", debug=self.dbg)
        self.assertEqual(result, True)

        #scan a file that has multiple levels of dependencies
        result = self.mp.has_dependencies("sdram.v", debug=self.dbg)
        self.assertEqual(result, True)

        result = self.mp.has_dependencies("wb_gpio.v", debug=self.dbg)
        self.assertEqual(result, False)

    def test_process_bram_file(self):
        """excercise all functions of the class"""
        #print "testing process file"
        #tag_file = os.path.join(  self.nysa_base,
        #                          "nysa",
        #                          "ibuilder",
        #                          "example_projects",
        #                          "mem_example.json")

        filein = open(TEST_MEM_CONFIG_FILENAME)
        json_tags = json.load(filein)
        filein.close()

        self.mp.set_tags(json_tags)
        file_tags = {"location": "bus"}
        self.mp.process_file(filename="wb_bram.v",
                             directory=self.out_dir,
                             file_dict=file_tags,
                             debug=self.dbg)
        #print self.mp.buf

        #if this doesn't throw an error then we're good

    def test_process_gen_script(self):
        """excercise the script"""
        filein = open(TEST_CONFIG_FILENAME)
        json_tags = json.load(filein)
        self.mp.set_tags(json_tags)
        file_tags = {
            "location": "hdl/rtl/wishbone/interconnect",
            "gen_script": "gen_interconnect"
        }
        self.mp.process_file(filename="wishbone_interconnect.v",
                             directory=self.out_dir,
                             file_dict=file_tags,
                             debug=False)
        #print self.mp.buf
        #if this doesn't throw an error then we're good

    def test_get_list_of_dependencies(self):
        deps = self.mp.get_list_of_dependencies("wb_gpio.v", debug=self.dbg)
        self.assertEqual(len(deps) == 0, True)
        deps = self.mp.get_list_of_dependencies("uart_io_handler.v",
                                                debug=self.dbg)
        self.assertEqual(len(deps) > 0, True)
        deps = self.mp.get_list_of_dependencies("sdram.v", debug=self.dbg)
        self.assertEqual(len(deps) > 0, True)