This is an automated email from the ASF dual-hosted git repository. janc pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/mynewt-core.git
commit 05d803436cef15b0f553711915df05dcd757c6b8 Author: Michal Gorecki <[email protected]> AuthorDate: Fri Jul 14 11:17:52 2023 +0200 Adapt unit tests to 64-bit architecture This allows to run unit tests on 64-bit architecture. This also modifies some mbuf tests, so the test pool buf size is no longer hardcoded. --- fs/nffs/selftest/src/nffs_test_debug.c | 4 +- kernel/os/selftest/src/mbuf_test.c | 6 +-- kernel/os/selftest/src/mbuf_test.h | 6 +-- .../os/selftest/src/testcases/ob_mbuf_test_adj.c | 36 +++++++++----- .../selftest/src/testcases/ob_mbuf_test_pullup.c | 13 +++-- .../selftest/src/testcases/os_mbuf_test_extend.c | 56 ++++++++++++++-------- .../src/testcases/os_mbuf_test_pack_chains.c | 3 -- 7 files changed, 71 insertions(+), 53 deletions(-) diff --git a/fs/nffs/selftest/src/nffs_test_debug.c b/fs/nffs/selftest/src/nffs_test_debug.c index 2e2965d09..148397d26 100644 --- a/fs/nffs/selftest/src/nffs_test_debug.c +++ b/fs/nffs/selftest/src/nffs_test_debug.c @@ -368,12 +368,12 @@ print_nffs_hash_block(struct nffs_hash_entry *he, int verbose) if (db.ndb_inode_id != NFFS_ID_NONE) { nb.nb_inode_entry = nffs_hash_find_inode(db.ndb_inode_id); } else { - nb.nb_inode_entry = (void*)db.ndb_inode_id; + nb.nb_inode_entry = (void *)(uintptr_t)db.ndb_inode_id; } if (db.ndb_prev_id != NFFS_ID_NONE) { nb.nb_prev = nffs_hash_find_block(db.ndb_prev_id); } else { - nb.nb_prev = (void*)db.ndb_prev_id; + nb.nb_prev = (void *)(uintptr_t)db.ndb_prev_id; } nb.nb_data_len = db.ndb_data_len; } diff --git a/kernel/os/selftest/src/mbuf_test.c b/kernel/os/selftest/src/mbuf_test.c index ad5bfecff..1ca42e76b 100644 --- a/kernel/os/selftest/src/mbuf_test.c +++ b/kernel/os/selftest/src/mbuf_test.c @@ -22,11 +22,7 @@ #include "testutil/testutil.h" #include "os_test_priv.h" -/* - * NOTE: currently, the buffer size cannot be changed as some tests are - * hard-coded for this size. - */ -#define MBUF_TEST_POOL_BUF_SIZE (256) +#define MBUF_TEST_POOL_BUF_SIZE (320) #define MBUF_TEST_POOL_BUF_COUNT (10) #define MBUF_TEST_DATA_LEN (1024) diff --git a/kernel/os/selftest/src/mbuf_test.h b/kernel/os/selftest/src/mbuf_test.h index a050a61e8..f693f13fd 100644 --- a/kernel/os/selftest/src/mbuf_test.h +++ b/kernel/os/selftest/src/mbuf_test.h @@ -28,11 +28,7 @@ extern "C" { #endif -/* - * NOTE: currently, the buffer size cannot be changed as some tests are - * hard-coded for this size. - */ -#define MBUF_TEST_POOL_BUF_SIZE (256) +#define MBUF_TEST_POOL_BUF_SIZE (320) #define MBUF_TEST_POOL_BUF_COUNT (10) #define MBUF_TEST_DATA_LEN (1024) diff --git a/kernel/os/selftest/src/testcases/ob_mbuf_test_adj.c b/kernel/os/selftest/src/testcases/ob_mbuf_test_adj.c index dbdd090fa..289ccf684 100644 --- a/kernel/os/selftest/src/testcases/ob_mbuf_test_adj.c +++ b/kernel/os/selftest/src/testcases/ob_mbuf_test_adj.c @@ -21,6 +21,9 @@ TEST_CASE_SELF(os_mbuf_test_adj) { struct os_mbuf *om; + int initial_om_len; + int om_len_check; + int pkthdr_len_check; int rc; os_mbuf_test_setup(); @@ -31,30 +34,37 @@ TEST_CASE_SELF(os_mbuf_test_adj) rc = os_mbuf_append(om, os_mbuf_test_data, sizeof os_mbuf_test_data); TEST_ASSERT_FATAL(rc == 0); - os_mbuf_test_misc_assert_sane(om, os_mbuf_test_data, 222, - sizeof os_mbuf_test_data, 18); + initial_om_len = MBUF_TEST_POOL_BUF_SIZE - sizeof(struct os_mbuf) - + sizeof(struct os_mbuf_pkthdr) - 10; + pkthdr_len_check = 10 + sizeof(struct os_mbuf_pkthdr); + om_len_check = initial_om_len; + + os_mbuf_test_misc_assert_sane(om, os_mbuf_test_data, om_len_check, + sizeof os_mbuf_test_data, pkthdr_len_check); /* Remove from the front. */ os_mbuf_adj(om, 10); - os_mbuf_test_misc_assert_sane(om, os_mbuf_test_data + 10, 212, - sizeof os_mbuf_test_data - 10, 18); + om_len_check -= 10; + os_mbuf_test_misc_assert_sane(om, os_mbuf_test_data + 10, om_len_check, + sizeof os_mbuf_test_data - 10, pkthdr_len_check); /* Remove from the back. */ os_mbuf_adj(om, -10); - os_mbuf_test_misc_assert_sane(om, os_mbuf_test_data + 10, 212, - sizeof os_mbuf_test_data - 20, 18); + os_mbuf_test_misc_assert_sane(om, os_mbuf_test_data + 10, om_len_check, + sizeof os_mbuf_test_data - 20, pkthdr_len_check); /* Remove entire first buffer. */ - os_mbuf_adj(om, 212); - os_mbuf_test_misc_assert_sane(om, os_mbuf_test_data + 222, 0, - sizeof os_mbuf_test_data - 232, 18); + os_mbuf_adj(om, om_len_check); + os_mbuf_test_misc_assert_sane(om, os_mbuf_test_data + initial_om_len, 0, + sizeof os_mbuf_test_data - initial_om_len - 10, + pkthdr_len_check); /* Remove next buffer. */ - os_mbuf_adj(om, 256); - os_mbuf_test_misc_assert_sane(om, os_mbuf_test_data + 478, 0, - sizeof os_mbuf_test_data - 488, 18); + os_mbuf_adj(om, MBUF_TEST_POOL_BUF_SIZE); + os_mbuf_test_misc_assert_sane(om, os_mbuf_test_data + initial_om_len + MBUF_TEST_POOL_BUF_SIZE, 0, + sizeof os_mbuf_test_data - (initial_om_len + MBUF_TEST_POOL_BUF_SIZE + 10), pkthdr_len_check); /* Remove more data than is present. */ os_mbuf_adj(om, 1000); - os_mbuf_test_misc_assert_sane(om, NULL, 0, 0, 18); + os_mbuf_test_misc_assert_sane(om, NULL, 0, 0, pkthdr_len_check); } diff --git a/kernel/os/selftest/src/testcases/ob_mbuf_test_pullup.c b/kernel/os/selftest/src/testcases/ob_mbuf_test_pullup.c index 3e05c16a1..efbed313e 100644 --- a/kernel/os/selftest/src/testcases/ob_mbuf_test_pullup.c +++ b/kernel/os/selftest/src/testcases/ob_mbuf_test_pullup.c @@ -22,6 +22,7 @@ TEST_CASE_SELF(os_mbuf_test_pullup) { struct os_mbuf *om; struct os_mbuf *om2; + int pkthdr_len_check; int rc; os_mbuf_test_setup(); @@ -30,6 +31,8 @@ TEST_CASE_SELF(os_mbuf_test_pullup) om = os_mbuf_get_pkthdr(&os_mbuf_pool, 10); TEST_ASSERT_FATAL(om != NULL); + pkthdr_len_check = 10 + sizeof(struct os_mbuf_pkthdr); + om = os_mbuf_pullup(om, 1); TEST_ASSERT(om == NULL); @@ -39,10 +42,10 @@ TEST_CASE_SELF(os_mbuf_test_pullup) rc = os_mbuf_append(om, os_mbuf_test_data, 1); TEST_ASSERT_FATAL(rc == 0); - os_mbuf_test_misc_assert_sane(om, os_mbuf_test_data, 1, 1, 18); + os_mbuf_test_misc_assert_sane(om, os_mbuf_test_data, 1, 1, pkthdr_len_check); om = os_mbuf_pullup(om, 1); - os_mbuf_test_misc_assert_sane(om, os_mbuf_test_data, 1, 1, 18); + os_mbuf_test_misc_assert_sane(om, os_mbuf_test_data, 1, 1, pkthdr_len_check); /*** Spread os_mbuf_test_data across four mbufs. */ om2 = os_mbuf_get(&os_mbuf_pool, 10); @@ -66,7 +69,7 @@ TEST_CASE_SELF(os_mbuf_test_pullup) TEST_ASSERT_FATAL(OS_MBUF_PKTLEN(om) == 4); om = os_mbuf_pullup(om, 4); - os_mbuf_test_misc_assert_sane(om, os_mbuf_test_data, 4, 4, 18); + os_mbuf_test_misc_assert_sane(om, os_mbuf_test_data, 4, 4, pkthdr_len_check); os_mbuf_free_chain(om); @@ -85,7 +88,7 @@ TEST_CASE_SELF(os_mbuf_test_pullup) os_mbuf_concat(om, om2); om = os_mbuf_pullup(om, 200); - os_mbuf_test_misc_assert_sane(om, os_mbuf_test_data, 200, 200, 18); + os_mbuf_test_misc_assert_sane(om, os_mbuf_test_data, 200, 200, pkthdr_len_check); /*** Partial pullup. */ om = os_mbuf_get_pkthdr(&os_mbuf_pool, 10); @@ -102,5 +105,5 @@ TEST_CASE_SELF(os_mbuf_test_pullup) os_mbuf_concat(om, om2); om = os_mbuf_pullup(om, 150); - os_mbuf_test_misc_assert_sane(om, os_mbuf_test_data, 150, 200, 18); + os_mbuf_test_misc_assert_sane(om, os_mbuf_test_data, 150, 200, pkthdr_len_check); } diff --git a/kernel/os/selftest/src/testcases/os_mbuf_test_extend.c b/kernel/os/selftest/src/testcases/os_mbuf_test_extend.c index 7e5609682..1c84a82b8 100644 --- a/kernel/os/selftest/src/testcases/os_mbuf_test_extend.c +++ b/kernel/os/selftest/src/testcases/os_mbuf_test_extend.c @@ -22,6 +22,9 @@ TEST_CASE_SELF(os_mbuf_test_extend) { struct os_mbuf *om; void *v; + int trailingspace_check; + int om_len_check; + int pkthdr_len_check; os_mbuf_test_setup(); @@ -29,63 +32,76 @@ TEST_CASE_SELF(os_mbuf_test_extend) om = os_mbuf_get_pkthdr(&os_mbuf_pool, 10); TEST_ASSERT_FATAL(om != NULL); - TEST_ASSERT(OS_MBUF_TRAILINGSPACE(om) == 222); + trailingspace_check = MBUF_TEST_POOL_BUF_SIZE - sizeof(struct os_mbuf) - + sizeof(struct os_mbuf_pkthdr) - 10; + om_len_check = 0; + pkthdr_len_check = 10 + sizeof(struct os_mbuf_pkthdr); + + TEST_ASSERT(OS_MBUF_TRAILINGSPACE(om) == trailingspace_check); TEST_ASSERT(SLIST_NEXT(om, om_next) == NULL); - os_mbuf_test_misc_assert_sane(om, NULL, 0, 0, 18); + os_mbuf_test_misc_assert_sane(om, NULL, om_len_check, om_len_check, pkthdr_len_check); v = os_mbuf_extend(om, 20); + trailingspace_check -= 20; + om_len_check += 20; TEST_ASSERT(v != NULL); TEST_ASSERT(v == om->om_data); TEST_ASSERT(om->om_len == 20); - TEST_ASSERT(OS_MBUF_TRAILINGSPACE(om) == 202); + TEST_ASSERT(OS_MBUF_TRAILINGSPACE(om) == trailingspace_check); TEST_ASSERT(SLIST_NEXT(om, om_next) == NULL); - os_mbuf_test_misc_assert_sane(om, NULL, 20, 20, 18); + os_mbuf_test_misc_assert_sane(om, NULL, om_len_check, om_len_check, pkthdr_len_check); v = os_mbuf_extend(om, 100); + trailingspace_check -= 100; + om_len_check += 100; TEST_ASSERT(v != NULL); TEST_ASSERT(v == om->om_data + 20); - TEST_ASSERT(om->om_len == 120); + TEST_ASSERT(om->om_len == om_len_check); - TEST_ASSERT(OS_MBUF_TRAILINGSPACE(om) == 102); + TEST_ASSERT(OS_MBUF_TRAILINGSPACE(om) == trailingspace_check); TEST_ASSERT(SLIST_NEXT(om, om_next) == NULL); - os_mbuf_test_misc_assert_sane(om, NULL, 120, 120, 18); + os_mbuf_test_misc_assert_sane(om, NULL, om_len_check, om_len_check, pkthdr_len_check); v = os_mbuf_extend(om, 101); + trailingspace_check -= 101; + om_len_check += 101; TEST_ASSERT(v != NULL); TEST_ASSERT(v == om->om_data + 120); - TEST_ASSERT(om->om_len == 221); + TEST_ASSERT(om->om_len == om_len_check); - TEST_ASSERT(OS_MBUF_TRAILINGSPACE(om) == 1); + TEST_ASSERT(OS_MBUF_TRAILINGSPACE(om) == trailingspace_check); TEST_ASSERT(SLIST_NEXT(om, om_next) == NULL); - os_mbuf_test_misc_assert_sane(om, NULL, 221, 221, 18); + os_mbuf_test_misc_assert_sane(om, NULL, om_len_check, om_len_check, pkthdr_len_check); - v = os_mbuf_extend(om, 1); + v = os_mbuf_extend(om, trailingspace_check); + om_len_check += trailingspace_check; + trailingspace_check = 0; TEST_ASSERT(v != NULL); TEST_ASSERT(v == om->om_data + 221); - TEST_ASSERT(om->om_len == 222); + TEST_ASSERT(om->om_len == om_len_check); - TEST_ASSERT(OS_MBUF_TRAILINGSPACE(om) == 0); + TEST_ASSERT(OS_MBUF_TRAILINGSPACE(om) == trailingspace_check); TEST_ASSERT(SLIST_NEXT(om, om_next) == NULL); - os_mbuf_test_misc_assert_sane(om, NULL, 222, 222, 18); + os_mbuf_test_misc_assert_sane(om, NULL, om_len_check, om_len_check, pkthdr_len_check); /* Overflow into next buffer. */ v = os_mbuf_extend(om, 1); - TEST_ASSERT(OS_MBUF_TRAILINGSPACE(om) == 0); + TEST_ASSERT(OS_MBUF_TRAILINGSPACE(om) == trailingspace_check); TEST_ASSERT(SLIST_NEXT(om, om_next) != NULL); TEST_ASSERT(v == SLIST_NEXT(om, om_next)->om_data); - TEST_ASSERT(om->om_len == 222); + TEST_ASSERT(om->om_len == om_len_check); TEST_ASSERT(SLIST_NEXT(om, om_next)->om_len == 1); - os_mbuf_test_misc_assert_sane(om, NULL, 222, 223, 18); + os_mbuf_test_misc_assert_sane(om, NULL, om_len_check, om_len_check + 1, pkthdr_len_check); /*** Attempt to extend by an amount larger than max buf size fails. */ - v = os_mbuf_extend(om, 257); + v = os_mbuf_extend(om, MBUF_TEST_POOL_BUF_SIZE + 1); TEST_ASSERT(v == NULL); TEST_ASSERT(OS_MBUF_TRAILINGSPACE(om) == 0); TEST_ASSERT(SLIST_NEXT(om, om_next) != NULL); - TEST_ASSERT(om->om_len == 222); + TEST_ASSERT(om->om_len == om_len_check); TEST_ASSERT(SLIST_NEXT(om, om_next)->om_len == 1); - os_mbuf_test_misc_assert_sane(om, NULL, 222, 223, 18); + os_mbuf_test_misc_assert_sane(om, NULL, om_len_check, om_len_check + 1, pkthdr_len_check); } diff --git a/kernel/os/selftest/src/testcases/os_mbuf_test_pack_chains.c b/kernel/os/selftest/src/testcases/os_mbuf_test_pack_chains.c index a68450620..a3b773ba1 100644 --- a/kernel/os/selftest/src/testcases/os_mbuf_test_pack_chains.c +++ b/kernel/os/selftest/src/testcases/os_mbuf_test_pack_chains.c @@ -18,9 +18,6 @@ */ #include "os_test_priv.h" -#if MBUF_TEST_POOL_BUF_SIZE != 256 - #error "Test pool buffer size must be 256!" -#endif /* This structure is used to create mbuf chains. It contains the length of data that should be in each mbuf in the chain and the amount of
