diff --git a/grp/tst-putgrent.c b/grp/tst-putgrent.c
index 0175ec0..fa8e2ce 100644
--- a/grp/tst-putgrent.c
+++ b/grp/tst-putgrent.c
@@ -163,5 +163,4 @@ do_test (void)
   return errors;
 }
 
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/gshadow/tst-gshadow.c b/gshadow/tst-gshadow.c
index 8b469b7..20da084 100644
--- a/gshadow/tst-gshadow.c
+++ b/gshadow/tst-gshadow.c
@@ -1,3 +1,21 @@
+/* Test for gshadow functions.
+   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library 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
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
 #include <gshadow.h>
 #include <stdio.h>
 #include <string.h>
@@ -137,5 +155,4 @@ do_test (void)
   return result;
 }
 
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/gshadow/tst-putsgent.c b/gshadow/tst-putsgent.c
index 218d458..8919db8 100644
--- a/gshadow/tst-putsgent.c
+++ b/gshadow/tst-putsgent.c
@@ -164,5 +164,4 @@ do_test (void)
   return errors;
 }
 
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/inet/bug-if1.c b/inet/bug-if1.c
index b70a19d..d858fcc 100644
--- a/inet/bug-if1.c
+++ b/inet/bug-if1.c
@@ -49,5 +49,4 @@ do_test (void)
   return 0;
 }
 
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/inet/test-ifaddrs.c b/inet/test-ifaddrs.c
index 2baf9ad..92323c9 100644
--- a/inet/test-ifaddrs.c
+++ b/inet/test-ifaddrs.c
@@ -95,5 +95,4 @@ Name           Flags   Address         Netmask         Broadcast/Destination");
   return failures ? 1 : 0;
 }
 
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/inet/test-inet6_opt.c b/inet/test-inet6_opt.c
index a7ebf00..4c9388e 100644
--- a/inet/test-inet6_opt.c
+++ b/inet/test-inet6_opt.c
@@ -207,5 +207,4 @@ do_test (void)
   return 0;
 }
 
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/inet/test_ifindex.c b/inet/test_ifindex.c
index 06cdb78..0844a99 100644
--- a/inet/test_ifindex.c
+++ b/inet/test_ifindex.c
@@ -63,5 +63,4 @@ do_test (void)
   return failures ? 1 : 0;
 }
 
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/inet/tst-ether_aton.c b/inet/tst-ether_aton.c
index eba350e..afe2449 100644
--- a/inet/tst-ether_aton.c
+++ b/inet/tst-ether_aton.c
@@ -56,5 +56,4 @@ do_test (void)
   return result;
 }
 
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/inet/tst-ether_line.c b/inet/tst-ether_line.c
index ff0560b..bb1929f 100644
--- a/inet/tst-ether_line.c
+++ b/inet/tst-ether_line.c
@@ -34,5 +34,4 @@ do_test (void)
   return res;
 }
 
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/inet/tst-gethnm.c b/inet/tst-gethnm.c
index dd3a547..bda52af 100644
--- a/inet/tst-gethnm.c
+++ b/inet/tst-gethnm.c
@@ -63,5 +63,4 @@ do_test (void)
   return result;
 }
 
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/inet/tst-getni1.c b/inet/tst-getni1.c
index 3960f71..c9e654a 100644
--- a/inet/tst-getni1.c
+++ b/inet/tst-getni1.c
@@ -32,5 +32,4 @@ do_test (void)
   return retval;
 }
 
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/inet/tst-getni2.c b/inet/tst-getni2.c
index 66e7806..ab6d74c 100644
--- a/inet/tst-getni2.c
+++ b/inet/tst-getni2.c
@@ -37,5 +37,4 @@ do_test (void)
   return retval;
 }
 
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/inet/tst-inet6_rth.c b/inet/tst-inet6_rth.c
index 549d717..d766dae 100644
--- a/inet/tst-inet6_rth.c
+++ b/inet/tst-inet6_rth.c
@@ -188,5 +188,4 @@ address %d after second inet6_rth_reverse wrong (%s)\n",
   return res;
 }
 
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/inet/tst-inet6_scopeid_pton.c b/inet/tst-inet6_scopeid_pton.c
index 2178c5b..26d1741 100644
--- a/inet/tst-inet6_scopeid_pton.c
+++ b/inet/tst-inet6_scopeid_pton.c
@@ -127,5 +127,4 @@ do_test (void)
   return 0;
 }
 
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/inet/tst-network.c b/inet/tst-network.c
index 825b0cb..0e42255 100644
--- a/inet/tst-network.c
+++ b/inet/tst-network.c
@@ -77,5 +77,4 @@ do_test (void)
   return errors != 0;
 }
 
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/inet/tst-ntoa.c b/inet/tst-ntoa.c
index ef82d4d..7ebbf63 100644
--- a/inet/tst-ntoa.c
+++ b/inet/tst-ntoa.c
@@ -35,5 +35,4 @@ do_test (void)
   return result;
 }
 
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/inet/tst-sockaddr.c b/inet/tst-sockaddr.c
index dccc3da..d6d98e7 100644
--- a/inet/tst-sockaddr.c
+++ b/inet/tst-sockaddr.c
@@ -121,5 +121,4 @@ do_test (void)
   return errors;
 }
 
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/nss/bug17079.c b/nss/bug17079.c
index 4171c7d..9bc58ea 100644
--- a/nss/bug17079.c
+++ b/nss/bug17079.c
@@ -240,5 +240,4 @@ do_test (void)
     return 0;
 }
 
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/nss/test-digits-dots.c b/nss/test-digits-dots.c
index 2685161..374a25e 100644
--- a/nss/test-digits-dots.c
+++ b/nss/test-digits-dots.c
@@ -34,5 +34,4 @@ do_test (void)
   return err == ERANGE && h_err == NETDB_INTERNAL ? EXIT_SUCCESS : EXIT_FAILURE;
 }
 
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/nss/test-netdb.c b/nss/test-netdb.c
index 319541b..20bbc80 100644
--- a/nss/test-netdb.c
+++ b/nss/test-netdb.c
@@ -336,5 +336,4 @@ do_test (void)
   return (error_count != 0);
 }
 
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/nss/tst-field.c b/nss/tst-field.c
index d80be68..3722b7b 100644
--- a/nss/tst-field.c
+++ b/nss/tst-field.c
@@ -97,5 +97,4 @@ do_test (void)
   return errors;
 }
 
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/nss/tst-nss-getpwent.c b/nss/tst-nss-getpwent.c
index 7bd69fc..9f03035 100644
--- a/nss/tst-nss-getpwent.c
+++ b/nss/tst-nss-getpwent.c
@@ -115,5 +115,4 @@ do_test (void)
 }
 
 #define TIMEOUT 300
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/nss/tst-nss-static.c b/nss/tst-nss-static.c
index 98cf073..dfbc782 100644
--- a/nss/tst-nss-static.c
+++ b/nss/tst-nss-static.c
@@ -1,7 +1,6 @@
 /* glibc test for static NSS.  */
 #include <stdio.h>
 
-#define TEST_FUNCTION do_test ()
 static int
 do_test (void)
 {
@@ -12,4 +11,4 @@ do_test (void)
 }
 
 
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/nss/tst-nss-test1.c b/nss/tst-nss-test1.c
index c5750e0..65b7b34 100644
--- a/nss/tst-nss-test1.c
+++ b/nss/tst-nss-test1.c
@@ -1,3 +1,21 @@
+/* Test for NSS configure lookup. 
+   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library 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
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
 #include <nss.h>
 #include <pwd.h>
 #include <stdio.h>
@@ -68,5 +86,4 @@ do_test (void)
   return retval;
 }
 
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/pwd/tst-getpw.c b/pwd/tst-getpw.c
index c90c4ed..7c00be4 100644
--- a/pwd/tst-getpw.c
+++ b/pwd/tst-getpw.c
@@ -110,5 +110,4 @@ do_test (void)
   return errors;
 }
 
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/pwd/tst-putpwent.c b/pwd/tst-putpwent.c
index 7eafd0e..696fbf1 100644
--- a/pwd/tst-putpwent.c
+++ b/pwd/tst-putpwent.c
@@ -164,5 +164,4 @@ do_test (void)
   return errors > 0;
 }
 
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/resolv/tst-aton.c b/resolv/tst-aton.c
index 08110a0..f55dda3 100644
--- a/resolv/tst-aton.c
+++ b/resolv/tst-aton.c
@@ -73,5 +73,4 @@ do_test (void)
   return result;
 }
 
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/resolv/tst-inet_ntop.c b/resolv/tst-inet_ntop.c
index f0de063..1a99bf6 100644
--- a/resolv/tst-inet_ntop.c
+++ b/resolv/tst-inet_ntop.c
@@ -110,5 +110,4 @@ do_test (void)
   return result;
 }
 
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/resolv/tst-leaks.c b/resolv/tst-leaks.c
index 4f64535..c49d8c6 100644
--- a/resolv/tst-leaks.c
+++ b/resolv/tst-leaks.c
@@ -21,15 +21,10 @@
 #include <resolv.h>
 #include <mcheck.h>
 
-/* Prototype for our test function.  */
-extern int do_test (int argc, char *argv[]);
-
-/* This defines the `main' function and some more.  */
 #define TIMEOUT 40
-#include <test-skeleton.c>
 
 int
-do_test (int argc, char *argv[])
+do_test (void)
 {
   unsigned char buf[256];
 
@@ -41,3 +36,5 @@ do_test (int argc, char *argv[])
 
   return 0;
 }
+
+#include <support/test-driver.c>
diff --git a/resolv/tst-leaks2.c b/resolv/tst-leaks2.c
index 5a68a4c..89a5f78 100644
--- a/resolv/tst-leaks2.c
+++ b/resolv/tst-leaks2.c
@@ -34,7 +34,6 @@ do_test (void)
   return 0;
 }
 
-#define TEST_FUNCTION do_test ()
 #define TIMEOUT 30
 /* This defines the `main' function and some more.  */
-#include <test-skeleton.c>
+#include <support/test-driver.c>
diff --git a/resolv/tst-res_hconf_reorder.c b/resolv/tst-res_hconf_reorder.c
index 20e5a5a..fa09e95 100644
--- a/resolv/tst-res_hconf_reorder.c
+++ b/resolv/tst-res_hconf_reorder.c
@@ -109,5 +109,4 @@ do_test (void)
   return result;
 }
 
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/shadow/tst-putspent.c b/shadow/tst-putspent.c
index cbc2c1e..a5b164c 100644
--- a/shadow/tst-putspent.c
+++ b/shadow/tst-putspent.c
@@ -160,5 +160,4 @@ do_test (void)
   return errors;
 }
 
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/shadow/tst-shadow.c b/shadow/tst-shadow.c
index 48f7167..7ce7462 100644
--- a/shadow/tst-shadow.c
+++ b/shadow/tst-shadow.c
@@ -80,5 +80,4 @@ do_test (void)
   return result;
 }
 
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
