tests: lib: cbprintf_package: Extend to test static packaging
Extend test to validate cbprintf static packaging on various platforms. Added more test configurations: complete, nano, long double. Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
This commit is contained in:
parent
f94689204c
commit
a92214b8f4
3 changed files with 48 additions and 4 deletions
|
@ -1,2 +1 @@
|
||||||
CONFIG_ZTEST=y
|
CONFIG_ZTEST=y
|
||||||
CONFIG_CBPRINTF_COMPLETE=y
|
|
||||||
|
|
|
@ -27,7 +27,8 @@ static int out(int c, void *dest)
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
static char runtime_buf[128];
|
static char static_buf[512];
|
||||||
|
static char runtime_buf[512];
|
||||||
static char compare_buf[128];
|
static char compare_buf[128];
|
||||||
|
|
||||||
void dump(const char *desc, uint8_t *package, size_t len)
|
void dump(const char *desc, uint8_t *package, size_t len)
|
||||||
|
@ -58,13 +59,23 @@ void unpack(const char *desc, struct out_buffer *buf,
|
||||||
}; \
|
}; \
|
||||||
int rc = cbprintf_package(NULL, 0, fmt, __VA_ARGS__); \
|
int rc = cbprintf_package(NULL, 0, fmt, __VA_ARGS__); \
|
||||||
zassert_true(rc > 0, "cbprintf_package() returned %d", rc); \
|
zassert_true(rc > 0, "cbprintf_package() returned %d", rc); \
|
||||||
size_t len = rc; \
|
int len = rc; \
|
||||||
uint8_t __aligned(8) rt_package[len]; \
|
/* Aligned so the package is similar to the static one. */ \
|
||||||
|
uint8_t __aligned(CBPRINTF_PACKAGE_ALIGNMENT) rt_package[len]; \
|
||||||
memset(rt_package, 0, len); \
|
memset(rt_package, 0, len); \
|
||||||
rc = cbprintf_package(rt_package, len, fmt, __VA_ARGS__); \
|
rc = cbprintf_package(rt_package, len, fmt, __VA_ARGS__); \
|
||||||
zassert_equal(rc, len, "cbprintf_package() returned %d, expected %d", rc, len); \
|
zassert_equal(rc, len, "cbprintf_package() returned %d, expected %d", rc, len); \
|
||||||
dump("runtime", rt_package, len); \
|
dump("runtime", rt_package, len); \
|
||||||
unpack("runtime", &rt_buf, rt_package, len); \
|
unpack("runtime", &rt_buf, rt_package, len); \
|
||||||
|
\
|
||||||
|
struct out_buffer st_buf = { \
|
||||||
|
.buf = static_buf, .idx = 0, .size = sizeof(static_buf) \
|
||||||
|
}; \
|
||||||
|
CBPRINTF_STATIC_PACKAGE(NULL, 0, len, fmt, __VA_ARGS__); \
|
||||||
|
uint8_t __aligned(CBPRINTF_PACKAGE_ALIGNMENT) package[len]; \
|
||||||
|
CBPRINTF_STATIC_PACKAGE(package, len, len, fmt, __VA_ARGS__); \
|
||||||
|
dump("static", package, len); \
|
||||||
|
unpack("static", &st_buf, package, len); \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
void test_cbprintf_package(void)
|
void test_cbprintf_package(void)
|
||||||
|
@ -97,6 +108,11 @@ void test_cbprintf_package(void)
|
||||||
TEST_PACKAGING("test %c %p", c, &c);
|
TEST_PACKAGING("test %c %p", c, &c);
|
||||||
if (IS_ENABLED(CONFIG_CBPRINTF_FP_SUPPORT)) {
|
if (IS_ENABLED(CONFIG_CBPRINTF_FP_SUPPORT)) {
|
||||||
TEST_PACKAGING("test %f %a", f, d);
|
TEST_PACKAGING("test %f %a", f, d);
|
||||||
|
#if CONFIG_CBPRINTF_PACKAGE_LONGDOUBLE
|
||||||
|
long double ld = 1.2333;
|
||||||
|
|
||||||
|
TEST_PACKAGING("test %Lf", ld);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,9 @@ tests:
|
||||||
qemu_arc_em qemu_arc_hs qemu_cortex_a53 qemu_cortex_m0 qemu_cortex_m3
|
qemu_arc_em qemu_arc_hs qemu_cortex_a53 qemu_cortex_m0 qemu_cortex_m3
|
||||||
qemu_cortex_r5 qemu_leon3 qemu_nios2 qemu_riscv32 qemu_riscv64 qemu_x86
|
qemu_cortex_r5 qemu_leon3 qemu_nios2 qemu_riscv32 qemu_riscv64 qemu_x86
|
||||||
qemu_x86_64 qemu_xtensa
|
qemu_x86_64 qemu_xtensa
|
||||||
|
extra_configs:
|
||||||
|
- CONFIG_CBPRINTF_COMPLETE=y
|
||||||
|
|
||||||
libraries.cbprintf_package_fp:
|
libraries.cbprintf_package_fp:
|
||||||
tags: cbprintf
|
tags: cbprintf
|
||||||
integration_platforms:
|
integration_platforms:
|
||||||
|
@ -17,3 +20,29 @@ tests:
|
||||||
qemu_x86_64 qemu_xtensa
|
qemu_x86_64 qemu_xtensa
|
||||||
extra_configs:
|
extra_configs:
|
||||||
- CONFIG_CBPRINTF_FP_SUPPORT=y
|
- CONFIG_CBPRINTF_FP_SUPPORT=y
|
||||||
|
- CONFIG_CBPRINTF_COMPLETE=y
|
||||||
|
|
||||||
|
libraries.cbprintf_package_long_double:
|
||||||
|
tags: cbprintf
|
||||||
|
integration_platforms:
|
||||||
|
- native_posix
|
||||||
|
platform_allow: >
|
||||||
|
qemu_arc_em qemu_arc_hs qemu_cortex_a53 qemu_cortex_m0 qemu_cortex_m3
|
||||||
|
qemu_cortex_r5 qemu_leon3 qemu_nios2 qemu_riscv64
|
||||||
|
qemu_x86_64 qemu_xtensa
|
||||||
|
platform_exclude: qemu_riscv32
|
||||||
|
extra_configs:
|
||||||
|
- CONFIG_CBPRINTF_FP_SUPPORT=y
|
||||||
|
- CONFIG_CBPRINTF_COMPLETE=y
|
||||||
|
- CONFIG_CBPRINTF_PACKAGE_LONGDOUBLE=y
|
||||||
|
|
||||||
|
libraries.cbprintf_package_nano:
|
||||||
|
tags: cbprintf
|
||||||
|
integration_platforms:
|
||||||
|
- native_posix
|
||||||
|
platform_allow: >
|
||||||
|
qemu_arc_em qemu_arc_hs qemu_cortex_a53 qemu_cortex_m0 qemu_cortex_m3
|
||||||
|
qemu_cortex_r5 qemu_leon3 qemu_nios2 qemu_riscv32 qemu_riscv64 qemu_x86
|
||||||
|
qemu_x86_64 qemu_xtensa
|
||||||
|
extra_configs:
|
||||||
|
- CONFIG_CBPRINTF_NANO=y
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue