diff --git a/tests/memarray/main.c b/tests/memarray/main.c index 9b68d44af4..394a76b372 100644 --- a/tests/memarray/main.c +++ b/tests/memarray/main.c @@ -25,9 +25,15 @@ #include "memarray.h" -#define MAX_NUMBER_BLOCKS (10) #define MESSAGE_SIZE (8U) + +#ifndef MAX_NUMBER_BLOCKS +#define MAX_NUMBER_BLOCKS (10) +#endif + +#ifndef NUMBER_OF_TESTS #define NUMBER_OF_TESTS (12) +#endif extern int _ps_handler(int argc, char **argv); @@ -94,6 +100,9 @@ void free_memory(struct block_t *head) int main(void) { + printf("MAX_NUMBER_BLOCKS: %d\n", MAX_NUMBER_BLOCKS); + printf("NUMBER_OF_TESTS: %d\n", NUMBER_OF_TESTS); + memory_block_init(); int count = 0; diff --git a/tests/memarray/tests/01-run.py b/tests/memarray/tests/01-run.py new file mode 100755 index 0000000000..dfef07b788 --- /dev/null +++ b/tests/memarray/tests/01-run.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python3 + +# Copyright (C) 2019 Inria +# +# This file is subject to the terms and conditions of the GNU Lesser +# General Public License v2.1. See the file LICENSE in the top level +# directory for more details. + +import sys +from testrunner import run + + +def testfunc(child): + child.expect(r'MAX_NUMBER_BLOCKS: (\d+)\r\n') + max_number_blocks = int(child.match.group(1)) + child.expect(r'NUMBER_OF_TESTS: (\d+)\r\n') + number_of_tests = int(child.match.group(1)) + for test in range(number_of_tests): + child.expect_exact("TEST #{}:".format(test + 1)) + for i in range(max_number_blocks): + child.expect(r'\({}, @@@@@@@\) Allocated \d+ Bytes at 0x[a-z0-9]+,' + r' total [0-9]+\r\n'.format(i)) + for i in range(max_number_blocks): + child.expect(r'Free \({}\) \d+ Bytes at 0x[a-z0-9]+,' + ' total [0-9]+\r\n'.format(i)) + child.expect_exact("Finishing") + + +if __name__ == "__main__": + sys.exit(run(testfunc))