mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2025-12-19 16:31:27 +01:00
test: slre: add tests for regex library
Inspecting the slre.c code reveals a few bugs; those are easy to demonstrate with the new '=~' test operator. Before fixing them, let's add a place to add test cases. Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
This commit is contained in:
parent
a5af8f9ad2
commit
ced883d92c
@ -1633,6 +1633,7 @@ M: Rasmus Villemoes <ravi@prevas.dk>
|
|||||||
S: Maintained
|
S: Maintained
|
||||||
F: include/slre.h
|
F: include/slre.h
|
||||||
F: lib/slre.c
|
F: lib/slre.c
|
||||||
|
F: test/lib/slre.c
|
||||||
|
|
||||||
SMCCC TRNG
|
SMCCC TRNG
|
||||||
M: Etienne Carriere <etienne.carriere@linaro.org>
|
M: Etienne Carriere <etienne.carriere@linaro.org>
|
||||||
|
|||||||
@ -29,6 +29,7 @@ obj-$(CONFIG_SHA256) += test_sha256_hmac.o
|
|||||||
obj-$(CONFIG_HKDF_MBEDTLS) += test_sha256_hkdf.o
|
obj-$(CONFIG_HKDF_MBEDTLS) += test_sha256_hkdf.o
|
||||||
obj-$(CONFIG_GETOPT) += getopt.o
|
obj-$(CONFIG_GETOPT) += getopt.o
|
||||||
obj-$(CONFIG_CRC8) += test_crc8.o
|
obj-$(CONFIG_CRC8) += test_crc8.o
|
||||||
|
obj-$(CONFIG_REGEX) += slre.o
|
||||||
obj-$(CONFIG_UT_LIB_CRYPT) += test_crypt.o
|
obj-$(CONFIG_UT_LIB_CRYPT) += test_crypt.o
|
||||||
obj-$(CONFIG_UT_TIME) += time.o
|
obj-$(CONFIG_UT_TIME) += time.o
|
||||||
obj-$(CONFIG_$(PHASE_)UT_UNICODE) += unicode.o
|
obj-$(CONFIG_$(PHASE_)UT_UNICODE) += unicode.o
|
||||||
|
|||||||
36
test/lib/slre.c
Normal file
36
test/lib/slre.c
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0 OR MIT
|
||||||
|
|
||||||
|
#include <test/lib.h>
|
||||||
|
#include <test/ut.h>
|
||||||
|
#include <slre.h>
|
||||||
|
|
||||||
|
struct re_test {
|
||||||
|
const char *str;
|
||||||
|
const char *re;
|
||||||
|
int match;
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct re_test re_test[] = {
|
||||||
|
{ "123", "^\\d+$", 1},
|
||||||
|
{ "x23", "^\\d+$", 0},
|
||||||
|
{ "banana", "^([bn]a)*$", 1},
|
||||||
|
{ "panama", "^([bn]a)*$", 0},
|
||||||
|
{}
|
||||||
|
};
|
||||||
|
|
||||||
|
static int lib_slre(struct unit_test_state *uts)
|
||||||
|
{
|
||||||
|
const struct re_test *t;
|
||||||
|
|
||||||
|
for (t = re_test; t->str; t++) {
|
||||||
|
struct slre slre;
|
||||||
|
|
||||||
|
ut_assert(slre_compile(&slre, t->re));
|
||||||
|
ut_assertf(!!slre_match(&slre, t->str, strlen(t->str), NULL) == t->match,
|
||||||
|
"'%s' unexpectedly %s '%s'\n", t->str,
|
||||||
|
t->match ? "didn't match" : "matched", t->re);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
LIB_TEST(lib_slre, 0);
|
||||||
Loading…
x
Reference in New Issue
Block a user