feat(tlc): formalise random generation of TEs
To facillitate our testing, add some fixtures to make it easier to
generate transfer entry data.
Change-Id: Ieb76e54e69f410f4f7e1b55fc2cff282e592d1a4
Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
diff --git a/tools/tlc/tests/conftest.py b/tools/tlc/tests/conftest.py
index b8f88b5..155746a 100644
--- a/tools/tlc/tests/conftest.py
+++ b/tools/tlc/tests/conftest.py
@@ -9,6 +9,8 @@
""" Common configurations and fixtures for test environment."""
+from random import randint
+
import pytest
import yaml
from click.testing import CliRunner
@@ -16,6 +18,10 @@
from tlc.cli import cli
+def generate_random_bytes(n):
+ return bytes([randint(0, 255) for _ in range(n)])
+
+
@pytest.fixture
def tmptlstr(tmpdir):
return tmpdir.join("tl.bin").strpath
@@ -70,3 +76,20 @@
@pytest.fixture
def tlc_entries(tmpfdt):
return [(0, "/dev/null"), (1, tmpfdt.strpath), (0x102, tmpfdt.strpath)]
+
+
+@pytest.fixture
+def random_entry():
+ def _random_entry(max_size):
+ return randint(0, 0xFFFFFF), generate_random_bytes(randint(0, max_size))
+
+ return _random_entry
+
+
+@pytest.fixture
+def random_entries(random_entry):
+ def _random_entries(n=5, max_size=0x100):
+ for _ in range(n):
+ yield random_entry(max_size)
+
+ return _random_entries