예제 #1
0
    def test_duplicate_global_attributes_not_ok(self):
        try:
            _find_tests_and_attributes("""\
// vunit: .arg0
// vunit: .arg0
        if run("test1")
        """, file_name="file.vhd")
        except RuntimeError as exc:
            self.assertEqual(str(exc),
                             "Duplicate attribute .arg0 of file.vhd line 2, previously defined on line 1")
        else:
            assert False, "RuntimeError not raised"
예제 #2
0
    def test_duplicate_global_attributes_not_ok(self):
        try:
            _find_tests_and_attributes("""\
// vunit: .arg0
// vunit: .arg0
        if run("test1")
        """,
                                       file_name="file.vhd")
        except RuntimeError as exc:
            self.assertEqual(
                str(exc),
                "Duplicate attribute .arg0 of file.vhd line 2, previously defined on line 1"
            )
        else:
            assert False, "RuntimeError not raised"
예제 #3
0
    def test_associate_tests_and_attributes(self):
        (test1,
         test2), attributes = _find_tests_and_attributes("""\
// vunit: .arg0
        if run("test1")
// vunit: .arg1
// vunit: .arg1b
        if run("test2") // vunit: .arg2
// vunit: .arg2b
        """,
                                                         file_name="file.vhd")

        self.assertEqual([attr.name for attr in attributes], [".arg0"])

        self.assertEqual(test1.name, "test1")
        self.assertEqual(test1.location.file_name, "file.vhd")
        self.assertEqual(test1.location.lineno, 2)
        self.assertEqual([attr.name for attr in test1.attributes],
                         [".arg1", ".arg1b"])

        self.assertEqual(test2.name, "test2")
        self.assertEqual(test2.location.file_name, "file.vhd")
        self.assertEqual(test2.location.lineno, 5)
        self.assertEqual([attr.name for attr in test2.attributes],
                         [".arg2", ".arg2b"])
예제 #4
0
    def test_does_not_associate_tests_and_legacy_attributes(self):
        code = """\
        if run("test1")
// vunit_pragma run_all_in_same_sim
// vunit_pragma fail_on_warning
        """
        (test1, ), attributes = _find_tests_and_attributes(
            code, file_name="file.vhd")

        self.assertEqual(
            attributes,
            [
                LegacyAttribute(
                    "run_all_in_same_sim",
                    None,
                    _code_file_location(code, "run_all_in_same_sim",
                                        "file.vhd"),
                ),
                LegacyAttribute(
                    "fail_on_warning",
                    None,
                    _code_file_location(code, "fail_on_warning", "file.vhd"),
                ),
            ],
        )

        self.assertEqual(test1.name, "test1")
        self.assertEqual(test1.location.file_name, "file.vhd")
        self.assertEqual(test1.location.lineno, 1)
        self.assertEqual(test1.attributes, [])
예제 #5
0
    def test_does_not_associate_tests_and_legacy_attributes(self):
        code = """\
        if run("test1")
// vunit_pragma run_all_in_same_sim
// vunit_pragma fail_on_warning
        """
        (test1,), attributes = _find_tests_and_attributes(code, file_name="file.vhd")

        self.assertEqual(attributes, [LegacyAttribute("run_all_in_same_sim", None,
                                                      _code_file_location(code, "run_all_in_same_sim", "file.vhd")),
                                      LegacyAttribute("fail_on_warning", None,
                                                      _code_file_location(code, "fail_on_warning", "file.vhd"))])

        self.assertEqual(test1.name, "test1")
        self.assertEqual(test1.location.file_name, "file.vhd")
        self.assertEqual(test1.location.lineno, 1)
        self.assertEqual(test1.attributes, [])
예제 #6
0
    def test_duplicate_attributes_ok(self):
        (test1, test2), attributes = _find_tests_and_attributes("""\
// vunit: .arg0
        if run("test1")
// vunit: .arg0
        if run("test2")
// vunit: .arg0
        """, file_name="file.vhd")

        self.assertEqual([attr.name for attr in attributes], [".arg0"])

        self.assertEqual(test1.name, "test1")
        self.assertEqual(test1.location.file_name, "file.vhd")
        self.assertEqual(test1.location.lineno, 2)
        self.assertEqual([attr.name for attr in test1.attributes], [".arg0"])

        self.assertEqual(test2.name, "test2")
        self.assertEqual(test2.location.file_name, "file.vhd")
        self.assertEqual(test2.location.lineno, 4)
        self.assertEqual([attr.name for attr in test2.attributes], [".arg0"])
예제 #7
0
    def test_associate_tests_and_attributes(self):
        (test1, test2), attributes = _find_tests_and_attributes("""\
// vunit: .arg0
        if run("test1")
// vunit: .arg1
// vunit: .arg1b
        if run("test2") // vunit: .arg2
// vunit: .arg2b
        """, file_name="file.vhd")

        self.assertEqual([attr.name for attr in attributes], [".arg0"])

        self.assertEqual(test1.name, "test1")
        self.assertEqual(test1.location.file_name, "file.vhd")
        self.assertEqual(test1.location.lineno, 2)
        self.assertEqual([attr.name for attr in test1.attributes], [".arg1", ".arg1b"])

        self.assertEqual(test2.name, "test2")
        self.assertEqual(test2.location.file_name, "file.vhd")
        self.assertEqual(test2.location.lineno, 5)
        self.assertEqual([attr.name for attr in test2.attributes], [".arg2", ".arg2b"])
예제 #8
0
    def test_duplicate_attributes_ok(self):
        (test1,
         test2), attributes = _find_tests_and_attributes("""\
// vunit: .arg0
        if run("test1")
// vunit: .arg0
        if run("test2")
// vunit: .arg0
        """,
                                                         file_name="file.vhd")

        self.assertEqual([attr.name for attr in attributes], [".arg0"])

        self.assertEqual(test1.name, "test1")
        self.assertEqual(test1.location.file_name, "file.vhd")
        self.assertEqual(test1.location.lineno, 2)
        self.assertEqual([attr.name for attr in test1.attributes], [".arg0"])

        self.assertEqual(test2.name, "test2")
        self.assertEqual(test2.location.file_name, "file.vhd")
        self.assertEqual(test2.location.lineno, 4)
        self.assertEqual([attr.name for attr in test2.attributes], [".arg0"])