diff --git a/libnozzle/tests/Makefile.am b/libnozzle/tests/Makefile.am
index 7e535b5e..95594e31 100644
--- a/libnozzle/tests/Makefile.am
+++ b/libnozzle/tests/Makefile.am
@@ -1,90 +1,94 @@
 #
 # Copyright (C) 2017-2018 Red Hat, Inc.  All rights reserved.
 #
 # Author: Fabio M. Di Nitto <fabbione@kronosnet.org>
 #
 # This software licensed under GPL-2.0+, LGPL-2.0+
 #
 
 MAINTAINERCLEANFILES	= Makefile.in
 
 include $(top_srcdir)/build-aux/check.mk
 
 EXTRA_DIST		= \
 			  tap_updown_bad \
 			  tap_updown_good \
 			  api-test-coverage
 
 noinst_HEADERS		= \
 			  test-common.h
 
 if BUILD_LIBNOZZLE
 
 check_PROGRAMS		= \
 			  api_nozzle_open_test \
 			  api_nozzle_close_test \
 			  api_nozzle_set_up_test \
 			  api_nozzle_set_down_test \
 			  api_nozzle_get_mtu_test \
 			  api_nozzle_set_mtu_test \
 			  api_nozzle_get_mac_test \
 			  api_nozzle_set_mac_test \
 			  api_nozzle_get_handle_by_name_test \
 			  api_nozzle_get_name_by_handle_test \
+			  api_nozzle_get_fd_test \
 			  nozzle_test
 
 noinst_PROGRAMS		= $(check_PROGRAMS)
 
 noinst_SCRIPTS		= \
 			  api-test-coverage
 
 TESTS			= $(check_PROGRAMS)
 
 check-local: check-api-test-coverage
 
 check-api-test-coverage:
 	chmod u+x $(top_srcdir)/libnozzle/tests/api-test-coverage
 	$(top_srcdir)/libnozzle/tests/api-test-coverage $(top_srcdir) $(top_builddir)
 
 AM_CPPFLAGS		= -I$(top_srcdir)/libnozzle -DABSBUILDDIR=\"$(abs_builddir)\"
 AM_CFLAGS		+= $(PTHREAD_CFLAGS) $(libnl_CFLAGS)
 LIBS			+= $(top_builddir)/libnozzle/libnozzle.la $(PTHREAD_LIBS) $(libnl_LIBS)
 
 api_nozzle_open_test_SOURCES = api_nozzle_open.c \
 			       test-common.c
 
 api_nozzle_close_test_SOURCES = api_nozzle_close.c \
 				test-common.c
 
 api_nozzle_set_up_test_SOURCES = api_nozzle_set_up.c \
 				 test-common.c \
 				 ../internals.c
 
 api_nozzle_set_down_test_SOURCES = api_nozzle_set_down.c \
 				   test-common.c \
 				   ../internals.c
 
 api_nozzle_get_mtu_test_SOURCES = api_nozzle_get_mtu.c \
 				  test-common.c
 
 api_nozzle_set_mtu_test_SOURCES = api_nozzle_set_mtu.c \
 				  test-common.c \
 				  ../internals.c
 
 api_nozzle_get_mac_test_SOURCES = api_nozzle_get_mac.c \
 				  test-common.c
 
 api_nozzle_set_mac_test_SOURCES = api_nozzle_set_mac.c \
 				  test-common.c
 
 api_nozzle_get_handle_by_name_test_SOURCES = api_nozzle_get_handle_by_name.c \
 					     test-common.c
 
 api_nozzle_get_name_by_handle_test_SOURCES = api_nozzle_get_name_by_handle.c \
 					     test-common.c
 
+api_nozzle_get_fd_test_SOURCES = api_nozzle_get_fd.c \
+				 test-common.c
+
 nozzle_test_SOURCES	= nozzle_test.c \
 			  test-common.c \
 			  ../internals.c
 
 endif
diff --git a/libnozzle/tests/api_nozzle_get_fd.c b/libnozzle/tests/api_nozzle_get_fd.c
new file mode 100644
index 00000000..36481761
--- /dev/null
+++ b/libnozzle/tests/api_nozzle_get_fd.c
@@ -0,0 +1,77 @@
+/*
+ * Copyright (C) 2010-2018 Red Hat, Inc.  All rights reserved.
+ *
+ * Author: Fabio M. Di Nitto <fabbione@kronosnet.org>
+ *
+ * This software licensed under GPL-2.0+, LGPL-2.0+
+ */
+
+#include "config.h"
+
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <errno.h>
+#include <stdint.h>
+#include <limits.h>
+#include <fcntl.h>
+
+#include "test-common.h"
+
+static int test(void)
+{
+	char device_name[IFNAMSIZ];
+	size_t size = IFNAMSIZ;
+	int err=0;
+	nozzle_t nozzle;
+	int fd;
+
+	printf("Testing get fd\n");
+
+	memset(device_name, 0, size);
+	nozzle = nozzle_open(device_name, size, NULL);
+	if (!nozzle) {
+		printf("Unable to init %s\n", device_name);
+		return -1;
+	}
+
+	fd = nozzle_get_fd(nozzle);
+	if (fd < 0) {
+		printf("Unable to get fd\n");
+		err = -1;
+		goto out_clean;
+	}
+
+	if (fcntl(fd, F_GETFD) < 0) {
+		printf("Unable to get valid fd\n");
+		err = -1;
+		goto out_clean;
+	}
+
+	printf("Testing ERROR conditions\n");
+
+	printf("Passing empty struct to get_fd\n");
+	if (nozzle_get_fd(NULL) > 0) {
+		printf("Something is wrong in nozzle_get_fd sanity checks\n");
+		err = -1;
+		goto out_clean;
+	}
+
+out_clean:
+	if (nozzle) {
+		nozzle_close(nozzle);
+	}
+
+	return err;
+}
+
+int main(void)
+{
+	need_root();
+
+	if (test() < 0)
+		return FAIL;
+
+	return PASS;
+}