aboutsummaryrefslogtreecommitdiffstats
path: root/testsuite/pyunit/dom
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/pyunit/dom')
-rw-r--r--testsuite/pyunit/dom/Expressions.py14
-rw-r--r--testsuite/pyunit/dom/Literals.py59
-rw-r--r--testsuite/pyunit/dom/Sanity.py3
-rw-r--r--testsuite/pyunit/dom/SimpleEntity.py10
-rw-r--r--testsuite/pyunit/dom/SimplePackage.py8
5 files changed, 48 insertions, 46 deletions
diff --git a/testsuite/pyunit/dom/Expressions.py b/testsuite/pyunit/dom/Expressions.py
index 4de36a2b2..113e541ac 100644
--- a/testsuite/pyunit/dom/Expressions.py
+++ b/testsuite/pyunit/dom/Expressions.py
@@ -87,9 +87,9 @@ class Expressions(TestCase):
default: Expression = self.parse(filename, constantDeclartion)
# Start checks
- self.assertTrue(isinstance(default, InverseExpression))
- self.assertTrue(isinstance(default.Operand, SimpleObjectOrFunctionCallSymbol))
- self.assertTrue(default.Operand.SymbolName == "true")
+ self.assertIsInstance(default, InverseExpression)
+ self.assertIsInstance(default.Operand, SimpleObjectOrFunctionCallSymbol)
+ self.assertEqual("true", str(default.Operand.SymbolName))
# def test_AbsExpression(self):
# filename: Path = self._root / "{className}_{funcName}.vhdl".format(
@@ -103,8 +103,8 @@ class Expressions(TestCase):
# default: Expression = self.parse(filename, constantDeclartion)
#
# # Start checks
- # self.assertTrue(isinstance(default, AbsoluteExpression))
- # self.assertTrue(isinstance(default.Operand, SimpleObjectOrFunctionCallSymbol))
+ # self.assertIsInstance(default, AbsoluteExpression)
+ # self.assertIsInstance(default.Operand, SimpleObjectOrFunctionCallSymbol)
# self.assertTrue(default.Operand.SymbolName == "-3")
# def test_Aggregare(self):
@@ -130,6 +130,6 @@ class Expressions(TestCase):
# package: Package = design.Documents[0].Packages[0]
# item: Constant = package.DeclaredItems[0]
# default: Expression = item.DefaultExpression
- # self.assertTrue(isinstance(default, InverseExpression))
- # self.assertTrue(isinstance(default.Operand, SimpleObjectOrFunctionCallSymbol))
+ # self.assertIsInstance(default, InverseExpression)
+ # self.assertIsInstance(default.Operand, SimpleObjectOrFunctionCallSymbol)
# self.assertTrue(default.Operand.SymbolName == "true")
diff --git a/testsuite/pyunit/dom/Literals.py b/testsuite/pyunit/dom/Literals.py
index a69481ef4..418a1b76d 100644
--- a/testsuite/pyunit/dom/Literals.py
+++ b/testsuite/pyunit/dom/Literals.py
@@ -34,6 +34,10 @@ from pathlib import Path
from textwrap import dedent
from unittest import TestCase
+from pyVHDLModel.VHDLModel import Expression
+
+from pyGHDL.dom.DesignUnit import Package
+
from pyGHDL.dom.NonStandard import Design, Document
from pyGHDL.dom.Object import Constant
from pyGHDL.dom.Literal import IntegerLiteral
@@ -47,39 +51,38 @@ if __name__ == "__main__":
class Literals(TestCase):
_root = Path(__file__).resolve().parent.parent
-
- def test_IntegerLiteral(self):
- self._filename: Path = self._root / "{className}.vhdl".format(
- className=self.__class__.__name__
- )
-
- sourceCode = dedent(
+ _design = Design()
+ _packageTemplate = dedent(
"""\
package package_1 is
- constant c0 : integer := 0;
- constant c1 : integer := 1;
- constant c2 : integer := 1024;
- constant c3 : integer := 1048576;
+ {code}
end package;
"""
)
- expected = (0, 1, 1024, 1048576)
- with self._filename.open(mode="w", encoding="utf-8") as file:
- file.write(sourceCode)
+ def parse(self, filename: Path, code: str) -> Expression:
+ sourceCode = self._packageTemplate.format(code=code)
+
+ document = Document(filename, sourceCode)
+ self._design.Documents.append(document)
+
+ # Traverse already to default value expression
+ package: Package = document.Packages[0]
+ item: Constant = package.DeclaredItems[0]
+ default: Expression = item.DefaultExpression
+
+ return default
+
+ def test_IntegerLiteral(self):
+ _filename: Path = self._root / "{className}.vhdl".format(
+ className=self.__class__.__name__
+ )
+
+ constantDeclartion = "constant c0 : integer := 0;"
+ expected = (0, 1, 1024, 1048576)
- design = Design()
- document = Document(self._filename)
- design.Documents.append(document)
+ # Parse in-memory
+ default: Expression = self.parse(_filename, constantDeclartion)
- self.assertEqual(len(design.Documents[0].Packages), 1)
- package = design.Documents[0].Packages[0]
- self.assertTrue(package.Name == "package_1")
- self.assertEqual(len(package.DeclaredItems), len(expected))
- for i in range(len(expected)):
- item: Constant = package.DeclaredItems[i]
- self.assertTrue(isinstance(item, Constant))
- self.assertTrue(item.Name == "c{}".format(i))
- self.assertTrue(str(item.SubType.SymbolName) == "integer")
- self.assertTrue(isinstance(item.DefaultExpression, IntegerLiteral))
- self.assertTrue(item.DefaultExpression.Value == expected[i])
+ self.assertIsInstance(default, IntegerLiteral)
+ self.assertEqual(expected[0], default.Value)
diff --git a/testsuite/pyunit/dom/Sanity.py b/testsuite/pyunit/dom/Sanity.py
index b0177f8b3..adf838646 100644
--- a/testsuite/pyunit/dom/Sanity.py
+++ b/testsuite/pyunit/dom/Sanity.py
@@ -49,10 +49,9 @@ _GHDL_ROOT = _TESTSUITE_ROOT.parent
design = Design()
-@mark.xfail
@mark.parametrize("file", [str(f.relative_to(_TESTSUITE_ROOT)) for f in _TESTSUITE_ROOT.glob("sanity/**/*.vhdl")])
def test_AllVHDLSources(file):
- check_call([sys_executable, _GHDL_ROOT / "pyGHDL/cli/DOM.py", file], stderr=STDOUT)
+ check_call([sys_executable, _GHDL_ROOT / "pyGHDL/cli/dom.py", "pretty", "-f", file], stderr=STDOUT)
# document = Document(Path(file))
# design.Documents.append(document)
diff --git a/testsuite/pyunit/dom/SimpleEntity.py b/testsuite/pyunit/dom/SimpleEntity.py
index 9ee55508c..68f702410 100644
--- a/testsuite/pyunit/dom/SimpleEntity.py
+++ b/testsuite/pyunit/dom/SimpleEntity.py
@@ -59,20 +59,20 @@ class SimpleEntity(TestCase):
document = Document(self._filename)
design.Documents.append(document)
- self.assertTrue(len(design.Documents) == 1)
+ self.assertEqual(1, len(design.Documents))
def test_Entity(self):
design = Design()
document = Document(self._filename)
design.Documents.append(document)
- self.assertEqual(len(design.Documents[0].Entities), 1)
- self.assertTrue(design.Documents[0].Entities[0].Name == "entity_1")
+ self.assertEqual(1, len(design.Documents[0].Entities))
+ self.assertEqual("entity_1", design.Documents[0].Entities[0].Identifier)
def test_Architecture(self):
design = Design()
document = Document(self._filename)
design.Documents.append(document)
- self.assertEqual(len(design.Documents[0].Architectures), 1)
- self.assertTrue(design.Documents[0].Architectures[0].Name == "behav")
+ self.assertEqual(1, len(design.Documents[0].Architectures))
+ self.assertEqual("behav", design.Documents[0].Architectures[0].Identifier)
diff --git a/testsuite/pyunit/dom/SimplePackage.py b/testsuite/pyunit/dom/SimplePackage.py
index 399a676b4..9c62db4a1 100644
--- a/testsuite/pyunit/dom/SimplePackage.py
+++ b/testsuite/pyunit/dom/SimplePackage.py
@@ -51,13 +51,13 @@ class SimplePackage(TestCase):
document = Document(self._filename)
design.Documents.append(document)
- self.assertEqual(len(design.Documents[0].Packages), 1)
- self.assertTrue(design.Documents[0].Packages[0].Name == "pack_1")
+ self.assertEqual(1, len(design.Documents[0].Packages))
+ self.assertEqual("pack_1", design.Documents[0].Packages[0].Identifier)
def test_PackageBody(self):
design = Design()
document = Document(self._filename)
design.Documents.append(document)
- self.assertEqual(len(design.Documents[0].PackageBodies), 1)
- self.assertTrue(design.Documents[0].PackageBodies[0].Name == "pack_1")
+ self.assertEqual(1, len(design.Documents[0].PackageBodies))
+ self.assertEqual("pack_1", design.Documents[0].PackageBodies[0].Identifier)