about summary refs log tree commit diff
diff options
context:
space:
mode:
authorArjun Shankar <arjun.is@lostca.se>2014-11-05 15:24:08 +0530
committerSiddhesh Poyarekar <siddhesh@redhat.com>2014-11-05 15:24:08 +0530
commit29955b5d9658b02d3a678d1f785db3d1e63184ca (patch)
treebadd2ff184d36c461673ffbc9ec48914511f41f0
parentab97ee8f1bf70b24b417e8f690ce50563d508243 (diff)
downloadglibc-29955b5d9658b02d3a678d1f785db3d1e63184ca.tar.gz
glibc-29955b5d9658b02d3a678d1f785db3d1e63184ca.tar.xz
glibc-29955b5d9658b02d3a678d1f785db3d1e63184ca.zip
Modify several tests to use test-skeleton.c
This patch modifies several test cases to use test-skeleton.c.
It was generated by a bash script written for this purpose and
thus excludes several other tests which I deemed worth a visual
inspection before making the change.

I intend to follow up with individual patches to the tests
skipped by the script.

The script itself resides at http://git.io/WODAmg and should
reproduce this very patch when run against master.

ChangeLog:

2014-10-30  Arjun Shankar  <arjun.is@lostca.se>

	* catgets/test-gencat.c: Use test-skeleton.c.
	* catgets/tst-catgets.c: Likewise.
	* csu/tst-empty.c: Likewise.
	* elf/tst-audit2.c: Likewise.
	* elf/tst-global1.c: Likewise.
	* elf/tst-pathopt.c: Likewise.
	* elf/tst-piemod1.c: Likewise.
	* elf/tst-tls10.c: Likewise.
	* elf/tst-tls11.c: Likewise.
	* elf/tst-tls12.c: Likewise.
	* gnulib/tst-gcc.c: Likewise.
	* iconvdata/tst-e2big.c: Likewise.
	* iconvdata/tst-loading.c: Likewise.
	* iconv/tst-iconv1.c: Likewise.
	* iconv/tst-iconv2.c: Likewise.
	* inet/test-inet6_opt.c: Likewise.
	* inet/tst-gethnm.c: Likewise.
	* inet/tst-network.c: Likewise.
	* inet/tst-ntoa.c: Likewise.
	* intl/tst-codeset.c: Likewise.
	* intl/tst-gettext2.c: Likewise.
	* intl/tst-gettext3.c: Likewise.
	* intl/tst-ngettext.c: Likewise.
	* intl/tst-translit.c: Likewise.
	* io/test-stat.c: Likewise.
	* libio/test-fmemopen.c: Likewise.
	* libio/tst-freopen.c: Likewise.
	* libio/tst-sscanf.c: Likewise.
	* libio/tst-ungetwc1.c: Likewise.
	* libio/tst-ungetwc2.c: Likewise.
	* libio/tst-widetext.c: Likewise.
	* localedata/tst-ctype.c: Likewise.
	* localedata/tst-digits.c: Likewise.
	* localedata/tst-leaks.c: Likewise.
	* localedata/tst-mbswcs1.c: Likewise.
	* localedata/tst-mbswcs2.c: Likewise.
	* localedata/tst-mbswcs3.c: Likewise.
	* localedata/tst-mbswcs4.c: Likewise.
	* localedata/tst-mbswcs5.c: Likewise.
	* localedata/tst-setlocale.c: Likewise.
	* localedata/tst-trans.c: Likewise.
	* localedata/tst-wctype.c: Likewise.
	* localedata/tst-xlocale1.c: Likewise.
	* login/tst-grantpt.c: Likewise.
	* malloc/tst-calloc.c: Likewise.
	* malloc/tst-malloc.c: Likewise.
	* malloc/tst-mallocstate.c: Likewise.
	* malloc/tst-mcheck.c: Likewise.
	* malloc/tst-mtrace.c: Likewise.
	* malloc/tst-obstack.c: Likewise.
	* math/atest-exp2.c: Likewise.
	* math/atest-exp.c: Likewise.
	* math/atest-sincos.c: Likewise.
	* math/test-matherr.c: Likewise.
	* math/test-misc.c: Likewise.
	* math/test-powl.c: Likewise.
	* math/tst-definitions.c: Likewise.
	* misc/tst-dirname.c: Likewise.
	* misc/tst-efgcvt.c: Likewise.
	* misc/tst-fdset.c: Likewise.
	* misc/tst-hsearch.c: Likewise.
	* misc/tst-mntent2.c: Likewise.
	* nptl/tst-sem7.c: Likewise.
	* nptl/tst-sem8.c: Likewise.
	* nptl/tst-sem9.c: Likewise.
	* nss/test-netdb.c: Likewise.
	* posix/tst-fnmatch.c: Likewise.
	* posix/tst-getlogin.c: Likewise.
	* posix/tst-gnuglob.c: Likewise.
	* posix/tst-mmap.c: Likewise.
	* pwd/tst-getpw.c: Likewise.
	* resolv/tst-inet_ntop.c: Likewise.
	* rt/tst-timer.c: Likewise.
	* stdio-common/test-fseek.c: Likewise.
	* stdio-common/test-popen.c: Likewise.
	* stdio-common/test-vfprintf.c: Likewise.
	* stdio-common/tst-cookie.c: Likewise.
	* stdio-common/tst-fileno.c: Likewise.
	* stdio-common/tst-gets.c: Likewise.
	* stdio-common/tst-obprintf.c: Likewise.
	* stdio-common/tst-perror.c: Likewise.
	* stdio-common/tst-sprintf2.c: Likewise.
	* stdio-common/tst-sprintf3.c: Likewise.
	* stdio-common/tst-sprintf.c: Likewise.
	* stdio-common/tst-swprintf.c: Likewise.
	* stdio-common/tst-tmpnam.c: Likewise.
	* stdio-common/tst-unbputc.c: Likewise.
	* stdio-common/tst-wc-printf.c: Likewise.
	* stdlib/tst-environ.c: Likewise.
	* stdlib/tst-fmtmsg.c: Likewise.
	* stdlib/tst-limits.c: Likewise.
	* stdlib/tst-rand48-2.c: Likewise.
	* stdlib/tst-rand48.c: Likewise.
	* stdlib/tst-random2.c: Likewise.
	* stdlib/tst-random.c: Likewise.
	* stdlib/tst-strtol.c: Likewise.
	* stdlib/tst-strtoll.c: Likewise.
	* stdlib/tst-tls-atexit.c: Likewise.
	* stdlib/tst-xpg-basename.c: Likewise.
	* string/test-ffs.c: Likewise.
	* string/tst-bswap.c: Likewise.
	* string/tst-inlcall.c: Likewise.
	* string/tst-strtok.c: Likewise.
	* string/tst-strxfrm.c: Likewise.
	* sysdeps/x86_64/tst-audit10.c: Likewise.
	* sysdeps/x86_64/tst-audit3.c: Likewise.
	* sysdeps/x86_64/tst-audit4.c: Likewise.
	* sysdeps/x86_64/tst-audit5.c: Likewise.
	* time/tst-ftime_l.c: Likewise.
	* time/tst-getdate.c: Likewise.
	* time/tst-mktime3.c: Likewise.
	* time/tst-mktime.c: Likewise.
	* time/tst-posixtz.c: Likewise.
	* time/tst-strptime2.c: Likewise.
	* time/tst-strptime3.c: Likewise.
	* wcsmbs/tst-btowc.c: Likewise.
	* wcsmbs/tst-mbrtowc.c: Likewise.
	* wcsmbs/tst-mbsrtowcs.c: Likewise.
	* wcsmbs/tst-wchar-h.c: Likewise.
	* wcsmbs/tst-wcpncpy.c: Likewise.
	* wcsmbs/tst-wcrtomb.c: Likewise.
	* wcsmbs/tst-wcsnlen.c: Likewise.
	* wcsmbs/tst-wcstof.c: Likewise.
-rw-r--r--ChangeLog126
-rw-r--r--catgets/test-gencat.c7
-rw-r--r--catgets/tst-catgets.c7
-rw-r--r--csu/tst-empty.c7
-rw-r--r--elf/tst-audit2.c7
-rw-r--r--elf/tst-global1.c7
-rw-r--r--elf/tst-pathopt.c7
-rw-r--r--elf/tst-piemod1.c7
-rw-r--r--elf/tst-tls10.c7
-rw-r--r--elf/tst-tls11.c7
-rw-r--r--elf/tst-tls12.c7
-rw-r--r--gnulib/tst-gcc.c7
-rw-r--r--iconv/tst-iconv1.c7
-rw-r--r--iconv/tst-iconv2.c7
-rw-r--r--iconvdata/tst-e2big.c7
-rw-r--r--iconvdata/tst-loading.c7
-rw-r--r--inet/test-inet6_opt.c7
-rw-r--r--inet/tst-gethnm.c7
-rw-r--r--inet/tst-network.c7
-rw-r--r--inet/tst-ntoa.c7
-rw-r--r--intl/tst-codeset.c7
-rw-r--r--intl/tst-gettext2.c7
-rw-r--r--intl/tst-gettext3.c7
-rw-r--r--intl/tst-ngettext.c7
-rw-r--r--intl/tst-translit.c7
-rw-r--r--io/test-stat.c7
-rw-r--r--libio/test-fmemopen.c7
-rw-r--r--libio/tst-freopen.c7
-rw-r--r--libio/tst-sscanf.c7
-rw-r--r--libio/tst-ungetwc1.c7
-rw-r--r--libio/tst-ungetwc2.c7
-rw-r--r--libio/tst-widetext.c7
-rw-r--r--localedata/tst-ctype.c7
-rw-r--r--localedata/tst-digits.c7
-rw-r--r--localedata/tst-leaks.c7
-rw-r--r--localedata/tst-mbswcs1.c7
-rw-r--r--localedata/tst-mbswcs2.c7
-rw-r--r--localedata/tst-mbswcs3.c7
-rw-r--r--localedata/tst-mbswcs4.c7
-rw-r--r--localedata/tst-mbswcs5.c7
-rw-r--r--localedata/tst-setlocale.c7
-rw-r--r--localedata/tst-trans.c7
-rw-r--r--localedata/tst-wctype.c7
-rw-r--r--localedata/tst-xlocale1.c7
-rw-r--r--login/tst-grantpt.c7
-rw-r--r--malloc/tst-calloc.c7
-rw-r--r--malloc/tst-malloc.c7
-rw-r--r--malloc/tst-mallocstate.c7
-rw-r--r--malloc/tst-mcheck.c7
-rw-r--r--malloc/tst-mtrace.c7
-rw-r--r--malloc/tst-obstack.c7
-rw-r--r--math/atest-exp.c7
-rw-r--r--math/atest-exp2.c7
-rw-r--r--math/atest-sincos.c7
-rw-r--r--math/test-matherr.c7
-rw-r--r--math/test-misc.c7
-rw-r--r--math/test-powl.c7
-rw-r--r--math/tst-definitions.c7
-rw-r--r--misc/tst-dirname.c7
-rw-r--r--misc/tst-efgcvt.c7
-rw-r--r--misc/tst-fdset.c7
-rw-r--r--misc/tst-hsearch.c7
-rw-r--r--misc/tst-mntent2.c7
-rw-r--r--nptl/tst-sem7.c7
-rw-r--r--nptl/tst-sem8.c7
-rw-r--r--nptl/tst-sem9.c7
-rw-r--r--nss/test-netdb.c7
-rw-r--r--posix/tst-fnmatch.c7
-rw-r--r--posix/tst-getlogin.c7
-rw-r--r--posix/tst-gnuglob.c7
-rw-r--r--posix/tst-mmap.c7
-rw-r--r--pwd/tst-getpw.c7
-rw-r--r--resolv/tst-inet_ntop.c7
-rw-r--r--rt/tst-timer.c7
-rw-r--r--stdio-common/test-fseek.c7
-rw-r--r--stdio-common/test-popen.c7
-rw-r--r--stdio-common/test-vfprintf.c7
-rw-r--r--stdio-common/tst-cookie.c7
-rw-r--r--stdio-common/tst-fileno.c7
-rw-r--r--stdio-common/tst-gets.c7
-rw-r--r--stdio-common/tst-obprintf.c7
-rw-r--r--stdio-common/tst-perror.c7
-rw-r--r--stdio-common/tst-sprintf.c7
-rw-r--r--stdio-common/tst-sprintf2.c7
-rw-r--r--stdio-common/tst-sprintf3.c7
-rw-r--r--stdio-common/tst-swprintf.c7
-rw-r--r--stdio-common/tst-tmpnam.c7
-rw-r--r--stdio-common/tst-unbputc.c7
-rw-r--r--stdio-common/tst-wc-printf.c7
-rw-r--r--stdlib/tst-environ.c7
-rw-r--r--stdlib/tst-fmtmsg.c7
-rw-r--r--stdlib/tst-limits.c7
-rw-r--r--stdlib/tst-rand48-2.c7
-rw-r--r--stdlib/tst-rand48.c7
-rw-r--r--stdlib/tst-random.c7
-rw-r--r--stdlib/tst-random2.c7
-rw-r--r--stdlib/tst-strtol.c7
-rw-r--r--stdlib/tst-strtoll.c7
-rw-r--r--stdlib/tst-tls-atexit.c7
-rw-r--r--stdlib/tst-xpg-basename.c7
-rw-r--r--string/test-ffs.c7
-rw-r--r--string/tst-bswap.c7
-rw-r--r--string/tst-inlcall.c7
-rw-r--r--string/tst-strtok.c7
-rw-r--r--string/tst-strxfrm.c7
-rw-r--r--sysdeps/x86_64/tst-audit10.c11
-rw-r--r--sysdeps/x86_64/tst-audit3.c7
-rw-r--r--sysdeps/x86_64/tst-audit4.c11
-rw-r--r--sysdeps/x86_64/tst-audit5.c7
-rw-r--r--time/tst-ftime_l.c7
-rw-r--r--time/tst-getdate.c7
-rw-r--r--time/tst-mktime.c7
-rw-r--r--time/tst-mktime3.c7
-rw-r--r--time/tst-posixtz.c7
-rw-r--r--time/tst-strptime2.c7
-rw-r--r--time/tst-strptime3.c7
-rw-r--r--wcsmbs/tst-btowc.c7
-rw-r--r--wcsmbs/tst-mbrtowc.c7
-rw-r--r--wcsmbs/tst-mbsrtowcs.c7
-rw-r--r--wcsmbs/tst-wchar-h.c7
-rw-r--r--wcsmbs/tst-wcpncpy.c7
-rw-r--r--wcsmbs/tst-wcrtomb.c7
-rw-r--r--wcsmbs/tst-wcsnlen.c7
-rw-r--r--wcsmbs/tst-wcstof.c7
124 files changed, 745 insertions, 250 deletions
diff --git a/ChangeLog b/ChangeLog
index bcd5d671e0..1ab29ea69c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,129 @@
+2014-10-30  Arjun Shankar  <arjun.is@lostca.se>
+
+	* catgets/test-gencat.c: Use test-skeleton.c.
+	* catgets/tst-catgets.c: Likewise.
+	* csu/tst-empty.c: Likewise.
+	* elf/tst-audit2.c: Likewise.
+	* elf/tst-global1.c: Likewise.
+	* elf/tst-pathopt.c: Likewise.
+	* elf/tst-piemod1.c: Likewise.
+	* elf/tst-tls10.c: Likewise.
+	* elf/tst-tls11.c: Likewise.
+	* elf/tst-tls12.c: Likewise.
+	* gnulib/tst-gcc.c: Likewise.
+	* iconvdata/tst-e2big.c: Likewise.
+	* iconvdata/tst-loading.c: Likewise.
+	* iconv/tst-iconv1.c: Likewise.
+	* iconv/tst-iconv2.c: Likewise.
+	* inet/test-inet6_opt.c: Likewise.
+	* inet/tst-gethnm.c: Likewise.
+	* inet/tst-network.c: Likewise.
+	* inet/tst-ntoa.c: Likewise.
+	* intl/tst-codeset.c: Likewise.
+	* intl/tst-gettext2.c: Likewise.
+	* intl/tst-gettext3.c: Likewise.
+	* intl/tst-ngettext.c: Likewise.
+	* intl/tst-translit.c: Likewise.
+	* io/test-stat.c: Likewise.
+	* libio/test-fmemopen.c: Likewise.
+	* libio/tst-freopen.c: Likewise.
+	* libio/tst-sscanf.c: Likewise.
+	* libio/tst-ungetwc1.c: Likewise.
+	* libio/tst-ungetwc2.c: Likewise.
+	* libio/tst-widetext.c: Likewise.
+	* localedata/tst-ctype.c: Likewise.
+	* localedata/tst-digits.c: Likewise.
+	* localedata/tst-leaks.c: Likewise.
+	* localedata/tst-mbswcs1.c: Likewise.
+	* localedata/tst-mbswcs2.c: Likewise.
+	* localedata/tst-mbswcs3.c: Likewise.
+	* localedata/tst-mbswcs4.c: Likewise.
+	* localedata/tst-mbswcs5.c: Likewise.
+	* localedata/tst-setlocale.c: Likewise.
+	* localedata/tst-trans.c: Likewise.
+	* localedata/tst-wctype.c: Likewise.
+	* localedata/tst-xlocale1.c: Likewise.
+	* login/tst-grantpt.c: Likewise.
+	* malloc/tst-calloc.c: Likewise.
+	* malloc/tst-malloc.c: Likewise.
+	* malloc/tst-mallocstate.c: Likewise.
+	* malloc/tst-mcheck.c: Likewise.
+	* malloc/tst-mtrace.c: Likewise.
+	* malloc/tst-obstack.c: Likewise.
+	* math/atest-exp2.c: Likewise.
+	* math/atest-exp.c: Likewise.
+	* math/atest-sincos.c: Likewise.
+	* math/test-matherr.c: Likewise.
+	* math/test-misc.c: Likewise.
+	* math/test-powl.c: Likewise.
+	* math/tst-definitions.c: Likewise.
+	* misc/tst-dirname.c: Likewise.
+	* misc/tst-efgcvt.c: Likewise.
+	* misc/tst-fdset.c: Likewise.
+	* misc/tst-hsearch.c: Likewise.
+	* misc/tst-mntent2.c: Likewise.
+	* nptl/tst-sem7.c: Likewise.
+	* nptl/tst-sem8.c: Likewise.
+	* nptl/tst-sem9.c: Likewise.
+	* nss/test-netdb.c: Likewise.
+	* posix/tst-fnmatch.c: Likewise.
+	* posix/tst-getlogin.c: Likewise.
+	* posix/tst-gnuglob.c: Likewise.
+	* posix/tst-mmap.c: Likewise.
+	* pwd/tst-getpw.c: Likewise.
+	* resolv/tst-inet_ntop.c: Likewise.
+	* rt/tst-timer.c: Likewise.
+	* stdio-common/test-fseek.c: Likewise.
+	* stdio-common/test-popen.c: Likewise.
+	* stdio-common/test-vfprintf.c: Likewise.
+	* stdio-common/tst-cookie.c: Likewise.
+	* stdio-common/tst-fileno.c: Likewise.
+	* stdio-common/tst-gets.c: Likewise.
+	* stdio-common/tst-obprintf.c: Likewise.
+	* stdio-common/tst-perror.c: Likewise.
+	* stdio-common/tst-sprintf2.c: Likewise.
+	* stdio-common/tst-sprintf3.c: Likewise.
+	* stdio-common/tst-sprintf.c: Likewise.
+	* stdio-common/tst-swprintf.c: Likewise.
+	* stdio-common/tst-tmpnam.c: Likewise.
+	* stdio-common/tst-unbputc.c: Likewise.
+	* stdio-common/tst-wc-printf.c: Likewise.
+	* stdlib/tst-environ.c: Likewise.
+	* stdlib/tst-fmtmsg.c: Likewise.
+	* stdlib/tst-limits.c: Likewise.
+	* stdlib/tst-rand48-2.c: Likewise.
+	* stdlib/tst-rand48.c: Likewise.
+	* stdlib/tst-random2.c: Likewise.
+	* stdlib/tst-random.c: Likewise.
+	* stdlib/tst-strtol.c: Likewise.
+	* stdlib/tst-strtoll.c: Likewise.
+	* stdlib/tst-tls-atexit.c: Likewise.
+	* stdlib/tst-xpg-basename.c: Likewise.
+	* string/test-ffs.c: Likewise.
+	* string/tst-bswap.c: Likewise.
+	* string/tst-inlcall.c: Likewise.
+	* string/tst-strtok.c: Likewise.
+	* string/tst-strxfrm.c: Likewise.
+	* sysdeps/x86_64/tst-audit10.c: Likewise.
+	* sysdeps/x86_64/tst-audit3.c: Likewise.
+	* sysdeps/x86_64/tst-audit4.c: Likewise.
+	* sysdeps/x86_64/tst-audit5.c: Likewise.
+	* time/tst-ftime_l.c: Likewise.
+	* time/tst-getdate.c: Likewise.
+	* time/tst-mktime3.c: Likewise.
+	* time/tst-mktime.c: Likewise.
+	* time/tst-posixtz.c: Likewise.
+	* time/tst-strptime2.c: Likewise.
+	* time/tst-strptime3.c: Likewise.
+	* wcsmbs/tst-btowc.c: Likewise.
+	* wcsmbs/tst-mbrtowc.c: Likewise.
+	* wcsmbs/tst-mbsrtowcs.c: Likewise.
+	* wcsmbs/tst-wchar-h.c: Likewise.
+	* wcsmbs/tst-wcpncpy.c: Likewise.
+	* wcsmbs/tst-wcrtomb.c: Likewise.
+	* wcsmbs/tst-wcsnlen.c: Likewise.
+	* wcsmbs/tst-wcstof.c: Likewise.
+
 2014-11-04  Joseph Myers  <joseph@codesourcery.com>
 
 	[BZ #14132]
diff --git a/catgets/test-gencat.c b/catgets/test-gencat.c
index eaa9b895f6..282974ca2f 100644
--- a/catgets/test-gencat.c
+++ b/catgets/test-gencat.c
@@ -3,8 +3,8 @@
 #include <stdio.h>
 #include <stdlib.h>
 
-int
-main (void)
+static int
+do_test (void)
 {
   nl_catd catalog;
   setlocale (LC_ALL, "");
@@ -29,3 +29,6 @@ main (void)
 
   return 0;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/catgets/tst-catgets.c b/catgets/tst-catgets.c
index fdaa834949..a0a408936b 100644
--- a/catgets/tst-catgets.c
+++ b/catgets/tst-catgets.c
@@ -14,8 +14,8 @@ static const char *msgs[] =
 
 #define ROUNDS 5
 
-int
-main (void)
+static int
+do_test (void)
 {
   int rnd;
   int result = 0;
@@ -64,3 +64,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/csu/tst-empty.c b/csu/tst-empty.c
index 980dcd60fd..e99468eef9 100644
--- a/csu/tst-empty.c
+++ b/csu/tst-empty.c
@@ -1,6 +1,9 @@
 /* The most useful C program known to man.  */
-int
-main (void)
+static int
+do_test (void)
 {
   return 0;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/elf/tst-audit2.c b/elf/tst-audit2.c
index b4fa906940..acad1b05cf 100644
--- a/elf/tst-audit2.c
+++ b/elf/tst-audit2.c
@@ -31,8 +31,8 @@ calloc (size_t n, size_t m)
   return ptr;
 }
 
-int
-main (void)
+static int
+do_test (void)
 {
   if (magic[1] != MAGIC1 || magic[0] != MAGIC2)
     {
@@ -42,3 +42,6 @@ main (void)
 
   return 0;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/elf/tst-global1.c b/elf/tst-global1.c
index 1611b51b67..4df335c637 100644
--- a/elf/tst-global1.c
+++ b/elf/tst-global1.c
@@ -1,8 +1,8 @@
 #include <dlfcn.h>
 #include <stdio.h>
 
-int
-main (void)
+static int
+do_test (void)
 {
   void *h1 = dlopen ("$ORIGIN/testobj6.so", RTLD_GLOBAL|RTLD_LAZY);
   if (h1 == NULL)
@@ -34,3 +34,6 @@ main (void)
 
   return 0;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/elf/tst-pathopt.c b/elf/tst-pathopt.c
index 1f7aac2a41..8d73ad4def 100644
--- a/elf/tst-pathopt.c
+++ b/elf/tst-pathopt.c
@@ -4,8 +4,8 @@
 #include <stdlib.h>
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   void *h;
   int (*fp) (int);
@@ -37,3 +37,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/elf/tst-piemod1.c b/elf/tst-piemod1.c
index ad439da800..6e98b5f0c2 100644
--- a/elf/tst-piemod1.c
+++ b/elf/tst-piemod1.c
@@ -6,8 +6,8 @@ foo (void)
   return 21;
 }
 
-int
-main (void)
+static int
+do_test (void)
 {
   int val = foo ();
   if (val != 34)
@@ -18,3 +18,6 @@ main (void)
 
   return 0;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/elf/tst-tls10.c b/elf/tst-tls10.c
index 347243f66b..eb1ecb9216 100644
--- a/elf/tst-tls10.c
+++ b/elf/tst-tls10.c
@@ -8,8 +8,8 @@ __thread struct A local = { 1, 2, 3 };
   if (p->a != S || p->b != S + 1 || p->c != S + 2)	\
     abort ()
 
-int
-main (void)
+static int
+do_test (void)
 {
   struct A *p;
   if (local.a != 1 || local.b != 2 || local.c != 3)
@@ -35,3 +35,6 @@ main (void)
 
   exit (0);
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/elf/tst-tls11.c b/elf/tst-tls11.c
index 8a2fef4a7f..8ceac14168 100644
--- a/elf/tst-tls11.c
+++ b/elf/tst-tls11.c
@@ -5,8 +5,8 @@
   if (p->a != S || p->b != S + 1 || p->c != S + 2)	\
     abort ()
 
-int
-main (void)
+static int
+do_test (void)
 {
   struct A *p;
   check1 ();
@@ -24,3 +24,6 @@ main (void)
 
   exit (0);
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/elf/tst-tls12.c b/elf/tst-tls12.c
index 9086d17176..8093894b93 100644
--- a/elf/tst-tls12.c
+++ b/elf/tst-tls12.c
@@ -5,8 +5,8 @@
   if (p->a != S || p->b != S + 1 || p->c != S + 2)	\
     abort ()
 
-int
-main (void)
+static int
+do_test (void)
 {
   struct A *p;
   check1 ();
@@ -15,3 +15,6 @@ main (void)
 
   exit (0);
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/gnulib/tst-gcc.c b/gnulib/tst-gcc.c
index 71fab284a2..9f4ba83607 100644
--- a/gnulib/tst-gcc.c
+++ b/gnulib/tst-gcc.c
@@ -51,8 +51,8 @@
   })
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   int result = 0;
   int __integer_type;
@@ -71,3 +71,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/iconv/tst-iconv1.c b/iconv/tst-iconv1.c
index d806ce6ae8..0609f50e50 100644
--- a/iconv/tst-iconv1.c
+++ b/iconv/tst-iconv1.c
@@ -5,8 +5,8 @@
 #include <stdio.h>
 #include <string.h>
 
-int
-main (void)
+static int
+do_test (void)
 {
   char utf8[5];
   wchar_t ucs4[5];
@@ -42,3 +42,6 @@ main (void)
 
   return 0;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/iconv/tst-iconv2.c b/iconv/tst-iconv2.c
index 5036ad1058..0672a511ec 100644
--- a/iconv/tst-iconv2.c
+++ b/iconv/tst-iconv2.c
@@ -25,8 +25,8 @@
 #include <string.h>
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   char buf[3];
   const wchar_t wc[1] = L"a";
@@ -97,3 +97,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/iconvdata/tst-e2big.c b/iconvdata/tst-e2big.c
index 9533eb0657..8de64b21d1 100644
--- a/iconvdata/tst-e2big.c
+++ b/iconvdata/tst-e2big.c
@@ -95,10 +95,13 @@ test_tscii (void)
   test ("TSCII", inbuf, sizeof (inbuf), 9);
 }
 
-int
-main (void)
+static int
+do_test (void)
 {
   test_euc_jisx0213 ();
   test_tscii ();
   return 0;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/iconvdata/tst-loading.c b/iconvdata/tst-loading.c
index 0d8a9590d5..eff9d784eb 100644
--- a/iconvdata/tst-loading.c
+++ b/iconvdata/tst-loading.c
@@ -114,8 +114,8 @@ static const char inbuf[] =
 "     function.  Later modifications of the variable have no effect.\n";
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   size_t count = TEST_ROUNDS;
   int result = 0;
@@ -180,3 +180,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/inet/test-inet6_opt.c b/inet/test-inet6_opt.c
index 3bf319ef0c..a7ebf006c6 100644
--- a/inet/test-inet6_opt.c
+++ b/inet/test-inet6_opt.c
@@ -194,8 +194,8 @@ decode_inet6_opt (void *eb, socklen_t el)
   return ret;
 }
 
-int
-main (void)
+static int
+do_test (void)
 {
   void *eb;
   socklen_t el;
@@ -206,3 +206,6 @@ main (void)
     return 1;
   return 0;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/inet/tst-gethnm.c b/inet/tst-gethnm.c
index 8af44d66a1..dd3a547811 100644
--- a/inet/tst-gethnm.c
+++ b/inet/tst-gethnm.c
@@ -10,8 +10,8 @@
 #include <netinet/in.h>
 #include <arpa/inet.h>
 
-int
-main (void)
+static int
+do_test (void)
 {
   struct hostent *ent;
   struct in_addr hostaddr;
@@ -62,3 +62,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/inet/tst-network.c b/inet/tst-network.c
index fc90bd7245..cc840e0d46 100644
--- a/inet/tst-network.c
+++ b/inet/tst-network.c
@@ -51,8 +51,8 @@ struct
 };
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   int errors = 0;
   size_t i;
@@ -76,3 +76,6 @@ main (void)
 
   return errors != 0;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/inet/tst-ntoa.c b/inet/tst-ntoa.c
index 9be91eb511..ef82d4d537 100644
--- a/inet/tst-ntoa.c
+++ b/inet/tst-ntoa.c
@@ -22,8 +22,8 @@ test (unsigned int inaddr, const char *expected)
 }
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   int result = 0;
 
@@ -34,3 +34,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/intl/tst-codeset.c b/intl/tst-codeset.c
index f5b37ec136..37f731ec4e 100644
--- a/intl/tst-codeset.c
+++ b/intl/tst-codeset.c
@@ -23,8 +23,8 @@
 #include <stdlib.h>
 #include <string.h>
 
-int
-main (void)
+static int
+do_test (void)
 {
   char *s;
   int result = 0;
@@ -55,3 +55,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/intl/tst-gettext2.c b/intl/tst-gettext2.c
index 075680a926..3c44165f1d 100644
--- a/intl/tst-gettext2.c
+++ b/intl/tst-gettext2.c
@@ -40,8 +40,8 @@ struct data_t strings[] =
 const int lang_cnt = 3;
 const char *lang[] = {"lang1", "lang2", "lang3"};
 
-int
-main (void)
+static int
+do_test (void)
 {
   int i;
 
@@ -70,3 +70,6 @@ main (void)
 
   return 0;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/intl/tst-gettext3.c b/intl/tst-gettext3.c
index dd88987e64..11e9b08270 100644
--- a/intl/tst-gettext3.c
+++ b/intl/tst-gettext3.c
@@ -24,8 +24,8 @@
 #include <stdlib.h>
 #include <string.h>
 
-int
-main (void)
+static int
+do_test (void)
 {
   char *s;
   int result = 0;
@@ -57,3 +57,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/intl/tst-ngettext.c b/intl/tst-ngettext.c
index 4fb0ca21dc..71e91b9db9 100644
--- a/intl/tst-ngettext.c
+++ b/intl/tst-ngettext.c
@@ -25,8 +25,8 @@
 #include <string.h>
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   const char *strs[2] = { "singular", "plural" };
   unsigned long int i;
@@ -63,3 +63,6 @@ main (void)
 
   return res;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/intl/tst-translit.c b/intl/tst-translit.c
index 1aecee7081..299fa401f1 100644
--- a/intl/tst-translit.c
+++ b/intl/tst-translit.c
@@ -24,8 +24,8 @@
 #include <string.h>
 #include <unistd.h>
 
-int
-main (void)
+static int
+do_test (void)
 {
   int result = 0;
   const char *s;
@@ -49,3 +49,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/io/test-stat.c b/io/test-stat.c
index c5cfd26fe5..e9c846847c 100644
--- a/io/test-stat.c
+++ b/io/test-stat.c
@@ -25,8 +25,8 @@
 #include <stddef.h>
 #include <sys/stat.h>
 
-int
-main (void)
+static int
+do_test (void)
 {
   /* With _FILE_OFFSET_BITS=64 struct stat and struct stat64 should
      be identical.  */
@@ -65,3 +65,6 @@ main (void)
 #endif
   return 0;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/libio/test-fmemopen.c b/libio/test-fmemopen.c
index 30998940e1..211176e154 100644
--- a/libio/test-fmemopen.c
+++ b/libio/test-fmemopen.c
@@ -22,8 +22,8 @@ static char buffer[] = "foobar";
 #include <stdio.h>
 #include <string.h>
 
-int
-main (void)
+static int
+do_test (void)
 {
   int ch;
   FILE *stream;
@@ -37,3 +37,6 @@ main (void)
 
   return 0;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/libio/tst-freopen.c b/libio/tst-freopen.c
index f9e71773e7..94284ec796 100644
--- a/libio/tst-freopen.c
+++ b/libio/tst-freopen.c
@@ -22,8 +22,8 @@
 #include <string.h>
 #include <unistd.h>
 
-int
-main (void)
+static int
+do_test (void)
 {
   char name[] = "/tmp/tst-freopen.XXXXXX";
   const char * const test = "Let's test freopen.\n";
@@ -100,3 +100,6 @@ main (void)
   unlink (name);
   exit (0);
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/libio/tst-sscanf.c b/libio/tst-sscanf.c
index b1a2b8487e..fb4be34b77 100644
--- a/libio/tst-sscanf.c
+++ b/libio/tst-sscanf.c
@@ -3,8 +3,8 @@
 
 #define WCS_LENGTH 256
 
-int
-main (void)
+static int
+do_test (void)
 {
   const char cnv[] ="%l[abc]";
   const char str[] = "abbcXab";
@@ -18,3 +18,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/libio/tst-ungetwc1.c b/libio/tst-ungetwc1.c
index f74c407893..f71b39059f 100644
--- a/libio/tst-ungetwc1.c
+++ b/libio/tst-ungetwc1.c
@@ -7,8 +7,8 @@
 #include <unistd.h>
 #include <wchar.h>
 
-int
-main (void)
+static int
+do_test (void)
 {
   FILE *fp;
   const char *str = "abcdef";
@@ -79,3 +79,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/libio/tst-ungetwc2.c b/libio/tst-ungetwc2.c
index d15e287c05..a7c5193f5f 100644
--- a/libio/tst-ungetwc2.c
+++ b/libio/tst-ungetwc2.c
@@ -7,8 +7,8 @@
 #include <unistd.h>
 #include <wchar.h>
 
-int
-main (void)
+static int
+do_test (void)
 {
   FILE *fp;
   const char *str = "abcdef";
@@ -79,3 +79,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/libio/tst-widetext.c b/libio/tst-widetext.c
index 179763e852..acab72b708 100644
--- a/libio/tst-widetext.c
+++ b/libio/tst-widetext.c
@@ -31,8 +31,8 @@
 #define SIZE 210000
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   char name[] = "/tmp/widetext.out.XXXXXX";
   char mbbuf[SIZE];
@@ -367,3 +367,6 @@ main (void)
 
   return status;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/localedata/tst-ctype.c b/localedata/tst-ctype.c
index ceda891145..a4e8fcf4dc 100644
--- a/localedata/tst-ctype.c
+++ b/localedata/tst-ctype.c
@@ -61,8 +61,8 @@ static struct classes
   }
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   const char *cp;
   const char *cp2;
@@ -447,3 +447,6 @@ punct = %04x  alnum = %04x\n",
   printf ("  No errors for `%s' locale\n\n\n", setlocale (LC_ALL, NULL));
   return 0;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/localedata/tst-digits.c b/localedata/tst-digits.c
index 9b3ebcdaa1..76356e9d5c 100644
--- a/localedata/tst-digits.c
+++ b/localedata/tst-digits.c
@@ -111,8 +111,8 @@ static struct wprintf_int_test
   (sizeof (wprintf_int_tests) / sizeof (wprintf_int_tests[0]))
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   int cnt;
   int failures;
@@ -246,3 +246,6 @@ main (void)
 
   return status;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/localedata/tst-leaks.c b/localedata/tst-leaks.c
index 7a4b557f59..ccd44f2c62 100644
--- a/localedata/tst-leaks.c
+++ b/localedata/tst-leaks.c
@@ -1,8 +1,8 @@
 #include <locale.h>
 #include <mcheck.h>
 
-int
-main (void)
+static int
+do_test (void)
 {
   int cnt;
 
@@ -16,3 +16,6 @@ main (void)
 
   return 0;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/localedata/tst-mbswcs1.c b/localedata/tst-mbswcs1.c
index 14f1372253..140482900f 100644
--- a/localedata/tst-mbswcs1.c
+++ b/localedata/tst-mbswcs1.c
@@ -33,8 +33,8 @@
     }									  \
   putc ('\n', stdout)
 
-int
-main (void)
+static int
+do_test (void)
 {
   const unsigned char buf[6] = { 0x25,  0xe2, 0x82, 0xac,  0xce, 0xbb };
   mbstate_t state;
@@ -60,3 +60,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/localedata/tst-mbswcs2.c b/localedata/tst-mbswcs2.c
index 25fa9516a0..9cd95d6808 100644
--- a/localedata/tst-mbswcs2.c
+++ b/localedata/tst-mbswcs2.c
@@ -35,8 +35,8 @@
     }									\
   putc ('\n', stdout)
 
-int
-main (void)
+static int
+do_test (void)
 {
   unsigned char buf[6] = { 0x25,  0xe2, 0x82, 0xac,  0xce, 0xbb };
   mbstate_t state;
@@ -62,3 +62,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/localedata/tst-mbswcs3.c b/localedata/tst-mbswcs3.c
index 8db65c54d3..a068541a7c 100644
--- a/localedata/tst-mbswcs3.c
+++ b/localedata/tst-mbswcs3.c
@@ -38,8 +38,8 @@
     putc ('\n', stdout);						\
   }
 
-int
-main (void)
+static int
+do_test (void)
 {
   unsigned char buf[6] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
   const unsigned char bufcheck[6] = { 0x25, 0xe2, 0x82, 0xac, 0xce, 0xbb };
@@ -73,3 +73,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/localedata/tst-mbswcs4.c b/localedata/tst-mbswcs4.c
index 09b74179fb..a4fe60dff8 100644
--- a/localedata/tst-mbswcs4.c
+++ b/localedata/tst-mbswcs4.c
@@ -34,8 +34,8 @@
     }									\
   putc ('\n', stdout)
 
-int
-main (void)
+static int
+do_test (void)
 {
   unsigned char buf[6] = { 0x25,  0xe2, 0x82, 0xac,  0xce, 0xbb };
   mbstate_t state;
@@ -60,3 +60,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/localedata/tst-mbswcs5.c b/localedata/tst-mbswcs5.c
index e18862c1d0..c44f12a49d 100644
--- a/localedata/tst-mbswcs5.c
+++ b/localedata/tst-mbswcs5.c
@@ -37,8 +37,8 @@
     putc ('\n', stdout);						\
   }
 
-int
-main (void)
+static int
+do_test (void)
 {
   unsigned char buf[7] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
   const unsigned char bufcheck[7] = { 0x25, 0xe2, 0x82, 0xac, 0xce, 0xbb, 0 };
@@ -72,3 +72,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/localedata/tst-setlocale.c b/localedata/tst-setlocale.c
index 1f8e68d887..a09a4de531 100644
--- a/localedata/tst-setlocale.c
+++ b/localedata/tst-setlocale.c
@@ -3,8 +3,8 @@
 #include <stdio.h>
 #include <string.h>
 
-int
-main (void)
+static int
+do_test (void)
 {
   char q[30];
   char *s;
@@ -23,3 +23,6 @@ main (void)
 
   return strcmp (s, "de_DE.UTF-8") != 0;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/localedata/tst-trans.c b/localedata/tst-trans.c
index 5e09631384..0b0be83c78 100644
--- a/localedata/tst-trans.c
+++ b/localedata/tst-trans.c
@@ -24,8 +24,8 @@
 #include <wchar.h>
 #include <wctype.h>
 
-int
-main (void)
+static int
+do_test (void)
 {
   char buf[30];
   wchar_t wbuf[30];
@@ -68,3 +68,6 @@ main (void)
 
   return errors;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/localedata/tst-wctype.c b/localedata/tst-wctype.c
index bd2b057b54..eb720309e5 100644
--- a/localedata/tst-wctype.c
+++ b/localedata/tst-wctype.c
@@ -24,8 +24,8 @@
 #include <wchar.h>
 #include <wctype.h>
 
-int
-main (void)
+static int
+do_test (void)
 {
   wctype_t wct;
   wchar_t buf[1000];
@@ -141,3 +141,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/localedata/tst-xlocale1.c b/localedata/tst-xlocale1.c
index 297c9ad7e1..9f545a02c3 100644
--- a/localedata/tst-xlocale1.c
+++ b/localedata/tst-xlocale1.c
@@ -20,8 +20,8 @@ static struct
 #define ntests (sizeof (tests) / sizeof (tests[0]))
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   size_t cnt;
   int result = 0;
@@ -73,3 +73,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/login/tst-grantpt.c b/login/tst-grantpt.c
index 5078dac26c..65bb344909 100644
--- a/login/tst-grantpt.c
+++ b/login/tst-grantpt.c
@@ -66,8 +66,8 @@ test_einval (void)
   return ret;
 }
 
-int
-main (void)
+static int
+do_test (void)
 {
   int result = 0;
 
@@ -76,3 +76,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/malloc/tst-calloc.c b/malloc/tst-calloc.c
index 51e6c25ebf..7ad51246a3 100644
--- a/malloc/tst-calloc.c
+++ b/malloc/tst-calloc.c
@@ -104,8 +104,8 @@ null_test (void)
 }
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   /* We are allocating blocks with `calloc' and check whether every
      block is completely cleared.  We first try this for some fixed
@@ -123,3 +123,6 @@ main (void)
 
   return 0;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/malloc/tst-malloc.c b/malloc/tst-malloc.c
index a75ab1e3aa..2685315077 100644
--- a/malloc/tst-malloc.c
+++ b/malloc/tst-malloc.c
@@ -29,8 +29,8 @@ merror (const char *msg)
   printf ("Error: %s\n", msg);
 }
 
-int
-main (void)
+static int
+do_test (void)
 {
   void *p, *q;
   int save;
@@ -75,3 +75,6 @@ main (void)
 
   return errors != 0;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/malloc/tst-mallocstate.c b/malloc/tst-mallocstate.c
index 69c4500b85..539539ed03 100644
--- a/malloc/tst-mallocstate.c
+++ b/malloc/tst-mallocstate.c
@@ -29,8 +29,8 @@ merror (const char *msg)
   printf ("Error: %s\n", msg);
 }
 
-int
-main (void)
+static int
+do_test (void)
 {
   void *p1, *p2;
   void *save_state;
@@ -79,3 +79,6 @@ main (void)
  * c-basic-offset: 2
  * End:
  */
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/malloc/tst-mcheck.c b/malloc/tst-mcheck.c
index 478ca8cd24..bd9ab0efa7 100644
--- a/malloc/tst-mcheck.c
+++ b/malloc/tst-mcheck.c
@@ -29,8 +29,8 @@ merror (const char *msg)
   printf ("Error: %s\n", msg);
 }
 
-int
-main (void)
+static int
+do_test (void)
 {
   void *p, *q;
 
@@ -88,3 +88,6 @@ main (void)
 
   return errors != 0;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/malloc/tst-mtrace.c b/malloc/tst-mtrace.c
index 9b5151c7e0..b2c0c2c951 100644
--- a/malloc/tst-mtrace.c
+++ b/malloc/tst-mtrace.c
@@ -30,8 +30,8 @@ static void print (const void *node, VISIT value, int level);
 static FILE *fp;
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   void *root = NULL;
   size_t linelen = 0;
@@ -100,3 +100,6 @@ print (const void *node, VISIT value, int level)
   if (value == postorder || value == leaf)
     fprintf (fp, "%3d: %s", ++cnt, *(const char **) node);
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/malloc/tst-obstack.c b/malloc/tst-obstack.c
index 769697f185..ee1385d0f7 100644
--- a/malloc/tst-obstack.c
+++ b/malloc/tst-obstack.c
@@ -25,8 +25,8 @@ verbose_free (void *buf)
   printf ("free (%p)\n", buf);
 }
 
-int
-main (void)
+static int
+do_test (void)
 {
   int result = 0;
   int align = 2;
@@ -62,3 +62,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/math/atest-exp.c b/math/atest-exp.c
index 3a538b251d..6a551deef0 100644
--- a/math/atest-exp.c
+++ b/math/atest-exp.c
@@ -102,8 +102,8 @@ mpn_bitsize(const mp_limb_t *SRC_PTR, mp_size_t SIZE)
    return i * mpbpl + j;
 }
 
-int
-main (void)
+static int
+do_test (void)
 {
    mp1 ex, x, xt, e2, e3;
    int i;
@@ -190,3 +190,6 @@ main (void)
 
    return failures == 0 ? 0 : 1;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/math/atest-exp2.c b/math/atest-exp2.c
index 3442715366..945bb7accf 100644
--- a/math/atest-exp2.c
+++ b/math/atest-exp2.c
@@ -144,8 +144,8 @@ mpn_bitsize(const mp_limb_t *SRC_PTR, mp_size_t SIZE)
   return i * mpbpl + j;
 }
 
-int
-main (void)
+static int
+do_test (void)
 {
   mp1 ex, x, xt, e2, e3;
   int i;
@@ -227,3 +227,6 @@ main (void)
 
   return failures == 0 ? 0 : 1;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/math/atest-sincos.c b/math/atest-sincos.c
index 5ad59b224d..1f5e7307e9 100644
--- a/math/atest-sincos.c
+++ b/math/atest-sincos.c
@@ -141,8 +141,8 @@ mpn_bitsize (const mp_limb_t *SRC_PTR, mp_size_t SIZE)
    return i * mpbpl + j;
 }
 
-int
-main (void)
+static int
+do_test (void)
 {
   mp1 si, co, x, ox, xt, s2, c2, s3, c3;
   int i;
@@ -277,3 +277,6 @@ main (void)
 
    return (sin_failures == 0 && cos_failures == 0) ? 0 : 1;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/math/test-matherr.c b/math/test-matherr.c
index cd09a3981c..6983879da4 100644
--- a/math/test-matherr.c
+++ b/math/test-matherr.c
@@ -12,10 +12,13 @@ matherr (struct exception *s)
   return 1;
 }
 
-int
-main (void)
+static int
+do_test (void)
 {
   _LIB_VERSION = _SVID_;
   acos (2.0);
   return fail;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/math/test-misc.c b/math/test-misc.c
index 3fd2bca6ac..4801bfe38f 100644
--- a/math/test-misc.c
+++ b/math/test-misc.c
@@ -25,8 +25,8 @@
 #include <math-tests.h>
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   int result = 0;
 
@@ -1201,3 +1201,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/math/test-powl.c b/math/test-powl.c
index fd2a1cbae4..66ef886ab6 100644
--- a/math/test-powl.c
+++ b/math/test-powl.c
@@ -21,8 +21,8 @@
 #include <float.h>
 #include <ieee754.h>
 
-int
-main (void)
+static int
+do_test (void)
 {
   int result = 0;
 
@@ -48,3 +48,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/math/tst-definitions.c b/math/tst-definitions.c
index 2501c8c3d4..76a41256e8 100644
--- a/math/tst-definitions.c
+++ b/math/tst-definitions.c
@@ -21,8 +21,8 @@
 #include <stdio.h>
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   int result = 0;
 
@@ -44,3 +44,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/misc/tst-dirname.c b/misc/tst-dirname.c
index d8f33dfc94..d6c05ad3b3 100644
--- a/misc/tst-dirname.c
+++ b/misc/tst-dirname.c
@@ -37,8 +37,8 @@ test (const char *input, const char *result)
   return retval;
 }
 
-int
-main (void)
+static int
+do_test (void)
 {
   int result = 0;
 
@@ -67,3 +67,6 @@ main (void)
 
   return result != 0;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/misc/tst-efgcvt.c b/misc/tst-efgcvt.c
index 303042d36e..11427a0252 100644
--- a/misc/tst-efgcvt.c
+++ b/misc/tst-efgcvt.c
@@ -200,8 +200,8 @@ special (void)
 }
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   test (ecvt_tests, ecvt, "ecvt");
   test (fcvt_tests, fcvt, "fcvt");
@@ -211,3 +211,6 @@ main (void)
 
   return error_count;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/misc/tst-fdset.c b/misc/tst-fdset.c
index 78a34e9e5e..ef93ac3f39 100644
--- a/misc/tst-fdset.c
+++ b/misc/tst-fdset.c
@@ -20,8 +20,8 @@
 #include <stdio.h>
 #include <sys/types.h>
 
-int
-main (void)
+static int
+do_test (void)
 {
   int retval = 0;
   int i;
@@ -62,3 +62,6 @@ main (void)
 
   return retval;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/misc/tst-hsearch.c b/misc/tst-hsearch.c
index 6c19b22472..d390f1dcf3 100644
--- a/misc/tst-hsearch.c
+++ b/misc/tst-hsearch.c
@@ -1,8 +1,8 @@
 #include <search.h>
 #include <stdio.h>
 
-int
-main (void)
+static int
+do_test (void)
 {
   int a = 1;
   int b = 2;
@@ -29,3 +29,6 @@ main (void)
 
   return 0;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/misc/tst-mntent2.c b/misc/tst-mntent2.c
index 6c25e0127c..e61d506cd4 100644
--- a/misc/tst-mntent2.c
+++ b/misc/tst-mntent2.c
@@ -3,8 +3,8 @@
 #include <string.h>
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   int result = 0;
   struct mntent mef;
@@ -39,3 +39,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/nptl/tst-sem7.c b/nptl/tst-sem7.c
index d0e7f05838..4fc5f1fa21 100644
--- a/nptl/tst-sem7.c
+++ b/nptl/tst-sem7.c
@@ -31,8 +31,8 @@ remove_sem (int status, void *arg)
 }
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   sem_t *s;
   sem_t *s2;
@@ -106,3 +106,6 @@ main (void)
 
   return 0;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/nptl/tst-sem8.c b/nptl/tst-sem8.c
index 1aeb1e1ad3..4d7197cb4c 100644
--- a/nptl/tst-sem8.c
+++ b/nptl/tst-sem8.c
@@ -31,8 +31,8 @@ remove_sem (int status, void *arg)
 }
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   sem_t *s;
   int i;
@@ -71,3 +71,6 @@ main (void)
 
   return 0;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/nptl/tst-sem9.c b/nptl/tst-sem9.c
index 9727486ccd..b7d81a9b62 100644
--- a/nptl/tst-sem9.c
+++ b/nptl/tst-sem9.c
@@ -31,8 +31,8 @@ remove_sem (int status, void *arg)
 }
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   sem_t *s;
   int i;
@@ -78,3 +78,6 @@ main (void)
 
   return 0;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/nss/test-netdb.c b/nss/test-netdb.c
index 1620b5b173..384f32b8dc 100644
--- a/nss/test-netdb.c
+++ b/nss/test-netdb.c
@@ -356,8 +356,8 @@ setdb (const char *dbname)
 }
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   /*
     setdb ("db");
@@ -376,3 +376,6 @@ main (void)
 
   return (error_count != 0);
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/posix/tst-fnmatch.c b/posix/tst-fnmatch.c
index ff2674cd73..021734d754 100644
--- a/posix/tst-fnmatch.c
+++ b/posix/tst-fnmatch.c
@@ -33,8 +33,8 @@ static char *flag_output (int flags);
 static char *escape (const char *str, size_t *reslenp, char **resbuf);
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   char *linebuf = NULL;
   size_t linebuflen = 0;
@@ -388,3 +388,6 @@ escape (const char *str, size_t *reslenp, char **resbufp)
 
   return resbuf;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/posix/tst-getlogin.c b/posix/tst-getlogin.c
index 1393c3a779..141a6996a2 100644
--- a/posix/tst-getlogin.c
+++ b/posix/tst-getlogin.c
@@ -19,8 +19,8 @@
 #include <stdio.h>
 #include <string.h>
 
-int
-main (void)
+static int
+do_test (void)
 {
   char *login;
   int errors = 0;
@@ -55,3 +55,6 @@ main (void)
 
   return errors != 0;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/posix/tst-gnuglob.c b/posix/tst-gnuglob.c
index 1c72357de3..39b5b24cf5 100644
--- a/posix/tst-gnuglob.c
+++ b/posix/tst-gnuglob.c
@@ -379,8 +379,8 @@ test_result (const char *fmt, int flags, glob_t *gl, const char *str[])
 }
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   glob_t gl;
   int errval;
@@ -497,3 +497,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/posix/tst-mmap.c b/posix/tst-mmap.c
index c03acf5e16..5e52b49e35 100644
--- a/posix/tst-mmap.c
+++ b/posix/tst-mmap.c
@@ -6,8 +6,8 @@
 #include <sys/mman.h>
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   int result = 0;
   FILE *fp;
@@ -195,3 +195,6 @@ main (void)
   /* That's it.  */
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/pwd/tst-getpw.c b/pwd/tst-getpw.c
index 7875af9571..7a2b9a31f4 100644
--- a/pwd/tst-getpw.c
+++ b/pwd/tst-getpw.c
@@ -25,8 +25,8 @@ check (uid_t uid)
   (void) getpw (uid, buf);
 }
 
-int
-main (void)
+static int
+do_test (void)
 {
   uid_t uid;
 
@@ -38,3 +38,6 @@ main (void)
 
   return 0;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/resolv/tst-inet_ntop.c b/resolv/tst-inet_ntop.c
index f968ec4dcb..f0de06306c 100644
--- a/resolv/tst-inet_ntop.c
+++ b/resolv/tst-inet_ntop.c
@@ -4,8 +4,8 @@
 #include <stdio.h>
 #include <string.h>
 
-int
-main (void)
+static int
+do_test (void)
 {
   struct in_addr addr4;
   struct in6_addr addr6;
@@ -109,3 +109,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/rt/tst-timer.c b/rt/tst-timer.c
index f35d3e7328..87f649151a 100644
--- a/rt/tst-timer.c
+++ b/rt/tst-timer.c
@@ -20,8 +20,8 @@
 
 /* This file is only used if there is no other implementation and it should
    means that there is no implementation of POSIX timers.  */
-int
-main (void)
+static int
+do_test (void)
 {
 #ifdef _POSIX_TIMERS
   /* There should be a test.  */
@@ -30,3 +30,6 @@ main (void)
   return 0;
 #endif
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/stdio-common/test-fseek.c b/stdio-common/test-fseek.c
index fe57df6ac7..8a7f1ae722 100644
--- a/stdio-common/test-fseek.c
+++ b/stdio-common/test-fseek.c
@@ -19,8 +19,8 @@
 
 #define TESTFILE "/tmp/test.dat"
 
-int
-main (void)
+static int
+do_test (void)
 {
   FILE *fp;
   int i, j;
@@ -82,3 +82,6 @@ main (void)
   puts ((i > 255) ? "Test succeeded." : "Test FAILED!");
   return (i > 255) ? 0 : 1;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/stdio-common/test-popen.c b/stdio-common/test-popen.c
index d36cd61b4c..1f1c88acc6 100644
--- a/stdio-common/test-popen.c
+++ b/stdio-common/test-popen.c
@@ -49,8 +49,8 @@ read_data (FILE *stream)
     }
 }
 
-int
-main (void)
+static int
+do_test (void)
 {
   FILE *output, *input;
   int wstatus, rstatus;
@@ -100,3 +100,6 @@ main (void)
   puts (wstatus | rstatus  ? "Test FAILED!" : "Test succeeded.");
   return (wstatus | rstatus);
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/stdio-common/test-vfprintf.c b/stdio-common/test-vfprintf.c
index a936c2804d..9cc56d7dcb 100644
--- a/stdio-common/test-vfprintf.c
+++ b/stdio-common/test-vfprintf.c
@@ -36,8 +36,8 @@ const char *locs[] =
 
 char large[50000];
 
-int
-main (void)
+static int
+do_test (void)
 {
   char buf[25];
   size_t i;
@@ -124,3 +124,6 @@ main (void)
 
   return res;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/stdio-common/tst-cookie.c b/stdio-common/tst-cookie.c
index dcdabf3230..030e684562 100644
--- a/stdio-common/tst-cookie.c
+++ b/stdio-common/tst-cookie.c
@@ -63,8 +63,8 @@ cookieclose (void *cookie)
 }
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   cookie_io_functions_t fcts;
   char buf[1];
@@ -90,3 +90,6 @@ main (void)
 
   return errors != 0;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/stdio-common/tst-fileno.c b/stdio-common/tst-fileno.c
index a0c8853b85..753df9f68b 100644
--- a/stdio-common/tst-fileno.c
+++ b/stdio-common/tst-fileno.c
@@ -28,10 +28,13 @@ check (const char *name, FILE *stream, int fd)
   return sfd != fd;
 }
 
-int
-main (void)
+static int
+do_test (void)
 {
   return (check ("stdin", stdin, STDIN_FILENO) ||
 	  check ("stdout", stdout, STDOUT_FILENO) ||
 	  check ("stderr", stderr, STDERR_FILENO));
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/stdio-common/tst-gets.c b/stdio-common/tst-gets.c
index 7f78fc1283..052f1f926a 100644
--- a/stdio-common/tst-gets.c
+++ b/stdio-common/tst-gets.c
@@ -21,8 +21,8 @@
 #include <string.h>
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   char buf[100];
   int result = 0;
@@ -61,3 +61,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/stdio-common/tst-obprintf.c b/stdio-common/tst-obprintf.c
index 39e8fdab6f..51515932ad 100644
--- a/stdio-common/tst-obprintf.c
+++ b/stdio-common/tst-obprintf.c
@@ -4,8 +4,8 @@
 #include <stdlib.h>
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   struct obstack ob;
   int n;
@@ -40,3 +40,6 @@ main (void)
 
   return 0;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/stdio-common/tst-perror.c b/stdio-common/tst-perror.c
index b809c2fc40..416b120b8d 100644
--- a/stdio-common/tst-perror.c
+++ b/stdio-common/tst-perror.c
@@ -24,8 +24,8 @@
 #define WC_EXP_LEN (sizeof (WC_EXP) - 1)
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   int fd;
   char fname[] = "/tmp/tst-perror.XXXXXX";
@@ -152,3 +152,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/stdio-common/tst-sprintf.c b/stdio-common/tst-sprintf.c
index c4e911fe94..2fe373f350 100644
--- a/stdio-common/tst-sprintf.c
+++ b/stdio-common/tst-sprintf.c
@@ -4,8 +4,8 @@
 #include <string.h>
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   char buf[100];
   int result = 0;
@@ -73,3 +73,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/stdio-common/tst-sprintf2.c b/stdio-common/tst-sprintf2.c
index 422278dd6a..0ddf15ba33 100644
--- a/stdio-common/tst-sprintf2.c
+++ b/stdio-common/tst-sprintf2.c
@@ -3,8 +3,8 @@
 #include <stdio.h>
 #include <string.h>
 
-int
-main (void)
+static int
+do_test (void)
 {
 #if LDBL_MANT_DIG >= 106
   volatile union { long double l; long long x[2]; } u, v;
@@ -82,3 +82,6 @@ main (void)
 #endif
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/stdio-common/tst-sprintf3.c b/stdio-common/tst-sprintf3.c
index e54b23b167..e927761091 100644
--- a/stdio-common/tst-sprintf3.c
+++ b/stdio-common/tst-sprintf3.c
@@ -22,8 +22,8 @@
 #include <stdio.h>
 #include <string.h>
 
-int
-main (void)
+static int
+do_test (void)
 {
 #if LDBL_MANT_DIG >= 106
   volatile union { long double l; long long x[2]; } u, v;
@@ -88,3 +88,6 @@ main (void)
 #endif
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/stdio-common/tst-swprintf.c b/stdio-common/tst-swprintf.c
index e65234b1c2..ce62c6bf68 100644
--- a/stdio-common/tst-swprintf.c
+++ b/stdio-common/tst-swprintf.c
@@ -12,8 +12,8 @@
 
 const char input[] = "\x8e\xa1g\x8e\xa2h\x8e\xa3i\x8e\xa4j";
 
-int
-main (void)
+static int
+do_test (void)
 {
   wchar_t buf[1000];
 #define nbuf (sizeof (buf) / sizeof (buf[0]))
@@ -54,3 +54,6 @@ swprintf (.., .., L\"%ls\", \"%ls\") produced \"%ls\", not \"%ls\"\n",	      \
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/stdio-common/tst-tmpnam.c b/stdio-common/tst-tmpnam.c
index a3bd9fb90c..3b97064182 100644
--- a/stdio-common/tst-tmpnam.c
+++ b/stdio-common/tst-tmpnam.c
@@ -19,8 +19,8 @@
 #include <stdlib.h>
 #include <string.h>
 
-int
-main (void)
+static int
+do_test (void)
 {
   const char *name;
   int retval = 0;
@@ -48,3 +48,6 @@ main (void)
 
   return retval;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/stdio-common/tst-unbputc.c b/stdio-common/tst-unbputc.c
index bbd8622b03..7200a82a2a 100644
--- a/stdio-common/tst-unbputc.c
+++ b/stdio-common/tst-unbputc.c
@@ -1,11 +1,14 @@
 #include <stdio.h>
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   putc ('1', stderr);
   putc ('2', stderr);
 
   return 0;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/stdio-common/tst-wc-printf.c b/stdio-common/tst-wc-printf.c
index abbeeb5330..2a2acb5059 100644
--- a/stdio-common/tst-wc-printf.c
+++ b/stdio-common/tst-wc-printf.c
@@ -4,8 +4,8 @@
 #include <string.h>
 #include <wctype.h>
 
-int
-main (void)
+static int
+do_test (void)
 {
   wchar_t tmp[3];
   tmp[0] = '8';
@@ -20,3 +20,6 @@ main (void)
 
   return 0;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/stdlib/tst-environ.c b/stdlib/tst-environ.c
index 3316d7e555..b1de2f99d7 100644
--- a/stdlib/tst-environ.c
+++ b/stdlib/tst-environ.c
@@ -25,8 +25,8 @@
 
 char putenv_val[100] = VAR "=some longer value";
 
-int
-main (void)
+static int
+do_test (void)
 {
   int result = 0;
   const char *valp;
@@ -219,3 +219,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/stdlib/tst-fmtmsg.c b/stdlib/tst-fmtmsg.c
index c3748d64d5..b7948c5f1e 100644
--- a/stdlib/tst-fmtmsg.c
+++ b/stdlib/tst-fmtmsg.c
@@ -7,8 +7,8 @@
 
 #define MM_TEST 10
 
-int
-main (void)
+static int
+do_test (void)
 {
   int result = 0;
 
@@ -80,3 +80,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/stdlib/tst-limits.c b/stdlib/tst-limits.c
index 265b9dbfbb..6e51dcadb5 100644
--- a/stdlib/tst-limits.c
+++ b/stdlib/tst-limits.c
@@ -16,8 +16,8 @@ bitval (int bits)
 }
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   int result = 0;
 
@@ -67,3 +67,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/stdlib/tst-rand48-2.c b/stdlib/tst-rand48-2.c
index 3079b98839..8b8fef4430 100644
--- a/stdlib/tst-rand48-2.c
+++ b/stdlib/tst-rand48-2.c
@@ -3,8 +3,8 @@
 #include <stdlib.h>
 #include <time.h>
 
-int
-main (void)
+static int
+do_test (void)
 {
   time_t t = time (NULL);
   int i, ret = 0;
@@ -111,3 +111,6 @@ main (void)
 
   return ret;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/stdlib/tst-rand48.c b/stdlib/tst-rand48.c
index 52e1b96afe..973c62e1eb 100644
--- a/stdlib/tst-rand48.c
+++ b/stdlib/tst-rand48.c
@@ -8,8 +8,8 @@
 #endif
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   unsigned short int xs[3] = { 0x0001, 0x0012, 0x0123 };
   unsigned short int lxs[7];
@@ -388,3 +388,6 @@ drand48() and erand48 in lines %d and %d produce different results\n",
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/stdlib/tst-random.c b/stdlib/tst-random.c
index 47195d635a..8fe0993dd7 100644
--- a/stdlib/tst-random.c
+++ b/stdlib/tst-random.c
@@ -46,8 +46,8 @@ const unsigned int seed[3] = { 0x12344321U, 0xEE11DD22U, 0xFEDCBA98 };
 
 void fail (const char *msg, int s, int i) __attribute__ ((__noreturn__));
 
-int
-main (void)
+static int
+do_test (void)
 {
   long int rnd[nseq][nrnd];	/* pseudorandom numbers */
   char* state[nseq];		/* state for PRNG */
@@ -117,3 +117,6 @@ fail (const char *msg, int s, int i)
   printf ("%s (seq %d, pos %d).\n", msg, s, i);
   exit (1);
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/stdlib/tst-random2.c b/stdlib/tst-random2.c
index 0553b62992..da840f30be 100644
--- a/stdlib/tst-random2.c
+++ b/stdlib/tst-random2.c
@@ -20,8 +20,8 @@
 #include <stdio.h>
 #include <stdlib.h>
 
-int
-main (void)
+static int
+do_test (void)
 {
   int pass;
   int ret = 0;
@@ -56,3 +56,6 @@ main (void)
     }
   return ret;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/stdlib/tst-strtol.c b/stdlib/tst-strtol.c
index eebd8f7afa..448102a2d9 100644
--- a/stdlib/tst-strtol.c
+++ b/stdlib/tst-strtol.c
@@ -534,8 +534,8 @@ static const struct ltest tests[] =
 /* Prototypes for local functions.  */
 static void expand (char *dst, int c);
 
-int
-main (void)
+static int
+do_test (void)
 {
   const struct ltest *lt;
   char *ep;
@@ -623,3 +623,6 @@ expand (dst, c)
   else
     (void) sprintf (dst, "%#.3o", (unsigned int) c);
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/stdlib/tst-strtoll.c b/stdlib/tst-strtoll.c
index 0c77254d52..93f1a56a56 100644
--- a/stdlib/tst-strtoll.c
+++ b/stdlib/tst-strtoll.c
@@ -309,8 +309,8 @@ static const struct ltest tests[] =
 /* Prototypes for local functions.  */
 static void expand (char *dst, int c);
 
-int
-main (void)
+static int
+do_test (void)
 {
   const struct ltest *lt;
   char *ep;
@@ -398,3 +398,6 @@ expand (dst, c)
   else
     (void) sprintf (dst, "%#.3o", (unsigned int) c);
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/stdlib/tst-tls-atexit.c b/stdlib/tst-tls-atexit.c
index 1ba3fae352..c03a3e5ed3 100644
--- a/stdlib/tst-tls-atexit.c
+++ b/stdlib/tst-tls-atexit.c
@@ -60,8 +60,8 @@ load (void *u)
   return NULL;
 }
 
-int
-main (void)
+static int
+do_test (void)
 {
   pthread_t t;
   int ret;
@@ -109,3 +109,6 @@ main (void)
 
   return 0;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/stdlib/tst-xpg-basename.c b/stdlib/tst-xpg-basename.c
index 61e2e4b14c..facc78313c 100644
--- a/stdlib/tst-xpg-basename.c
+++ b/stdlib/tst-xpg-basename.c
@@ -37,8 +37,8 @@ static struct
 };
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   size_t i = 0;
   int errors = 0;
@@ -64,3 +64,6 @@ main (void)
 
   return errors;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/string/test-ffs.c b/string/test-ffs.c
index 7ac1dd6bfd..a64a1cccc1 100644
--- a/string/test-ffs.c
+++ b/string/test-ffs.c
@@ -21,8 +21,8 @@
 #include <stdio.h>
 #include <string.h>
 
-int
-main (void)
+static int
+do_test (void)
 {
   int failures = 0;
   int i;
@@ -61,3 +61,6 @@ main (void)
 
   return failures;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/string/tst-bswap.c b/string/tst-bswap.c
index cca704c0d2..6c1c911ec8 100644
--- a/string/tst-bswap.c
+++ b/string/tst-bswap.c
@@ -21,8 +21,8 @@
 
 extern unsigned long long int wash (unsigned long long int a);
 
-int
-main (void)
+static int
+do_test (void)
 {
   int result = 0;
 
@@ -71,3 +71,6 @@ wash (unsigned long long int a)
      regards the argument to the bswap_*() functions as constant.  */
   return a + 0;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/string/tst-inlcall.c b/string/tst-inlcall.c
index 32d88631f5..0f8b1bdae4 100644
--- a/string/tst-inlcall.c
+++ b/string/tst-inlcall.c
@@ -31,8 +31,8 @@
 #include <fcntl.h>
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   int status;
   int errors = 0;
@@ -80,3 +80,6 @@ main (void)
     }
   return status;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/string/tst-strtok.c b/string/tst-strtok.c
index 7e34aeefaa..6fbef9f33e 100644
--- a/string/tst-strtok.c
+++ b/string/tst-strtok.c
@@ -2,8 +2,8 @@
 #include <stdio.h>
 #include <string.h>
 
-int
-main (void)
+static int
+do_test (void)
 {
   char buf[1] = { 0 };
   int result = 0;
@@ -21,3 +21,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/string/tst-strxfrm.c b/string/tst-strxfrm.c
index 2ae2e2952f..f48cfc0da4 100644
--- a/string/tst-strxfrm.c
+++ b/string/tst-strxfrm.c
@@ -58,8 +58,8 @@ test (const char *locale)
 }
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   int result = 0;
 
@@ -69,3 +69,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/sysdeps/x86_64/tst-audit10.c b/sysdeps/x86_64/tst-audit10.c
index 24c9696839..8d6721ac8c 100644
--- a/sysdeps/x86_64/tst-audit10.c
+++ b/sysdeps/x86_64/tst-audit10.c
@@ -45,8 +45,8 @@ avx512_enabled (void)
 
 extern __m512i audit_test (__m512i, __m512i, __m512i, __m512i,
 			   __m512i, __m512i, __m512i, __m512i);
-int
-main (void)
+static int
+do_test (void)
 {
   /* Run AVX512 test only if AVX512 is supported.  */
   if (avx512_enabled ())
@@ -62,9 +62,12 @@ main (void)
   return 0;
 }
 #else
-int
-main (void)
+static int
+do_test (void)
 {
   return 0;
 }
 #endif
+
+#define TEST_FUNCTION do_test ()
+#include "../../test-skeleton.c"
diff --git a/sysdeps/x86_64/tst-audit3.c b/sysdeps/x86_64/tst-audit3.c
index d00db9972b..0602aa25db 100644
--- a/sysdeps/x86_64/tst-audit3.c
+++ b/sysdeps/x86_64/tst-audit3.c
@@ -7,8 +7,8 @@
 
 extern __m128i audit_test (__m128i, __m128i, __m128i, __m128i,
 			   __m128i, __m128i, __m128i, __m128i);
-int
-main (void)
+static int
+do_test (void)
 {
   __m128i xmm = _mm_setzero_si128 ();
   __m128i ret = audit_test (xmm, xmm, xmm, xmm, xmm, xmm, xmm, xmm);
@@ -18,3 +18,6 @@ main (void)
 
   return 0;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../../test-skeleton.c"
diff --git a/sysdeps/x86_64/tst-audit4.c b/sysdeps/x86_64/tst-audit4.c
index c4f1d5bdb9..44d51231e3 100644
--- a/sysdeps/x86_64/tst-audit4.c
+++ b/sysdeps/x86_64/tst-audit4.c
@@ -25,8 +25,8 @@ avx_enabled (void)
 
 extern __m256i audit_test (__m256i, __m256i, __m256i, __m256i,
 			   __m256i, __m256i, __m256i, __m256i);
-int
-main (void)
+static int
+do_test (void)
 {
   /* Run AVX test only if AVX is supported.  */
   if (avx_enabled ())
@@ -41,9 +41,12 @@ main (void)
   return 0;
 }
 #else
-int
-main (void)
+static int
+do_test (void)
 {
   return 0;
 }
 #endif
+
+#define TEST_FUNCTION do_test ()
+#include "../../test-skeleton.c"
diff --git a/sysdeps/x86_64/tst-audit5.c b/sysdeps/x86_64/tst-audit5.c
index 0094fee61f..225b4c86ac 100644
--- a/sysdeps/x86_64/tst-audit5.c
+++ b/sysdeps/x86_64/tst-audit5.c
@@ -7,8 +7,8 @@
 
 extern __m128i audit_test (__m128i, __m128i, __m128i, __m128i,
 			   __m128i, __m128i, __m128i, __m128i);
-int
-main (void)
+static int
+do_test (void)
 {
   __m128i xmm = _mm_setzero_si128 ();
   __m128i ret = audit_test (xmm, xmm, xmm, xmm, xmm, xmm, xmm, xmm);
@@ -19,3 +19,6 @@ main (void)
 
   return 0;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../../test-skeleton.c"
diff --git a/time/tst-ftime_l.c b/time/tst-ftime_l.c
index fc3d78d689..6690efeb9c 100644
--- a/time/tst-ftime_l.c
+++ b/time/tst-ftime_l.c
@@ -6,8 +6,8 @@
 #include <wchar.h>
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   locale_t l;
   locale_t old;
@@ -124,3 +124,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/time/tst-getdate.c b/time/tst-getdate.c
index fd879239c3..b3377ee55a 100644
--- a/time/tst-getdate.c
+++ b/time/tst-getdate.c
@@ -76,8 +76,8 @@ report_date_error (int err)
 }
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   int errors = 0;
   size_t i;
@@ -121,3 +121,6 @@ main (void)
     printf ("No errors found.\n");
   return errors != 0;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/time/tst-mktime.c b/time/tst-mktime.c
index 416a85616c..c1473600dd 100644
--- a/time/tst-mktime.c
+++ b/time/tst-mktime.c
@@ -3,8 +3,8 @@
 #include <string.h>
 #include <time.h>
 
-int
-main (void)
+static int
+do_test (void)
 {
   struct tm time_str, *tm;
   time_t t;
@@ -68,3 +68,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/time/tst-mktime3.c b/time/tst-mktime3.c
index 60d0e0b32c..c738e5384a 100644
--- a/time/tst-mktime3.c
+++ b/time/tst-mktime3.c
@@ -17,8 +17,8 @@ struct tm expected[] =
   { .tm_sec = 5, .tm_mday = 1, .tm_year = 102, .tm_wday = 2 }
 };
 
-int
-main (void)
+static int
+do_test (void)
 {
   setenv ("TZ", "UTC", 1);
   int i;
@@ -48,3 +48,6 @@ main (void)
     }
   return 0;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/time/tst-posixtz.c b/time/tst-posixtz.c
index 019d92ada0..c1ea267cb4 100644
--- a/time/tst-posixtz.c
+++ b/time/tst-posixtz.c
@@ -28,8 +28,8 @@ struct
     "1999/02/25 15:18:12 dst=0 zone=EST" },
 };
 
-int
-main (void)
+static int
+do_test (void)
 {
   int result = 0;
   size_t cnt;
@@ -116,3 +116,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/time/tst-strptime2.c b/time/tst-strptime2.c
index 73552bb8f8..bcd6cc8be9 100644
--- a/time/tst-strptime2.c
+++ b/time/tst-strptime2.c
@@ -26,8 +26,8 @@ static const struct
 #define ntests (sizeof (tests) / sizeof (tests[0]))
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   int result = 0;
 
@@ -57,3 +57,6 @@ main (void)
 
   return 0;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/time/tst-strptime3.c b/time/tst-strptime3.c
index 9a8c6485e7..75b57c1928 100644
--- a/time/tst-strptime3.c
+++ b/time/tst-strptime3.c
@@ -4,8 +4,8 @@
 #include <time.h>
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   int result = 0;
   struct tm tm;
@@ -53,3 +53,6 @@ main (void)
 
   return 0;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/wcsmbs/tst-btowc.c b/wcsmbs/tst-btowc.c
index d793622771..dc34f2b907 100644
--- a/wcsmbs/tst-btowc.c
+++ b/wcsmbs/tst-btowc.c
@@ -74,8 +74,8 @@ eof_test (void)
 
 
 /* Test the btowc() function for a few locales with known character sets.  */
-int
-main (void)
+static int
+do_test (void)
 {
   int result = 0;
 
@@ -172,3 +172,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/wcsmbs/tst-mbrtowc.c b/wcsmbs/tst-mbrtowc.c
index 3e1eb728e8..a30b619395 100644
--- a/wcsmbs/tst-mbrtowc.c
+++ b/wcsmbs/tst-mbrtowc.c
@@ -151,8 +151,8 @@ utf8_test (void)
 }
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   int result = 0;
 
@@ -230,3 +230,6 @@ check_ascii (const char *locname)
 
   return res != 0;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/wcsmbs/tst-mbsrtowcs.c b/wcsmbs/tst-mbsrtowcs.c
index 8d7e2cbeef..405534d674 100644
--- a/wcsmbs/tst-mbsrtowcs.c
+++ b/wcsmbs/tst-mbsrtowcs.c
@@ -21,8 +21,8 @@
 #include <string.h>
 #include <wchar.h>
 
-int
-main (void)
+static int
+do_test (void)
 {
   const unsigned char buf[] = { 'a', 'b', '\0', 'c', 'd', '\0', 'e' };
   wchar_t out[sizeof (buf)];
@@ -62,3 +62,6 @@ main (void)
     }
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/wcsmbs/tst-wchar-h.c b/wcsmbs/tst-wchar-h.c
index 4cf2dd0690..fd2ad569a7 100644
--- a/wcsmbs/tst-wchar-h.c
+++ b/wcsmbs/tst-wchar-h.c
@@ -1,9 +1,12 @@
 #include <stdlib.h>
 #include <wchar.h>
 
-int
-main (void)
+static int
+do_test (void)
 {
   mbstate_t x;
   return sizeof (x) - sizeof (mbstate_t);
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/wcsmbs/tst-wcpncpy.c b/wcsmbs/tst-wcpncpy.c
index 74765e755e..4cf4aeccd0 100644
--- a/wcsmbs/tst-wcpncpy.c
+++ b/wcsmbs/tst-wcpncpy.c
@@ -20,8 +20,8 @@
 #include <wchar.h>
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   int result = 0;
 
@@ -74,3 +74,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/wcsmbs/tst-wcrtomb.c b/wcsmbs/tst-wcrtomb.c
index 3f052f3b2d..cad343effd 100644
--- a/wcsmbs/tst-wcrtomb.c
+++ b/wcsmbs/tst-wcrtomb.c
@@ -26,8 +26,8 @@
 static int check_ascii (const char *locname);
 
 
-int
-main (void)
+static int
+do_test (void)
 {
   int result = 0;
 
@@ -92,3 +92,6 @@ check_ascii (const char *locname)
 
   return res != 0;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/wcsmbs/tst-wcsnlen.c b/wcsmbs/tst-wcsnlen.c
index 60e64ad657..8d4b8b5563 100644
--- a/wcsmbs/tst-wcsnlen.c
+++ b/wcsmbs/tst-wcsnlen.c
@@ -27,8 +27,8 @@
       printf ("wcsnlen (L\"%s\", %d) = %d, not %d\n", Str, Max, n, Exp);      \
     }
 
-int
-main (void)
+static int
+do_test (void)
 {
   int result = 0;
   int n;
@@ -48,3 +48,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/wcsmbs/tst-wcstof.c b/wcsmbs/tst-wcstof.c
index 197cb5c770..576a58c023 100644
--- a/wcsmbs/tst-wcstof.c
+++ b/wcsmbs/tst-wcstof.c
@@ -4,8 +4,8 @@
 #include <string.h>
 #include <wctype.h>
 
-int
-main (void)
+static int
+do_test (void)
 {
   int result = 0;
   char buf[100];
@@ -21,3 +21,6 @@ main (void)
 
   return result;
 }
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"