tests/memarray: add extend/reduce tests
This commit is contained in:
parent
cb221aaaf0
commit
4868094fbf
@ -1,3 +1,7 @@
|
|||||||
BOARD_INSUFFICIENT_MEMORY := \
|
BOARD_INSUFFICIENT_MEMORY := \
|
||||||
|
arduino-duemilanove \
|
||||||
|
arduino-nano \
|
||||||
|
arduino-uno \
|
||||||
|
atmega328p \
|
||||||
nucleo-l011k4 \
|
nucleo-l011k4 \
|
||||||
#
|
#
|
||||||
|
|||||||
@ -32,11 +32,11 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef NUMBER_OF_TESTS
|
#ifndef NUMBER_OF_TESTS
|
||||||
#define NUMBER_OF_TESTS (12)
|
#define NUMBER_OF_TESTS (1)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef NUMBER_OF_LOOPS
|
#ifndef NUMBER_OF_LOOPS
|
||||||
#define NUMBER_OF_LOOPS (2)
|
#define NUMBER_OF_LOOPS (1)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
@ -50,6 +50,7 @@ struct block_t {
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct block_t block_storage_data[MAX_NUMBER_BLOCKS];
|
struct block_t block_storage_data[MAX_NUMBER_BLOCKS];
|
||||||
|
struct block_t block_storage_data_extend[MAX_NUMBER_BLOCKS];
|
||||||
memarray_t block_storage;
|
memarray_t block_storage;
|
||||||
|
|
||||||
int total = 0;
|
int total = 0;
|
||||||
@ -141,6 +142,48 @@ int main(void)
|
|||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
puts("Extend and reduce tests");
|
||||||
|
|
||||||
|
printf("Memarray available: %u\n",
|
||||||
|
(unsigned)memarray_available(&block_storage));
|
||||||
|
|
||||||
|
/* Extend with second block */
|
||||||
|
memarray_extend(&block_storage, block_storage_data_extend,
|
||||||
|
MAX_NUMBER_BLOCKS);
|
||||||
|
printf("Memarray available: %u\n",
|
||||||
|
(unsigned)memarray_available(&block_storage));
|
||||||
|
|
||||||
|
/* remove the original block */
|
||||||
|
int res = memarray_reduce(&block_storage, block_storage_data,
|
||||||
|
MAX_NUMBER_BLOCKS);
|
||||||
|
printf("Memarray reduction: %d available: %u\n",
|
||||||
|
res, (unsigned)memarray_available(&block_storage));
|
||||||
|
|
||||||
|
/* try to remove original block a second time */
|
||||||
|
res = memarray_reduce(&block_storage, block_storage_data,
|
||||||
|
MAX_NUMBER_BLOCKS);
|
||||||
|
printf("Memarray reduction: %d available: %u\n",
|
||||||
|
res, (unsigned)memarray_available(&block_storage));
|
||||||
|
|
||||||
|
/* remove the extension block */
|
||||||
|
res = memarray_reduce(&block_storage, block_storage_data_extend,
|
||||||
|
MAX_NUMBER_BLOCKS);
|
||||||
|
printf("Memarray reduction: %d available: %u\n",
|
||||||
|
res, (unsigned)memarray_available(&block_storage));
|
||||||
|
|
||||||
|
/* extend again with the original block */
|
||||||
|
memarray_extend(&block_storage, block_storage_data, MAX_NUMBER_BLOCKS);
|
||||||
|
|
||||||
|
/* remove one element */
|
||||||
|
memarray_alloc(&block_storage);
|
||||||
|
printf("Memarray available: %u\n",
|
||||||
|
(unsigned)memarray_available(&block_storage));
|
||||||
|
|
||||||
|
/* try to reduce with a missing element */
|
||||||
|
res = memarray_reduce(&block_storage, block_storage_data, MAX_NUMBER_BLOCKS);
|
||||||
|
printf("Memarray reduction: %d available: %u\n",
|
||||||
|
res, (unsigned)memarray_available(&block_storage));
|
||||||
|
|
||||||
printf("Finishing\n");
|
printf("Finishing\n");
|
||||||
_ps_handler(0, NULL);
|
_ps_handler(0, NULL);
|
||||||
|
|
||||||
|
|||||||
@ -27,6 +27,20 @@ def testfunc(child):
|
|||||||
for i in range(max_number_blocks):
|
for i in range(max_number_blocks):
|
||||||
child.expect(r'Free \({}\) \d+ Bytes at 0x[a-z0-9]+,'
|
child.expect(r'Free \({}\) \d+ Bytes at 0x[a-z0-9]+,'
|
||||||
' total [0-9]+\r\n'.format(i))
|
' total [0-9]+\r\n'.format(i))
|
||||||
|
|
||||||
|
child.expect_exact("Extend and reduce tests")
|
||||||
|
|
||||||
|
child.expect_exact("Memarray available: {}".format(max_number_blocks))
|
||||||
|
child.expect_exact("Memarray available: {}".format(2 * max_number_blocks))
|
||||||
|
child.expect_exact("Memarray reduction: 0 available: {}"
|
||||||
|
"".format(max_number_blocks))
|
||||||
|
child.expect_exact("Memarray reduction: -1 available: {}"
|
||||||
|
"".format(max_number_blocks))
|
||||||
|
child.expect_exact("Memarray reduction: 0 available: 0")
|
||||||
|
child.expect_exact("Memarray available: {}".format(max_number_blocks - 1))
|
||||||
|
child.expect_exact("Memarray reduction: -1 available: {}"
|
||||||
|
"".format(max_number_blocks - 1))
|
||||||
|
|
||||||
child.expect_exact("Finishing")
|
child.expect_exact("Finishing")
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user