diff options
| author | Mattias Andrée <m@maandree.se> | 2025-12-17 16:20:43 +0100 |
|---|---|---|
| committer | Mattias Andrée <m@maandree.se> | 2025-12-17 16:20:43 +0100 |
| commit | ae89f342b51cb4ef71f18e89b74585cd61b05a60 (patch) | |
| tree | dac1ec69cb74001aacce013bb5879566bb04d845 /test_kmp_automaton.c | |
| download | libautomata-ae89f342b51cb4ef71f18e89b74585cd61b05a60.tar.gz libautomata-ae89f342b51cb4ef71f18e89b74585cd61b05a60.tar.bz2 libautomata-ae89f342b51cb4ef71f18e89b74585cd61b05a60.tar.xz | |
First commit
Signed-off-by: Mattias Andrée <m@maandree.se>
Diffstat (limited to 'test_kmp_automaton.c')
| -rw-r--r-- | test_kmp_automaton.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/test_kmp_automaton.c b/test_kmp_automaton.c new file mode 100644 index 0000000..fa824e4 --- /dev/null +++ b/test_kmp_automaton.c @@ -0,0 +1,48 @@ +/* See LICENSE file for copyright and license details. */ +#include "common.h" + + +int +main(void) +{ + LIBAUTOMATA_KMP_AUTOMATON *a1, *a2; + const char *r; + + EXPECT((a1 = libautomata_compile_kmp_automaton(MEM("es"), 1))); + EXPECT((a2 = libautomata_clone_kmp_automaton(a1))); + + r = libautomata_execute_kmp_automaton(MEM("test"), a1); + EXPECT(r); + EXPECT(!strcmp(r, "t")); + r = libautomata_execute_kmp_automaton(MEM("test"), a1); + EXPECT(r); + EXPECT(!strcmp(r, "t")); + libautomata_reset_kmp_automaton(a1); + r = libautomata_execute_kmp_automaton(MEM("test"), a1); + EXPECT(r); + EXPECT(!strcmp(r, "t")); + r = libautomata_execute_kmp_automaton(MEM("test"), a2); + EXPECT(r); + EXPECT(!strcmp(r, "t")); + r = libautomata_execute_kmp_automaton(MEM("te"), a1); + EXPECT(!r); + r = libautomata_execute_kmp_automaton(MEM("sting"), a1); + EXPECT(r); + EXPECT(!strcmp(r, "ting")); + r = libautomata_execute_kmp_automaton(MEM("te"), a1); + EXPECT(!r); + libautomata_reset_kmp_automaton(a1); + r = libautomata_execute_kmp_automaton(MEM("sting"), a1); + EXPECT(!r); + + free(a1); + free(a2); + + EXPECT((a1 = libautomata_compile_kmp_automaton(MEM("nano"), 1))); + r = libautomata_execute_kmp_automaton(MEM("searching for a nanostring"), a1); + EXPECT(r); + EXPECT(!strcmp(r, "string")); + free(a1); + + return 0; +} |
