X-Authentication-Warning: smtp3.ihug.com.au: Host p124-tnt4.syd.ihug.com.au [203.173.134.124] claimed to be acceleron Message-ID: <004401c15add$43e13730$0a02a8c0@acceleron> From: "Andrew Cottrell" To: , "Richard Dawe" References: <3BD2AAB2 DOT CAF5D96B AT phekda DOT freeserve DOT co DOT uk> Subject: Re: Some build fixes for the test suite Date: Mon, 22 Oct 2001 19:37:40 +1000 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2600.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 Reply-To: djgpp-workers AT delorie DOT com This may be a stupid question, but it may help out in a month or two, but then again: Are the beta GCC 3.01 tests okay or not? Has anyone used these tests with GCC 3.01? Andrew ----- Original Message ----- From: "Richard Dawe" To: "DJGPP workers" Sent: Sunday, October 21, 2001 9:00 PM Subject: Some build fixes for the test suite > 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 > #include > extern char **environ; > > --- 1,12 ---- > ! /* A test program for the various /dev/... transformations inside > _put_path(). > Written by Markus F.X.J. Oberhumer. */ > > #include > + #include > + #include > + #include > + #include > + #include > #include > 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"); >