source: trunk/src/libctests/glibc/Makefile@ 2183

Last change on this file since 2183 was 2176, checked in by bird, 20 years ago

..

  • Property cvs2svn:cvs-rev set to 1.14
  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 20.1 KB
Line 
1# $Id: Makefile 2176 2005-07-03 03:48:26Z bird $
2
3
4# default rule
5all: tests-logged
6
7#
8# Basic setup.
9#
10OUTDIR = ./out
11ABSOUTDIR = $(CURDIR)/out
12TS = $(shell date '+"%Y-%m-%d-%H-%M-%S"')
13LOG = $(OUTDIR)/$(1)-$(TS).log
14CC = gcc
15LDFLAGS=
16CFLAGS = -O -D_GNU_SOURCE -std=gnu99 -DOBJPFX=\"$(OUTDIR)/\"
17ifeq ($(shell uname -m),amd64)
18CFLAGS+= -I sysdeps/x86_64 -I .
19else
20CFLAGS+= -I sysdeps/i386/i686 -I sysdeps/i386 -I .
21endif
22
23
24#
25# Skipped tests, Expected failures.
26#
27ifeq ($(TARGET),)
28TARGET := innoteklibc
29endif
30
31ifeq ($(TARGET),glibc)
32SKIPPED :=
33EXPECTED :=
34_TARGET_OK := ok
35CFLAGS += -D__GLIBC__ \
36 -DHAVE___STRTOD_INTERNAL \
37 -DHAVE_ASPRINTF \
38 -DHAVE_GETLINE \
39 -DHAVE_STRNLEN \
40 -DHAVE_STPNCPY \
41 -DHAVE_STRCHRNUL \
42 -DHAVE_RAWMEMCHR \
43 -DHAVE_MEMRCHR \
44 -DHAVE_STRSEP \
45 -DHAVE_STRNDUP \
46 -DHAVE_MEMPCPY \
47 -DHAVE_NEWLOCALE \
48 -DHAVE_64BIT_FILEIO_TYPES \
49 -DHAVE_SWPRINTF \
50 -DHAVE_RPC_NETDB_H \
51 -DHAVE_NL_LANGINFO_EXTENTIONS
52endif
53
54ifeq ($(TARGET),innoteklibc)
55SKIPPED := \
56 io/test-stat.c \
57 io/test-stat2.c \
58 \
59 login/tst-grantpt.c \
60 login/tst-utmpx.c \
61 \
62 malloc/tst-mallocstate.c \
63 \
64 math/test-matherr.c \
65 math/bug-tgmath1.c \
66 math/test-tgmath.c \
67 math/test-tgmath-ret.c \
68 \
69 misc/tst-efgcvt.c \
70 misc/tst-mntent.c \
71 \
72 nss/bug-erange.c \
73 \
74 posix/bug-ga1.c \
75 posix/bug-ga2.c \
76 posix/bug-regex1.c \
77 posix/bug-regex10.c \
78 posix/bug-regex13.c \
79 posix/bug-regex14.c \
80 posix/bug-regex16.c \
81 posix/bug-regex17.c \
82 posix/bug-regex19.c \
83 posix/bug-regex20.c \
84 posix/bug-regex22.c \
85 posix/bug-regex4.c \
86 posix/bug-regex7.c \
87 posix/bug-regex8.c \
88 posix/runtests.c \
89 posix/test-vfork.c \
90 posix/tst-boost.c \
91 posix/tst-execl2.c \
92 posix/tst-execle2.c \
93 posix/tst-execlp2.c \
94 posix/tst-execv2.c \
95 posix/tst-execve2.c \
96 posix/tst-execvp2.c \
97 posix/tst-execvp3.c \
98 posix/tst-getaddrinfo.c \
99 posix/tst-getaddrinfo2.c \
100 posix/tst-gnuglob.c \
101 posix/tst-mmap.c \
102 posix/tst-preadwrite64.c \
103 posix/tst-rxspencer.c \
104 posix/tst-truncate64.c \
105 posix/tst-vfork1.c \
106 posix/tst-vfork2.c \
107 \
108 pwd/tst-getpw.c \
109 \
110 stdio-common/tst-cookie.c \
111 stdio-common/tst-fmemopen.c \
112 stdio-common/tst-fmemopen2.c \
113 stdio-common/tst-obprintf.c \
114 stdio-common/tst-perror.c \
115 stdio-common/tst-pop8en.c \
116 stdio-common/tst-printfsz.c \
117 stdio-common/tst-swprintf.c \
118 \
119 stdlib/test-a64l.c \
120 stdlib/tst-setcontext.c \
121 \
122 string/test-ffs.c \
123 string/test-stpncpy.c \
124 string/tst-bswap.c \
125 string/tst-strfry.c \
126 \
127 sunrpc/tst-getmyaddr.c \
128 \
129 time/tst_wcsftime.c \
130 time/tst-ftime_l.c \
131 time/tst-getdate.c \
132 time/tst-strptime2.c \
133 \
134 timezone/test-tz.c \
135 timezone/tst-timezone.c \
136 \
137 wcsmbs/tst-wcpncpy.c \
138 wcsmbs/tst-wcsnlen.c \
139
140EXPECTED := \
141 wcsmbs/tst-mbrtowc.c \
142 wcsmbs/tst-wcrtomb.c \
143 time/tst-posixtz.c \
144 time/tst-strftime.c \
145 stdlib/tst-putenv.c \
146 stdio-common/test-popen.c \
147 stdio-common/test-vfprintf.c \
148 stdio-common/tst-fphex.c \
149 stdio-common/tstscanf.c \
150 resolv/tst-aton.c \
151 posix/bug-glob1.c \
152 posix/bug-glob2.c \
153 posix/bug-regex11.c \
154 posix/bug-regex15.c \
155 posix/bug-regex18.c \
156 posix/bug-regex9.c \
157 posix/testfnm.c \
158 posix/tst-chmod.c \
159 posix/tst-dir.c \
160 posix/tst-fnmatch.c \
161 posix/tst-pcre.c \
162 misc/tst-tsearch.c \
163 misc/tst-dirname.c \
164 io/bug-ftw4.c
165
166# NOTES:
167# stdio-common/test-vfprintf.c: File duplication and truncation needs exploring with regards to file position!
168# stdio-common/tst-fphex.c: We don't implement %a.
169# stdio-common/tst-sscanf.c: Is doing some thousand separator and internationalization stuff which we don't implement.
170# stdio-common/tstscanf.c: two cases of sscan working in three different ways depending on glibc, bsd or libc. cool!
171# posix/runtests.c: This really needs looking at on BSD.
172# posix/testfnm.c: This looks bad!
173# posix/tst-fnmatch.c: This too!
174# misc/tst-tsearch.c: This really needs looking at on BSD.
175# io/bug-ftw4.c: open("dir")
176
177CFLAGS += -Zomf -g -I sysdeps/os2 \
178 -Dprogram_invocation_short_name=getprogname\(\) \
179 -DHAVE_STRNLEN \
180 -DHAVE_MEMPCPY \
181 -DHAVE_ASPRINTF \
182 -DHAVE_GETLINE \
183 -DHAVE_STRCHRNUL \
184 -DHAVE_RAWMEMCHR \
185 -DHAVE_MEMRCHR
186LDFLAGS += -Zstack 512
187_TARGET_OK := ok
188
189posix/runptests.c_ARGS = 15 # expect 15 errors
190math/test-float.c_ARGS = -e 273 # expect 273 errors
191math/test-ifloat.c_ARGS = -e 217 # expect 217 errors
192math/test-double.c_ARGS = -e 174 # expect 174 errors
193math/test-idouble.c_ARGS = -e 142 # expect 142 errors
194math/test-ldouble.c_ARGS = -e 212 # expect 212 errors
195math/test-ildoubl.c_ARGS = -e 153 # expect 153 errors
196endif
197
198ifeq ($(TARGET),bsd)
199SKIPPED := \
200 argp/tst-argp1.c \
201 argp/argp-test.c \
202 \
203 assert/test-assert-perr.c \
204 \
205 crypt/cert.c \
206 \
207 iconv/tst-iconv1.c \
208 iconv/tst-iconv2.c \
209 iconv/tst-iconv3.c \
210 iconv/tst-iconv5.c \
211 \
212 inet/tst-ether_aton.c \
213 \
214 intl/tst-ngettext.c \
215 \
216 string/test-mempcpy.c \
217 string/test-stpncpy.c \
218 string/tst-bswap.c \
219 string/tst-strfry.c
220EXCEPTIONS := \
221 catgets/test-gencat.c
222_TARGET_OK := ok
223CFLAGS += -I sysdeps/unix/bsd -D__BSD__ \
224 -DHAVE_ASPRINTF \
225 -DHAVE_SWPRINTF \
226 -DHAVE_GETLINE
227endif
228
229ifndef _TARGET_OK
230$(error Invalid TARGET definition '$(TARGET)'. valid: glibc, innoteklibc, bsd)
231endif
232
233
234nothing:
235 @echo TS=$(TS)
236
237
238#
239# The test.
240#
241
242ARGP := \
243 argp/tst-argp1.c \
244 argp/argp-test.c
245
246ASSERT := \
247 assert/test-assert-perr.c \
248 assert/test-assert.c
249
250CATGETS := \
251 catgets/test-gencat.c
252
253#CONFORM - separate.
254
255CRYPT := \
256 crypt/md5c-test.c \
257 crypt/cert.c
258
259crypt/md5c-test.c_LDFLAGS = -lcrypt
260crypt/cert.c_LDFLAGS = -lcrypt
261crypt/cert.c_INPUT = crypt/cert.input
262
263CSU := \
264 csu/tst-empty.c
265# csu/tst-atomic.c \
266# csu/tst-atomic-long.c \
267
268CTYPE := \
269 ctype/test_ctype.c
270
271DEBUG := # skipped
272
273DIRENT := \
274 dirent/list.c \
275 dirent/bug-readdir1.c \
276 dirent/opendir-tst1.c \
277 dirent/tst-seekdir.c
278
279DLFCN := # postponed
280ELF := # postponed
281GMON := # postponed
282
283GNULIB := \
284 gnulib/tst-gcc.c
285
286GRP := \
287 grp/testgrp.c
288# grp/tst_fgetgrent.c
289
290ICONV := \
291 iconv/tst-iconv1.c \
292 iconv/tst-iconv2.c \
293 iconv/tst-iconv3.c \
294 iconv/tst-iconv5.c
295
296ICONVDATA := # skipped
297
298INET := \
299 inet/bug-if1.c \
300 inet/htontest.c \
301 inet/test-ifaddrs.c \
302 inet/test_ifindex.c \
303 inet/tst-ether_aton.c \
304 inet/tst-gethnm.c \
305 inet/tst-network.c \
306 inet/tst-ntoa.c
307
308INTL := \
309 intl/tst-ngettext.c
310# more intl todo
311IO := \
312 io/bug-ftw1.c \
313 io/bug-ftw2.c \
314 io/bug-ftw3.c \
315 io/bug-ftw4.c \
316 io/ftwtest.c \
317 io/test-lfs.c \
318 io/test-stat.c \
319 io/test-stat2.c \
320 io/test-utime.c \
321 io/tst-fcntl.c \
322 io/tst-getcwd.c \
323 io/tst-statvfs.c
324# todo io/ftwtest.sh
325io/bug-ftw2.c_DIR = ./io
326
327LIBIO := \
328 libio/bug-fopena+.c \
329 libio/bug-fseek.c \
330 libio/bug-ftell.c \
331 libio/bug-mmap-fflush.c \
332 libio/bug-rewind.c \
333 libio/bug-rewind2.c \
334 libio/bug-ungetc.c \
335 libio/bug-ungetc2.c \
336 libio/bug-ungetc3.c \
337 libio/bug-ungetc4.c \
338 libio/bug-ungetwc1.c \
339 libio/bug-ungetwc2.c \
340 libio/bug-wfflush.c \
341 libio/test-fmemopen.c \
342 libio/test-freopen.c \
343 libio/tst-atime.c \
344 libio/tst-eof.c \
345 libio/tst-ext.c \
346 libio/tst-fgetws.c \
347 libio/tst-fopenloc.c \
348 libio/tst-freopen.c \
349 libio/tst-mmap-eofsync.c \
350 libio/tst-mmap-fflushsync.c \
351 libio/tst-mmap-offend.c \
352 libio/tst-mmap-setvbuf.c \
353 libio/tst-mmap2-eofsync.c \
354 libio/tst-sscanf.c \
355 libio/tst-swscanf.c \
356 libio/tst-ungetwc1.c \
357 libio/tst-ungetwc2.c \
358 libio/tst-widetext.c \
359 libio/tst_getwc.c \
360 libio/tst_putwc.c \
361 libio/tst_swprintf.c \
362 libio/tst_swscanf.c \
363 libio/tst_wprintf.c \
364 libio/tst_wprintf2.c \
365 libio/tst_wscanf.c
366
367libio/tst-widetext.c_INPUT = libio/tst-widetext.input
368libio/tst_getwc.c_INPUT = libio/tst_getwc.input
369libio/tst_wscanf.c_INPUT = libio/tst_wscanf.input
370
371# todo libio/test-freopen.sh
372
373LINUXTHREADS := # skipped
374
375LOCALE := \
376 locale/tst-C-locale.c
377
378LOCALEDATA := # todo later
379
380LOGIN := \
381 login/tst-grantpt.c \
382 login/tst-utmp.c \
383 login/tst-utmpx.c
384
385MALLOC := \
386 malloc/tst-calloc.c \
387 malloc/tst-malloc.c \
388 malloc/tst-mallocstate.c \
389 malloc/tst-mcheck.c \
390 malloc/tst-obstack.c \
391 malloc/tst-valloc.c
392# malloc/tst-mtrace.c
393# malloc/tst-mtrace.sh
394
395MATH := \
396 math/basic-test.c \
397 math/bug-nextafter.c \
398 math/bug-nexttoward.c \
399 math/bug-tgmath1.c \
400 math/test-fenv.c \
401 math/test-float.c \
402 math/test-fpucw.c \
403 math/test-matherr.c \
404 math/test-misc.c \
405 math/test-tgmath-ret.c \
406 math/test-tgmath.c \
407 math/tst-definitions.c \
408 math/test-idouble.c \
409 math/test-ifloat.c \
410 math/test-double.c \
411 math/test-ldouble.c \
412 math/test-ildoubl.c
413# math/atest-exp2.c
414# math/atest-sincos.c
415# math/atest-exp.c
416
417$(foreach t,$(MATH),$(eval $(t)_LDFLAGS := -lm))
418$(foreach t,$(filter math/test-%,$(MATH)), \
419$(eval $(t)_DEPS := $(OUTDIR)/math/libm-test.stamp) \
420$(eval $(t)_CFLAGS := -I $(OUTDIR)/math/) \
421)
422
423$(OUTDIR)/math/libm-test.stamp: \
424 sysdeps/i386/fpu/libm-test-ulps \
425 math/libm-test.inc \
426 math/gen-libm-test.pl Makefile
427 cd math && perl gen-libm-test.pl -u ../$< -o ../$(OUTDIR)/math/
428 @echo > $@
429
430
431MISC :=\
432 misc/tst-dirname.c \
433 misc/tst-efgcvt.c \
434 misc/tst-fdset.c \
435 misc/tst-hsearch.c \
436 misc/tst-mntent.c \
437 misc/tst-tsearch.c
438misc/tst-tsearch.c_LDFLAGS = -lm
439
440NPTL := # skipped
441
442NSS := \
443 nss/bug-erange.c \
444 nss/test-netdb.c
445
446
447# posix/bug-regex5.c - internal
448# posix/bug-regex20.c - internal
449# posix/bug-regex24.c - goes on forever it seems
450POSIX :=\
451 posix/bug-ga1.c \
452 posix/bug-ga2.c \
453 posix/bug-glob1.c \
454 posix/bug-glob2.c \
455 posix/bug-regex1.c \
456 posix/bug-regex10.c \
457 posix/bug-regex11.c \
458 posix/bug-regex12.c \
459 posix/bug-regex13.c \
460 posix/bug-regex14.c \
461 posix/bug-regex15.c \
462 posix/bug-regex16.c \
463 posix/bug-regex17.c \
464 posix/bug-regex18.c \
465 posix/bug-regex19.c \
466 posix/bug-regex2.c \
467 posix/bug-regex21.c \
468 posix/bug-regex22.c \
469 posix/bug-regex23.c \
470 posix/bug-regex3.c \
471 posix/bug-regex4.c \
472 posix/bug-regex6.c \
473 posix/bug-regex7.c \
474 posix/bug-regex8.c \
475 posix/bug-regex9.c \
476 posix/runptests.c \
477 posix/runtests.c \
478 posix/test-vfork.c \
479 posix/testfnm.c \
480 posix/tst-boost.c \
481 posix/tst-chmod.c \
482 posix/tst-dir.c \
483 posix/tst-exec.c \
484 posix/tst-execl1.c \
485 posix/tst-execl2.c \
486 posix/tst-execle1.c \
487 posix/tst-execle2.c \
488 posix/tst-execlp1.c \
489 posix/tst-execlp2.c \
490 posix/tst-execv1.c \
491 posix/tst-execv2.c \
492 posix/tst-execve1.c \
493 posix/tst-execve2.c \
494 posix/tst-execvp1.c \
495 posix/tst-execvp2.c \
496 posix/tst-execvp3.c \
497 posix/tst-fnmatch.c \
498 posix/tst-fork.c \
499 posix/tst-getaddrinfo.c \
500 posix/tst-getaddrinfo2.c \
501 posix/tst-getlogin.c \
502 posix/tst-gnuglob.c \
503 posix/tst-mmap.c \
504 posix/tst-nanosleep.c \
505 posix/tst-nice.c \
506 posix/tst-pcre.c \
507 posix/tst-preadwrite.c \
508 posix/tst-preadwrite64.c \
509 posix/tst-rxspencer.c \
510 posix/tst-spawn.c \
511 posix/tst-truncate.c \
512 posix/tst-truncate64.c \
513 posix/tst-vfork1.c \
514 posix/tst-vfork2.c \
515 posix/tst-waitid.c \
516 posix/tstgetopt.c
517# posix/tst-regex.c - internal?
518# posix/tst-regex2.c - too new?
519# posix/tst-regexloc.c - internal?
520# posix/tst-sysconf.c - too new?
521# todo:
522# posix/wordexp-test.c
523# posix/wordexp-tst.sh
524# posix/globtest.c
525# posix/globtest.sh
526# posix/tst-getconf.sh
527
528posix/tst-fnmatch.c_INPUT = posix/tst-fnmatch.input
529
530posix/tstgetopt.c_ARGS = -a -b -cfoobar --required foobar --optional=bazbug --none random --col --color --colour
531posix/tst-exec.c_ARGS = -- ./tst-exec.exe --direct --direct --direct
532posix/tst-spawn.c_ARGS = -- ./tst-spawn.exe --direct --direct --direct
533posix/tst-dir.c_ARGS = `pwd` `pwd`/$(OUTDIR)/posix `pwd`/$(OUTDIR) `pwd`/$(OUTDIR)/tst-dir.exe
534posix/tst-chmod.c_ARGS = `pwd`/posix
535posix/tst-rxspencer.c_ARGS = --utf8 posix/rxspencer/tests
536posix/tst-pcre.c_ARGS = $(CURDIR)/posix/PCRE.tests
537posix/tst-boost.c_ARGS = $(CURDIR)/posix/BOOST.tests
538posix/bug-glob1.c_ARGS = "."
539posix/tst-execvp3.c_ARGS = --test-dir="."
540
541
542PWD := \
543 pwd/tst-getpw.c
544
545RESOLV := \
546 resolv/tst-aton.c \
547 resolv/tst-leaks.c \
548 resolv/tst-leaks2.c
549ifeq ($(TARGET),glibc)
550resolv/tst-leaks.c_LDFLAGS = -lresolv
551resolv/tst-leaks2.c_LDFLAGS = -lresolv
552endif
553
554RT := # todo
555SETJMP := \
556 setjmp/tst-setjmp.c
557
558SIGNAL := \
559 signal/tst-raise.c \
560 signal/tst-signal.c \
561 signal/tst-sigset.c \
562 signal/tst-sigsimple.c
563
564SOFT-FP := # skipping
565
566STDIO-COMMON := \
567 stdio-common/temptest.c \
568 stdio-common/test-fseek.c \
569 stdio-common/test-fwrite.c \
570 stdio-common/test-popen.c \
571 stdio-common/test-vfprintf.c \
572 stdio-common/test_rdwr.c \
573 stdio-common/tst-cookie.c \
574 stdio-common/tst-fdopen.c \
575 stdio-common/tst-ferror.c \
576 stdio-common/tst-fileno.c \
577 stdio-common/tst-fmemopen.c \
578 stdio-common/tst-fmemopen2.c \
579 stdio-common/tst-fphex.c \
580 stdio-common/tst-fseek.c \
581 stdio-common/tst-gets.c \
582 stdio-common/tst-obprintf.c \
583 stdio-common/tst-perror.c \
584 stdio-common/tst-popen.c \
585 stdio-common/tst-printfsz.c \
586 stdio-common/tst-rndseek.c \
587 stdio-common/tst-sprintf.c \
588 stdio-common/tst-sscanf.c \
589 stdio-common/tst-swprintf.c \
590 stdio-common/tst-tmpnam.c \
591 stdio-common/tst-ungetc.c \
592 stdio-common/tst-unlockedio.c \
593 stdio-common/tst-wc-printf.c \
594 stdio-common/tstdiomisc.c \
595 stdio-common/tstgetln.c \
596 stdio-common/tstscanf.c
597stdio-common/tst-ferror.c_INPUT = stdio-common/tst-ferror.input
598stdio-common/tst-gets.c_INPUT = stdio-common/tst-gets.input
599stdio-common/tstgetln.c_INPUT = stdio-common/tstgetln.input
600stdio-common/tstscanf.c_INPUT = stdio-common/tstscanf.input
601# stdio-common/tst-printf.c
602# stdio-common/tst-printf.sh
603# stdio-common/tst-unbputc.c
604# stdio-common/tst-unbputc.sh
605
606STDLIB := \
607 stdlib/bug-strtod.c \
608 stdlib/test-a64l.c \
609 stdlib/test-canon.c \
610 stdlib/test-canon2.c \
611 stdlib/testmb.c \
612 stdlib/testmb2.c \
613 stdlib/testrand.c \
614 stdlib/testsort.c \
615 stdlib/tst-bsearch.c \
616 stdlib/tst-environ.c \
617 stdlib/tst-limits.c \
618 stdlib/tst-putenv.c \
619 stdlib/tst-qsort.c \
620 stdlib/tst-rand48.c \
621 stdlib/tst-random.c \
622 stdlib/tst-random2.c \
623 stdlib/tst-setcontext.c \
624 stdlib/tst-strtod.c \
625 stdlib/tst-strtol.c \
626 stdlib/tst-strtoll.c \
627 stdlib/tst-system.c \
628 stdlib/tst-xpg-basename.c \
629 stdlib/testdiv.c
630# todo:
631# stdlib/tst-fmtmsg.c
632# stdlib/tst-fmtmsg.sh
633# stdlib/tst-putenvmod.c
634stdlib/testdiv.c_INPUT = stdlib/testdiv.input
635
636STRING := \
637 string/bug-strcoll1.c \
638 string/bug-strncat1.c \
639 string/bug-strpbrk1.c \
640 string/bug-strspn1.c \
641 string/inl-tester.c \
642 string/noinl-tester.c \
643 string/test-ffs.c \
644 string/test-memccpy.c \
645 string/test-memchr.c \
646 string/test-memcmp.c \
647 string/test-memcpy.c \
648 string/test-memmove.c \
649 string/test-mempcpy.c \
650 string/test-memset.c \
651 string/test-stpcpy.c \
652 string/test-stpncpy.c \
653 string/test-strcat.c \
654 string/test-strchr.c \
655 string/test-strcmp.c \
656 string/test-strcpy.c \
657 string/test-strcspn.c \
658 string/test-strlen.c \
659 string/test-strncmp.c \
660 string/test-strncpy.c \
661 string/test-strpbrk.c \
662 string/test-strrchr.c \
663 string/test-strspn.c \
664 string/testcopy.c \
665 string/tester.c \
666 string/tst-bswap.c \
667 string/tst-inlcall.c \
668 string/tst-strfry.c \
669 string/tst-strlen.c \
670 string/tst-strtok.c \
671 string/tst-strxfrm.c \
672
673STRING_IN_EXP := \
674 string/tst-svc.c
675
676SUNRPC := \
677 sunrpc/tst-getmyaddr.c
678
679SYSDEPS := # todo
680
681TIME := \
682 time/clocktest.c \
683 time/test_time.c \
684 time/tst-ftime_l.c \
685 time/tst-getdate.c \
686 time/tst-mktime.c \
687 time/tst-mktime2.c \
688 time/tst-mktime3.c \
689 time/tst-posixtz.c \
690 time/tst-strftime.c \
691 time/tst-strptime.c \
692 time/tst-strptime2.c \
693 time/tst_wcsftime.c
694
695TIMEZONE := \
696 timezone/test-tz.c \
697 timezone/tst-timezone.c
698
699WCSMBS := \
700 wcsmbs/tst-btowc.c \
701 wcsmbs/tst-mbrtowc.c \
702 wcsmbs/tst-mbsrtowcs.c \
703 wcsmbs/tst-wcpncpy.c \
704 wcsmbs/tst-wcrtomb.c \
705 wcsmbs/tst-wcsnlen.c \
706 wcsmbs/tst-wcstof.c \
707 wcsmbs/wcsmbs-tst1.c
708
709WCTYPE := \
710 wctype/test_wcfuncs.c \
711 wctype/test_wctype.c
712
713
714SUBTESTS := \
715 ARGP \
716 ASSERT \
717 CATGETS \
718 CRYPT \
719 CSU \
720 CTYPE \
721 DEBUG \
722 DIRENT \
723 DLFCN \
724 ELF \
725 GMON \
726 GNULIB \
727 GRP \
728 ICONV \
729 ICONVDATA \
730 INET \
731 INTL \
732 IO \
733 LIBIO \
734 LINUXTHREADS \
735 LOCALE \
736 LOCALEDATA \
737 LOGIN \
738 MALLOC \
739 MANUAL \
740 MATH \
741 MISC \
742 NPTL \
743 NSS \
744 POSIX \
745 PWD \
746 RESOLV \
747 RT \
748 SCRIPTS \
749 SETJMP \
750 SIGNAL \
751 SOFT-FP \
752 STDIO-COMMON \
753 STDLIB \
754 STRING \
755 SUNRPC \
756 SYSDEPS \
757 TIME \
758 TIMEZONE \
759 WCSMBS \
760 WCTYPE
761
762.SUFFIXES:
763.SUFFIXES: .c .exe .result
764
765
766#
767# Generate test rules
768#
769_TESTS :=
770
771# process one test
772define def_simple
773
774$(eval _EXEC := $(strip $(if $($1_DIR),\
775 cd $($(1)_DIR) && LC_ALL=C $($1_ENVS) $(ABSOUTDIR)/$(2).exe $($1_ARGS),\
776 cd $(dir $(OUTDIR)/$2) && LC_ALL=C $($1_ENVS) $(notdir $2).exe $($1_ARGS))))
777
778$(OUTDIR)/$2.result: $1 $(OUTDIR)/$(dir $1).dir_created $($(1)_DEPS)
779 @echo "########## $1"; \
780 echo "## BUILDING: $$(CC) $$(CFLAGS) $$(LDFLAGS) -o $(OUTDIR)/$2.exe $($(1)_CFLAGS) $($(1)_LDFLAGS) $$<"; \
781 if $$(CC) $$(CFLAGS) $$(LDFLAGS) -o $(OUTDIR)/$2.exe $($(1)_CFLAGS) $($(1)_LDFLAGS) $$<; then \
782 echo "## RUNNING : ( $(_EXEC) )$(if $($(1)_INPUT), < $($(1)_INPUT))"; \
783 if ( $(_EXEC) )$(if $($(1)_INPUT), < $($(1)_INPUT)); then \
784 echo OK > $$@; \
785 printf "########## %-26s - SUCCESS\n" "$1"; \
786 else \
787 echo "## rc=$$$$?"; \
788 printf "########## %-26s - $(if $(filter $1,$(EXPECTED)),EXPECTED FAILURE,FAILURE)\n" "$1"; \
789 echo "$(if $(filter $1,$(EXPECTED)),EXPECTED,FAILURE)" > $$@; \
790 fi \
791 else \
792 echo "## rc=$$$$? "; \
793 echo "## $$(CC) $$(CFLAGS) -o $(OUTDIR)/$2.exe $($(1)_CFLAGS) $($(1)_LDFLAGS) $$<"; \
794 printf "########## %-26s - BUILD FAILURE\n" "$1"; \
795 echo "FAILURE - $$(CC) $$(CFLAGS) -o $(OUTDIR)/$2.exe $($(1)_CFLAGS) $($(1)_LDFLAGS) $$<" > $$@; \
796 fi
797
798$2: $(OUTDIR)/$2.result
799 @
800
801_TESTS += $(OUTDIR)/$2.result
802$(eval _$(TEST) += $(OUTDIR)/$2.result)
803endef
804
805# skip on test
806define def_skipped
807$(OUTDIR)/$2.result: $(OUTDIR)/$(dir $1).dir_created
808 @printf "########## %-26s - SKIPPED\n" "$1"; \
809 echo "SKIPPED" > $$@
810
811$2: $(OUTDIR)/$2.result
812 @
813
814_TESTS += $(OUTDIR)/$2.result
815$(eval _$(TEST) += $(OUTDIR)/$2.result)
816endef
817
818# process a subtest
819define def_subtest
820$(eval test := $(shell echo $(TEST) | tr 'A-Z' 'a-z'))
821$(eval _$(TEST) :=)
822$(foreach src, $($(TEST)), \
823 $(if $(filter $(src),$(SKIPPED)),\
824 $(eval $(call def_skipped,$(src),$(basename $(src)),)),\
825 $(eval $(call def_simple,$(src),$(basename $(src)),)) \
826 ) \
827)
828
829.PHONY: $(test)
830$(test): $(_$(TEST))
831 @echo "**** $$@ ****"
832 @echo " SUCCESS : `cat /dev/null $$^ | grep OK | wc -l`"
833 @echo " SKIPPED : `cat /dev/null $$^ | grep SKIPPED | wc -l`"
834 @echo " EXPECTED: `cat /dev/null $$^ | grep EXPECTED | wc -l`"
835 @echo " FAILURES: `cat /dev/null $$^ | grep FAILURE | wc -l`"
836
837endef
838
839# process all subtests
840$(foreach TEST, $(SUBTESTS), $(eval $(def_subtest)))
841
842
843#
844# generate directory rules
845#
846define def_dir
847$1.dir_created:
848 @mkdir -p $1
849 @echo > $$@
850endef
851
852_DIRS := $(sort $(dir $(_TESTS)))
853$(foreach d,$(_DIRS), $(eval $(call def_dir,$(d))))
854
855
856#
857# All tests (expect the ones in the next sections).
858#
859tests: $(_TESTS)
860 @echo "***************"
861 @echo " SUCCESS : `cat /dev/null $^ | grep OK | wc -l`"
862 @echo " SKIPPED : `cat /dev/null $^ | grep SKIPPED | wc -l`"
863 @echo " EXPECTED: `cat /dev/null $^ | grep EXPECTED | wc -l`"
864 @echo " FAILURES: `cat /dev/null $^ | grep FAILURE | wc -l`"
865
866tests-logged:
867 @echo "**** logging to $(call LOG,test) ****"
868 $(MAKE) tests 2>&1 | tee $(call LOG,test)
869
870
871#
872# Special and separate tests.
873#
874.PHONY: conform
875conform:
876 cd conform/ && perl ./conformtest.pl
877
878conform-logged:
879 @echo "**** logging to $(call LOG,conform) ****"
880 $(MAKE) conform 2>&1 | tee $(call LOG,conform)
881
Note: See TracBrowser for help on using the repository browser.