diff --git a/tests/Makefile.am b/tests/Makefile.am index 1c33dfc6..37c6c4ee 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -77,7 +77,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 str-test2 ipv4-prefix ipv6-prefix kkdcp-parsing json-escape ban-ips \ - port-parsing human_addr + port-parsing human_addr valid-hostname TESTS = $(dist_check_SCRIPTS) $(check_PROGRAMS) diff --git a/tests/valid-hostname.c b/tests/valid-hostname.c new file mode 100644 index 00000000..a6287ece --- /dev/null +++ b/tests/valid-hostname.c @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2016 Nikos Mavrogiannopoulos + * + * 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 . + */ + +#include +#include +#include +#include +#include + +#include "../src/valid-hostname.c" + +/* This checks whether the valid_hostname() function works + * as expected. + */ + +int main() +{ + /* check invalid hostnames */ + assert(valid_hostname("192.168.1.1") == 0); + assert(valid_hostname("-hello") == 0); + assert(valid_hostname("1234!") == 0); + assert(valid_hostname("1234#abc") == 0); + assert(valid_hostname("1234$abc") == 0); + assert(valid_hostname("1234&abc") == 0); + assert(valid_hostname("1234|abc") == 0); + assert(valid_hostname("1234\aabc") == 0); + assert(valid_hostname("1234\babc") == 0); + assert(valid_hostname("ABC.abc") == 0); + + /* check valid hostnames */ + assert(valid_hostname("12-hello") != 0); + assert(valid_hostname("1234abc-") != 0); + assert(valid_hostname("1234abc-ABC") != 0); + assert(valid_hostname("ABC-abc1") != 0); + + return 0; +}