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;
+}