about summary refs log tree commit diff
path: root/rt/tst-mqueue1.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2004-04-16 20:44:32 +0000
committerUlrich Drepper <drepper@redhat.com>2004-04-16 20:44:32 +0000
commitefa8adf5f9bb4ababd27d13e37d97687dfa0a8b4 (patch)
tree38302d42474dcb0188c837637d8bd171bb059315 /rt/tst-mqueue1.c
parentf93fa7d43323e152df4e5e35d97c598581db4cb3 (diff)
downloadglibc-efa8adf5f9bb4ababd27d13e37d97687dfa0a8b4.tar.gz
glibc-efa8adf5f9bb4ababd27d13e37d97687dfa0a8b4.tar.xz
glibc-efa8adf5f9bb4ababd27d13e37d97687dfa0a8b4.zip
Update.
2004-04-16  Jakub Jelinek  <jakub@redhat.com>

	* misc/syslog.c (vsyslog): Avoid freeing failbuf.

2004-04-15  Jakub Jelinek  <jakub@redhat.com>

	* rt/Makefile (tests): Add tst-timer4.
	* rt/tst-timer4.c: New test.

2004-04-15  Jakub Jelinek  <jakub@redhat.com>

	* rt/tst-mqueue5.c (rtmin_code): New variable.
	(rtmin_handler): Set it.
	(thr, do_child, do_test): Also check rtmin_code.

2004-04-14  Jakub Jelinek  <jakub@redhat.com>

	* rt/Makefile (tests): Add tst-mqueue7.
	(tst-mqueue7-ARGS): Set.
	* rt/tst-mqueue7.c: New test.

2004-04-13  Jakub Jelinek  <jakub@redhat.com>

	* rt/Makefile (tests): Add tst-mqueue5 and tst-mqueue6.
	* rt/tst-mqueue1.c (do_one_test): Bitwise or check_attrs () into
	result instead of replacing it.  Use TEMP_FAILURE_RETRY around
	waitpid, kill child if waitpid failed.
	(do_test): Bitwise or check_attrs () into result instead of replacing
	it.  Change temp mq name.
	* rt/tst-mqueue5.c: New test.
	* rt/tst-mqueue6.c: New test.
	* rt/tst-mqueue.h: Include stdio.h, unistd.h, sys/uio.h.
	(temp_mq_list, delete_temp_mqs): Remove.
	(temp_mq_fd): New variable.
	(do_cleanup, do_prepare): New functions.
	(add_temp_mq): Rewritten to use a temp file.
	(PREPARE): Define.
	(CLEANUP_HANDLER): Change to do_cleanup ().

	* rt/tst-timer3.c: Don't fail if _POSIX_THREADS is not available.

2004-04-13  Thorsten Kukuk  <kukuk@suse.de>

	* sysdeps/s390/ffs.c: Include limits.h

2004-04-13  Kaz Kojima  <kkojima@rr.iij4u.or.jp>

	* sysdeps/unix/sysv/linux/sh/sysdep.h (SUBSTITUTE_ARGS_1,
	SUBSTITUTE_ARGS_2, SUBSTITUTE_ARGS_3, SUBSTITUTE_ARGS_4,
	SUBSTITUTE_ARGS_5, SUBSTITUTE_ARGS_6, SUBSTITUTE_ARGS_7): Load
	argument values into temporary variables.
Diffstat (limited to 'rt/tst-mqueue1.c')
-rw-r--r--rt/tst-mqueue1.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/rt/tst-mqueue1.c b/rt/tst-mqueue1.c
index a6f8fb50c7..db4065ea93 100644
--- a/rt/tst-mqueue1.c
+++ b/rt/tst-mqueue1.c
@@ -83,7 +83,7 @@ do_one_test (mqd_t q, const char *name, int nonblock)
       result = 1;
     }
   else
-    result = check_attrs (&attr, nonblock, 0);
+    result |= check_attrs (&attr, nonblock, 0);
 
   if (mq_receive (q, &v[0], 1, NULL) != -1)
     {
@@ -156,7 +156,7 @@ do_one_test (mqd_t q, const char *name, int nonblock)
       result = 1;
     }
   else
-    result = check_attrs (&attr, nonblock, 10);
+    result |= check_attrs (&attr, nonblock, 10);
 
   pid_t pid = fork ();
   if (pid == -1)
@@ -188,7 +188,7 @@ do_one_test (mqd_t q, const char *name, int nonblock)
 	  result = 1;
 	}
       else
-	result = check_attrs (&attr, nonblock, 10);
+	result |= check_attrs (&attr, nonblock, 10);
 
       unsigned char vr[11] = { };
       unsigned int prio;
@@ -272,7 +272,7 @@ do_one_test (mqd_t q, const char *name, int nonblock)
 	  result = 1;
 	}
       else
-	result = check_attrs (&attr, nonblock, 0);
+	result |= check_attrs (&attr, nonblock, 0);
 
       if (mq_close (q) != 0)
 	{
@@ -284,9 +284,10 @@ do_one_test (mqd_t q, const char *name, int nonblock)
     }
 
   int status;
-  if (waitpid (pid, &status, 0) != pid)
+  if (TEMP_FAILURE_RETRY (waitpid (pid, &status, 0)) != pid)
     {
       printf ("waitpid failed: %m\n");
+      kill (pid, SIGKILL);
       result = 1;
     }
   else if (!WIFEXITED (status) || WEXITSTATUS (status))
@@ -302,7 +303,7 @@ do_one_test (mqd_t q, const char *name, int nonblock)
       result = 1;
     }
   else
-    result = check_attrs (&attr, nonblock, 0);
+    result |= check_attrs (&attr, nonblock, 0);
 
   return result;
 }
@@ -313,8 +314,8 @@ do_test (void)
 {
   int result = 0;
 
-  char name[sizeof "/tst-mqueue-" + sizeof (pid_t) * 3];
-  snprintf (name, sizeof (name), "/tst-mqueue-%u", getpid ());
+  char name[sizeof "/tst-mqueue1-" + sizeof (pid_t) * 3];
+  snprintf (name, sizeof (name), "/tst-mqueue1-%u", getpid ());
 
   struct mq_attr attr = { .mq_maxmsg = 10, .mq_msgsize = 1 };
   mqd_t q = mq_open (name, O_CREAT | O_EXCL | O_WRONLY, 0600, &attr);
@@ -327,7 +328,7 @@ do_test (void)
   else
     add_temp_mq (name);
 
-  result = do_one_test (q, name, 0);
+  result |= do_one_test (q, name, 0);
 
   mqd_t q2 = mq_open (name, O_WRONLY | O_NONBLOCK);
   if (q2 == (mqd_t) -1)