diff --git a/tests/Makefile.am b/tests/Makefile.am index c0bccca7..f268f022 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -71,6 +71,9 @@ ban_ips_LDADD = ../gl/libgnu.a $(LIBTALLOC_LIBS) ../src/ccan/libccan.a str_test_SOURCES = str-test.c str_test_LDADD = ../gl/libgnu.a $(LIBTALLOC_LIBS) ../src/ccan/libccan.a +str_test2_SOURCES = str-test2.c +str_test2_LDADD = ../gl/libgnu.a $(LIBTALLOC_LIBS) ../src/ccan/libccan.a + ipv6_prefix_SOURCES = ipv6-prefix.c ipv6_prefix_LDADD = ../gl/libgnu.a $(LIBTALLOC_LIBS) ../src/ccan/libccan.a @@ -80,7 +83,7 @@ human_addr_LDADD = ../gl/libgnu.a $(LIBTALLOC_LIBS) ../src/ccan/libccan.a port_parsing_LDADD = ../gl/libgnu.a $(LIBTALLOC_LIBS) ../src/ccan/libccan.a -check_PROGRAMS = str-test ipv4-prefix ipv6-prefix kkdcp-parsing json-escape ban-ips \ +check_PROGRAMS = str-test str-test2 ipv4-prefix ipv6-prefix kkdcp-parsing json-escape ban-ips \ port-parsing human_addr TESTS = $(dist_check_SCRIPTS) $(check_PROGRAMS) diff --git a/tests/str-test2.c b/tests/str-test2.c new file mode 100644 index 00000000..e07fc485 --- /dev/null +++ b/tests/str-test2.c @@ -0,0 +1,87 @@ +/* + * Copyright (C) 2015 Red Hat, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#define _GNU_SOURCE +#include +#include +#include +#include + +#include "../src/str.h" +#include "../src/str.c" + +#define STR1 " hi there people. How are you?" +int main() +{ + char str[64]; + + strcpy(str, STR1" "); + + trim_trailing_whitespace(str); + + if (strncmp(str, STR1, sizeof(STR1)-1) != 0) { + fprintf(stderr, "error in %d\n", __LINE__); + exit(1); + } + + strcpy(str, STR1" "); + + trim_trailing_whitespace(str); + + if (strncmp(str, STR1, sizeof(STR1)-1) != 0) { + fprintf(stderr, "error in %d\n", __LINE__); + exit(1); + } + + strcpy(str, STR1); + + trim_trailing_whitespace(str); + + if (strncmp(str, STR1, sizeof(STR1)-1) != 0) { + fprintf(stderr, "error in %d\n", __LINE__); + exit(1); + } + + strcpy(str, " "STR1); + + trim_trailing_whitespace(str); + + if (strncmp(str, " "STR1, sizeof(" "STR1)-1) != 0) { + fprintf(stderr, "error in %d\n", __LINE__); + exit(1); + } + + strcpy(str, " "); + + trim_trailing_whitespace(str); + + if (strncmp(str, "", sizeof("")-1) != 0) { + fprintf(stderr, "error in %d\n", __LINE__); + exit(1); + } + + str[0] = 0; + + trim_trailing_whitespace(str); + + if (str[0] != 0) { + fprintf(stderr, "error in %d\n", __LINE__); + exit(1); + } + + return 0; +}