aboutsummaryrefslogtreecommitdiff
path: root/ethosu/tensor_allocator/test/test_tensor_allocator.py
diff options
context:
space:
mode:
authorLouis Verhaard <louis.verhaard@arm.com>2021-01-21 13:16:18 +0100
committerLouis Verhaard <louis.verhaard@arm.com>2021-01-22 14:24:21 +0100
commitd4738e5d68260ed56c0b878cd5dc11c67fdbbfaa (patch)
treeb7bccfbcee2f56d885cee42d5f48dff8107b7d47 /ethosu/tensor_allocator/test/test_tensor_allocator.py
parent606063fb1c37ddb211940b8ad211f31824aaee60 (diff)
downloadethos-u-vela-d4738e5d68260ed56c0b878cd5dc11c67fdbbfaa.tar.gz
MLBEDSW-3843: Segmentation fault search allocator
Vector index could become negative in search allocator. Change-Id: I3b77474a86fd5f4227d8b2a825d11ec8ec0fb073 Signed-off-by: Louis Verhaard <louis.verhaard@arm.com>
Diffstat (limited to 'ethosu/tensor_allocator/test/test_tensor_allocator.py')
-rw-r--r--ethosu/tensor_allocator/test/test_tensor_allocator.py29
1 files changed, 24 insertions, 5 deletions
diff --git a/ethosu/tensor_allocator/test/test_tensor_allocator.py b/ethosu/tensor_allocator/test/test_tensor_allocator.py
index b9b547fc..5350fde0 100644
--- a/ethosu/tensor_allocator/test/test_tensor_allocator.py
+++ b/ethosu/tensor_allocator/test/test_tensor_allocator.py
@@ -16,15 +16,34 @@
#
# Description:
# Unit tests for tensor_allocator.
+import pytest
+
from ethosu import tensor_allocator
+test_data = [
+ ([(0, 100, 8000), (0, 1, 8016), (100, 110, 2000), (108, 110, 4000), (109, 110, 6000)], 16016),
+ (
+ [
+ (0, 23, 131072),
+ (4, 5, 65568),
+ (4, 9, 8192),
+ (8, 30, 15360),
+ (10, 11, 65568),
+ (10, 15, 4096),
+ (16, 17, 65552),
+ (16, 21, 2048),
+ (22, 23, 32784),
+ (22, 27, 1024),
+ ],
+ 216096,
+ ),
+]
+
-def test_allocate():
+@pytest.mark.parametrize("lrs, expected_size", test_data)
+def test_allocate(lrs, expected_size):
"""Tests the search allocator"""
- # Create an input that requires a search to produce a perfect allocation.
- # Should result in size 16016
- lrs = [(0, 100, 8000), (0, 1, 8016), (100, 110, 2000), (108, 110, 4000), (109, 110, 6000)]
input = [x for lr in lrs for x in lr]
res = tensor_allocator.allocate(input, 0)
assert len(res) == len(lrs)
- assert max(addr + lr[2] for addr, lr in zip(res, lrs)) == 16016
+ assert max(addr + lr[2] for addr, lr in zip(res, lrs)) == expected_size