* winsup.api/known_bugs.tcl: Remove dup05, fcntl07B, lseek04, select03,
unlink06.
This commit is contained in:
parent
78a04600f9
commit
292a8156c6
|
@ -1,3 +1,8 @@
|
||||||
|
2005-02-10 Christopher Faylor <cgf@timesys.com>
|
||||||
|
|
||||||
|
* winsup.api/known_bugs.tcl: Remove dup05, fcntl07B, lseek04, select03,
|
||||||
|
unlink06.
|
||||||
|
|
||||||
2005-01-09 Christopher Faylor <cgf@timesys.com>
|
2005-01-09 Christopher Faylor <cgf@timesys.com>
|
||||||
|
|
||||||
* cygrun.c (main): Fix exit code so that it reflects UNIX style.
|
* cygrun.c (main): Fix exit code so that it reflects UNIX style.
|
||||||
|
|
|
@ -1,8 +1,4 @@
|
||||||
set xfail_list [list dup03 dup05 \
|
set xfail_list [list dup03 \
|
||||||
fcntl05 fcntl07B \
|
fcntl05 setgroups01 setuid02 \
|
||||||
lseek04 select03 \
|
ulimit01 unlink08 \
|
||||||
setgroups01 setuid02 \
|
|
||||||
ulimit01 unlink06 unlink08 \
|
|
||||||
sample-fail sample-miscompile]
|
sample-fail sample-miscompile]
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,8 @@
|
||||||
sigset_t unblock_sigsegv;
|
sigset_t unblock_sigsegv;
|
||||||
jmp_buf r;
|
jmp_buf r;
|
||||||
|
|
||||||
|
static const char *msg;
|
||||||
|
static const char *what;
|
||||||
/* filler for file */
|
/* filler for file */
|
||||||
char const line[] = "y1 y1 y1 y1 y1 y1 y1 y1 y1 y1 y1 y1 y1 y1 y1 y1 y1";
|
char const line[] = "y1 y1 y1 y1 y1 y1 y1 y1 y1 y1 y1 y1 y1 y1 y1 y1 y1";
|
||||||
|
|
||||||
|
@ -25,6 +27,7 @@ void
|
||||||
perror_exit (const char *str)
|
perror_exit (const char *str)
|
||||||
{
|
{
|
||||||
printf ("%s: %s\n", str, strerror (errno));
|
printf ("%s: %s\n", str, strerror (errno));
|
||||||
|
fflush (stdout);
|
||||||
exit (1);
|
exit (1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,6 +35,13 @@ void
|
||||||
sigsegv (int unused)
|
sigsegv (int unused)
|
||||||
{
|
{
|
||||||
sigprocmask (SIG_UNBLOCK, &unblock_sigsegv, 0);
|
sigprocmask (SIG_UNBLOCK, &unblock_sigsegv, 0);
|
||||||
|
if (msg)
|
||||||
|
{
|
||||||
|
char buf[132];
|
||||||
|
sprintf (buf, "%s %s\n", what, msg);
|
||||||
|
write (1, buf, strlen (buf));
|
||||||
|
msg = NULL;
|
||||||
|
}
|
||||||
longjmp (r, 1);
|
longjmp (r, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -82,7 +92,16 @@ main(int argc, char **argv)
|
||||||
if (setjmp (r))
|
if (setjmp (r))
|
||||||
perror_exit ("SEGV in fork");
|
perror_exit ("SEGV in fork");
|
||||||
|
|
||||||
pid = fork();
|
if ((pid = fork()))
|
||||||
|
{
|
||||||
|
// write (1, "continuing in parent\n", strlen ("continuing in parent\n"));
|
||||||
|
what = "parent";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// write (1, "continuing in child\n", strlen ("continuing in child\n"));
|
||||||
|
what = "child";
|
||||||
|
}
|
||||||
|
|
||||||
if (pid == -1)
|
if (pid == -1)
|
||||||
perror_exit ("fork failed");
|
perror_exit ("fork failed");
|
||||||
|
@ -90,7 +109,9 @@ main(int argc, char **argv)
|
||||||
if (setjmp (r))
|
if (setjmp (r))
|
||||||
perror_exit (pid ? "SEGV in parent" : "SEGV in child");
|
perror_exit (pid ? "SEGV in parent" : "SEGV in child");
|
||||||
|
|
||||||
|
msg = "testing buf1";
|
||||||
c = buf1[0];
|
c = buf1[0];
|
||||||
|
msg = "testing buf2";
|
||||||
c = buf2[0];
|
c = buf2[0];
|
||||||
|
|
||||||
if (setjmp (r))
|
if (setjmp (r))
|
||||||
|
@ -101,6 +122,7 @@ main(int argc, char **argv)
|
||||||
|
|
||||||
if (setjmp (r) == 0)
|
if (setjmp (r) == 0)
|
||||||
{
|
{
|
||||||
|
msg = "testing buf1 after unmap";
|
||||||
c = buf1[0];
|
c = buf1[0];
|
||||||
perror_exit (pid ? "no SEGV in parent after munmap" : "no SEGV in child after munmap");
|
perror_exit (pid ? "no SEGV in parent after munmap" : "no SEGV in child after munmap");
|
||||||
}
|
}
|
||||||
|
@ -108,6 +130,7 @@ main(int argc, char **argv)
|
||||||
if (setjmp (r))
|
if (setjmp (r))
|
||||||
perror_exit (pid ? "SEGV in parent after munmap" : "SEGV in child after munmap");
|
perror_exit (pid ? "SEGV in parent after munmap" : "SEGV in child after munmap");
|
||||||
|
|
||||||
|
msg = "testing buf2 again";
|
||||||
c = buf2[0];
|
c = buf2[0];
|
||||||
|
|
||||||
if (setjmp (r))
|
if (setjmp (r))
|
||||||
|
@ -121,7 +144,10 @@ main(int argc, char **argv)
|
||||||
waitpid (pid, &status, 0);
|
waitpid (pid, &status, 0);
|
||||||
unlink ("y.txt");
|
unlink ("y.txt");
|
||||||
if (!WIFEXITED (status) || WEXITSTATUS (status))
|
if (!WIFEXITED (status) || WEXITSTATUS (status))
|
||||||
return 1;
|
{
|
||||||
|
printf ("forked process exited with status %p\n", (char *) status);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue