Mail Archives: djgpp-workers/2001/10/21/07:04:25.1
Hello.
Some of the tests do not currently build with gcc 2.95.3. Below is a diff
that fixes some of the tests.
The only objection I can see is that the putpath test now strdup's a bunch
of strings, but does not free them when the test exits. But these strings
are freed automatically on exit, right?
OK to commit?
Thanks, bye, Rich =]
--
Richard Dawe
http://www.phekda.freeserve.co.uk/richdawe/
Index: tests/libc/ansi/stdio/filbuf.c
===================================================================
RCS file: /cvs/djgpp/djgpp/tests/libc/ansi/stdio/filbuf.c,v
retrieving revision 1.1
diff -p -c -3 -r1.1 filbuf.c
*** tests/libc/ansi/stdio/filbuf.c 1997/11/14 20:52:52 1.1
--- tests/libc/ansi/stdio/filbuf.c 2001/10/14 21:01:36
*************** main(void)
*** 12,18 ****
{
if (f->_cnt > last_count)
{
! printf("Count: %5d Fill: %5d Bufsiz: %5d SoFar: %5d\n",
f->_cnt, f->_fillsize, f->_bufsiz, so_far);
}
last_count = f->_cnt;
--- 12,18 ----
{
if (f->_cnt > last_count)
{
! printf("Count: %5d Fill: %5ld Bufsiz: %5ld SoFar: %5d\n",
f->_cnt, f->_fillsize, f->_bufsiz, so_far);
}
last_count = f->_cnt;
Index: tests/libc/ansi/stdio/file.c
===================================================================
RCS file: /cvs/djgpp/djgpp/tests/libc/ansi/stdio/file.c,v
retrieving revision 1.1
diff -p -c -3 -r1.1 file.c
*** tests/libc/ansi/stdio/file.c 1996/02/05 01:46:12 1.1
--- tests/libc/ansi/stdio/file.c 2001/10/14 21:01:36
*************** debug_file(FILE *f, const char *remarks)
*** 29,35 ****
putchar(f->_flag & 001000 ? 'M' : ' ');
putchar(f->_flag & 000020 ? 'W' : ' ');
putchar(f->_flag & 000010 ? 'R' : ' ');
! printf(" %5d %7p %8p %8d", f->_cnt, f->_ptr, f->_base, f->_bufsiz);
#endif
printf(" %s\n", remarks);
}
--- 29,35 ----
putchar(f->_flag & 001000 ? 'M' : ' ');
putchar(f->_flag & 000020 ? 'W' : ' ');
putchar(f->_flag & 000010 ? 'R' : ' ');
! printf(" %5d %7p %8p %8ld", f->_cnt, f->_ptr, f->_base, f->_bufsiz);
#endif
printf(" %s\n", remarks);
}
*************** do_mode(const char *rmode, const char *w
*** 54,60 ****
setvbuf(f, 0, _IOFBF , 512);
#ifdef __DJGPP__
! printf("\n---- %s File, Read, bufsiz=%d ----\n", description,
f->_bufsiz);
do_headers();
#endif
--- 54,60 ----
setvbuf(f, 0, _IOFBF , 512);
#ifdef __DJGPP__
! printf("\n---- %s File, Read, bufsiz=%ld ----\n", description,
f->_bufsiz);
do_headers();
#endif
*************** do_mode(const char *rmode, const char *w
*** 122,128 ****
setvbuf(f, 0, _IOFBF , 512);
#ifdef __DJGPP__
! printf("\n---- %s File, Write, bufsiz=%d ----\n", description,
f->_bufsiz);
do_headers();
#endif
--- 122,129 ----
setvbuf(f, 0, _IOFBF , 512);
#ifdef __DJGPP__
! printf("\n---- %s File, Write, bufsiz=%ld ----\n",
! description, f->_bufsiz);
do_headers();
#endif
Index: tests/libc/ansi/time/strftime.c
===================================================================
RCS file: /cvs/djgpp/djgpp/tests/libc/ansi/time/strftime.c,v
retrieving revision 1.1
diff -p -c -3 -r1.1 strftime.c
*** tests/libc/ansi/time/strftime.c 1997/11/02 15:23:56 1.1
--- tests/libc/ansi/time/strftime.c 2001/10/14 21:01:37
*************** compare (const char *fmt, const struct t
*** 28,33 ****
--- 28,35 ----
int
main (void)
{
+ #undef TZ
+ char TZ[] = "TZ=GMT0";
int n_fail = 0;
struct tm *tm;
time_t t = 738367; /* Fri Jan 9 13:06:07 1970 */
*************** main (void)
*** 35,41 ****
/* This is necessary to make strftime give consistent zone strings and
e.g., seconds since the epoch (%s). */
! putenv ("TZ=GMT0");
#undef CMP
#define CMP(Fmt, Expected) n_fail += compare ((Fmt), tm, (Expected))
--- 37,43 ----
/* This is necessary to make strftime give consistent zone strings and
e.g., seconds since the epoch (%s). */
! putenv (TZ);
#undef CMP
#define CMP(Fmt, Expected) n_fail += compare ((Fmt), tm, (Expected))
Index: tests/libc/dos/io/putpath.c
===================================================================
RCS file: /cvs/djgpp/djgpp/tests/libc/dos/io/putpath.c,v
retrieving revision 1.2
diff -p -c -3 -r1.2 putpath.c
*** tests/libc/dos/io/putpath.c 1999/05/24 10:19:52 1.2
--- tests/libc/dos/io/putpath.c 2001/10/14 21:01:38
***************
*** 1,7 ****
! /* A test program for the various /dev/* transformations inside
_put_path().
Written by Markus F.X.J. Oberhumer. */
#include <stdio.h>
#include <libc/environ.h>
extern char **environ;
--- 1,12 ----
! /* A test program for the various /dev/... transformations inside
_put_path().
Written by Markus F.X.J. Oberhumer. */
#include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+ #include <errno.h>
+ #include <go32.h>
+ #include <libc/dosio.h>
#include <libc/environ.h>
extern char **environ;
*************** static void p2(const char *path)
*** 26,39 ****
free(tmp);
}
! int main()
{
/* first clear the environment the quick way */
environ = (char **) calloc(1, sizeof(char *));
__environ_changed++;
/* setup out test environment */
! putenv("DJDIR=c:/djgpp2");
! putenv("HOME=c:\\home");
/* normal dir tests */
p2("/dir1/dir2");
--- 31,45 ----
free(tmp);
}
! int
! main (void)
{
/* first clear the environment the quick way */
environ = (char **) calloc(1, sizeof(char *));
__environ_changed++;
/* setup out test environment */
! putenv(strdup("DJDIR=c:/djgpp2"));
! putenv(strdup("HOME=c:\\home"));
/* normal dir tests */
p2("/dir1/dir2");
*************** int main()
*** 95,104 ****
printf("\n");
/* deeply nested tests */
! putenv("X2=/dev/env/X1");
! putenv("X3=/dev/env/foo~/dev/env/X1~");
! putenv("X4=/dev/env/foo~/dev/env/X2~");
! putenv("X5=/dev/env/foo~/dev/env/X4~");
{
const char **x;
static const char *x1[] = {
--- 101,110 ----
printf("\n");
/* deeply nested tests */
! putenv(strdup("X2=/dev/env/X1"));
! putenv(strdup("X3=/dev/env/foo~/dev/env/X1~"));
! putenv(strdup("X4=/dev/env/foo~/dev/env/X2~"));
! putenv(strdup("X5=/dev/env/foo~/dev/env/X4~"));
{
const char **x;
static const char *x1[] = {
*************** int main()
*** 110,116 ****
for (x = x1; *x; x++)
{
printf("%s\n", *x);
! putenv(*x);
p("/dev/env/X1");
p("/dev/env/X2");
p("/dev/env/X3");
--- 116,122 ----
for (x = x1; *x; x++)
{
printf("%s\n", *x);
! putenv(strdup(*x));
p("/dev/env/X1");
p("/dev/env/X2");
p("/dev/env/X3");
*************** int main()
*** 123,139 ****
/* infinite recursion tests */
/* these all should print an error message with ENOMEM
and should *not* crash */
! putenv("A1=/dev/env/A1");
errno = 0;
p("/dev/env/A1");
if (errno) perror("/dev/env/A1");
errno = 0;
! putenv("A1=/dev/env/foo~/dev/env/A1~");
p("/dev/env/A1");
if (errno) perror("/dev/env/A1");
errno = 0;
! putenv("A1=/dev/env/foo~/dev/env/A2~");
! putenv("A2=/dev/env/foo~/dev/env/A1~");
p("/dev/env/A1");
if (errno) perror("/dev/env/A1");
--- 129,145 ----
/* infinite recursion tests */
/* these all should print an error message with ENOMEM
and should *not* crash */
! putenv(strdup("A1=/dev/env/A1"));
errno = 0;
p("/dev/env/A1");
if (errno) perror("/dev/env/A1");
errno = 0;
! putenv(strdup("A1=/dev/env/foo~/dev/env/A1~"));
p("/dev/env/A1");
if (errno) perror("/dev/env/A1");
errno = 0;
! putenv(strdup("A1=/dev/env/foo~/dev/env/A2~"));
! putenv(strdup("A2=/dev/env/foo~/dev/env/A1~"));
p("/dev/env/A1");
if (errno) perror("/dev/env/A1");
- Raw text -