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, [])
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"])
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"
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"])