From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 127669 invoked by alias); 1 Nov 2016 00:44:12 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 127589 invoked by uid 89); 1 Nov 2016 00:44:11 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.1 required=5.0 tests=BAYES_00,KAM_LAZY_DOMAIN_SECURITY,RCVD_IN_DNSWL_LOW,RCVD_IN_SEMBACKSCATTER autolearn=no version=3.3.2 spammy=ssize_t X-HELO: mx0a-001b2d01.pphosted.com From: "Gabriel F. T. Gomes" To: libc-alpha@sourceware.org Cc: fweimer@redhat.com Subject: [PATCH 2/2] Add write_message_to_stderr and use it instead of write Date: Tue, 01 Nov 2016 00:44:00 -0000 In-Reply-To: <1477961028-12150-1-git-send-email-gftg@linux.vnet.ibm.com> References: <1477961028-12150-1-git-send-email-gftg@linux.vnet.ibm.com> X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 16110100-0020-0000-0000-000002592F7D X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 16110100-0021-0000-0000-000030675A86 Message-Id: <1477961028-12150-3-git-send-email-gftg@linux.vnet.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2016-10-31_09:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=1 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1609300000 definitions=main-1611010012 X-SW-Source: 2016-11/txt/msg00001.txt.bz2 Replaces calls to write on file descriptor 2 with calls to the new function write_message_to_stderr, which writes to STDERR_FILENO (2) and properly deals with the return of write. 2016-10-30 Gabriel F. T. Gomes * test-skeleton.c (write_message_to_stderr): New function. * nptl/tst-basic1.c (tf, do_test): Use write_message_to_stderr. * nptl/tst-cleanup1.c (do_test): Likewise. * nptl/tst-cleanup3.c (do_test): Likewise. * nptl/tst-key1.c (do_test): Likewise. * nptl/tst-key2.c (tf, do_test): Likewise. * nptl/tst-key3.c (tf, do_test): Likewise. * nptl/tst-stdio1.c (do_test): Likewise. * nptl/tst-stdio2.c (do_test): Likewise. --- nptl/tst-basic1.c | 15 ++++++++------- nptl/tst-cleanup1.c | 11 ++++++----- nptl/tst-cleanup3.c | 11 ++++++----- nptl/tst-key1.c | 11 ++++++----- nptl/tst-key2.c | 23 ++++++++++++----------- nptl/tst-key3.c | 31 ++++++++++++++++--------------- nptl/tst-stdio1.c | 2 +- nptl/tst-stdio2.c | 11 ++++++----- test-skeleton.c | 9 +++++++++ 9 files changed, 70 insertions(+), 54 deletions(-) diff --git a/nptl/tst-basic1.c b/nptl/tst-basic1.c index 8ea4523..144aaf6 100644 --- a/nptl/tst-basic1.c +++ b/nptl/tst-basic1.c @@ -22,6 +22,11 @@ #include +static int do_test (void); + +#define TEST_FUNCTION do_test () +#include "../test-skeleton.c" + static pid_t pid; static void * @@ -29,7 +34,7 @@ tf (void *a) { if (getpid () != pid) { - write (2, "pid mismatch\n", 13); + write_message_to_stderr ("pid mismatch\n"); _exit (1); } @@ -49,7 +54,7 @@ do_test (void) for (i = 0; i < N; ++i) if (pthread_create (&t[i], NULL, tf, (void *) (long int) (i + 1)) != 0) { - write (2, "create failed\n", 14); + write_message_to_stderr ("create failed\n"); _exit (1); } else @@ -66,7 +71,7 @@ do_test (void) } else if (r != (void *) (long int) (i + 1)) { - write (2, "result wrong\n", 13); + write_message_to_stderr ("result wrong\n"); _exit (1); } else @@ -75,7 +80,3 @@ do_test (void) return 0; } - - -#define TEST_FUNCTION do_test () -#include "../test-skeleton.c" diff --git a/nptl/tst-cleanup1.c b/nptl/tst-cleanup1.c index 82a568b..bca057a 100644 --- a/nptl/tst-cleanup1.c +++ b/nptl/tst-cleanup1.c @@ -22,6 +22,11 @@ #include +static int do_test (void); + +#define TEST_FUNCTION do_test () +#include "../test-skeleton.c" + static int global; @@ -67,7 +72,7 @@ do_test (void) if (pthread_create (&th, NULL, tf, NULL) != 0) { - write (2, "create failed\n", 14); + write_message_to_stderr ("create failed\n"); _exit (1); } @@ -93,7 +98,3 @@ do_test (void) return 0; } - - -#define TEST_FUNCTION do_test () -#include "../test-skeleton.c" diff --git a/nptl/tst-cleanup3.c b/nptl/tst-cleanup3.c index 3c34a1e..da20f28 100644 --- a/nptl/tst-cleanup3.c +++ b/nptl/tst-cleanup3.c @@ -22,6 +22,11 @@ #include +static int do_test (void); + +#define TEST_FUNCTION do_test () +#include "../test-skeleton.c" + static int global; @@ -65,7 +70,7 @@ do_test (void) if (pthread_create (&th, NULL, tf, NULL) != 0) { - write (2, "create failed\n", 14); + write_message_to_stderr ("create failed\n"); _exit (1); } @@ -91,7 +96,3 @@ do_test (void) return 0; } - - -#define TEST_FUNCTION do_test () -#include "../test-skeleton.c" diff --git a/nptl/tst-key1.c b/nptl/tst-key1.c index 0ed1787..a3ab5bf 100644 --- a/nptl/tst-key1.c +++ b/nptl/tst-key1.c @@ -23,6 +23,11 @@ #include +static int do_test (void); + +#define TEST_FUNCTION do_test () +#include "../test-skeleton.c" + int do_test (void) { @@ -38,7 +43,7 @@ do_test (void) for (i = 0; i < max; ++i) if (pthread_key_create (&keys[i], NULL) != 0) { - write (2, "key_create failed\n", 18); + write_message_to_stderr ("key_create failed\n"); _exit (1); } else @@ -82,7 +87,3 @@ do_test (void) return 0; } - - -#define TEST_FUNCTION do_test () -#include "../test-skeleton.c" diff --git a/nptl/tst-key2.c b/nptl/tst-key2.c index 3142c86..bdf17fe 100644 --- a/nptl/tst-key2.c +++ b/nptl/tst-key2.c @@ -23,6 +23,11 @@ #define N 2 +static int do_test (void); + +#define TEST_FUNCTION do_test () +#include "../test-skeleton.c" + static int cnt0; static void f0 (void *p) @@ -53,7 +58,7 @@ tf (void *arg) if (pthread_setspecific (*key, (void *) -1l) != 0) { - write (2, "setspecific failed\n", 19); + write_message_to_stderr ("setspecific failed\n"); _exit (1); } @@ -70,45 +75,41 @@ do_test (void) for (i = 0; i < N; ++i) if (pthread_key_create (&keys[i], fcts[i]) != 0) { - write (2, "key_create failed\n", 18); + write_message_to_stderr ("key_create failed\n"); _exit (1); } pthread_t th; if (pthread_create (&th, NULL, tf, &keys[1]) != 0) { - write (2, "create failed\n", 14); + write_message_to_stderr ("create failed\n"); _exit (1); } if (pthread_join (th, NULL) != 0) { - write (2, "join failed\n", 12); + write_message_to_stderr ("join failed\n"); _exit (1); } if (cnt0 != 0) { - write (2, "cnt0 != 0\n", 10); + write_message_to_stderr ("cnt0 != 0\n"); _exit (1); } if (cnt1 != 1) { - write (2, "cnt1 != 1\n", 10); + write_message_to_stderr ("cnt1 != 1\n"); _exit (1); } for (i = 0; i < N; ++i) if (pthread_key_delete (keys[i]) != 0) { - write (2, "key_delete failed\n", 18); + write_message_to_stderr ("key_delete failed\n"); _exit (1); } return 0; } - - -#define TEST_FUNCTION do_test () -#include "../test-skeleton.c" diff --git a/nptl/tst-key3.c b/nptl/tst-key3.c index a298569..24156a4 100644 --- a/nptl/tst-key3.c +++ b/nptl/tst-key3.c @@ -23,6 +23,11 @@ #define N 2 +static int do_test (void); + +#define TEST_FUNCTION do_test () +#include "../test-skeleton.c" + static int cnt0; static void f0 (void *p) @@ -56,7 +61,7 @@ tf (void *arg) if (pthread_setspecific (*key, (void *) -1l) != 0) { - write (2, "setspecific failed\n", 19); + write_message_to_stderr ("setspecific failed\n"); _exit (1); } @@ -80,20 +85,20 @@ do_test (void) for (i = 0; i < N; ++i) if (pthread_key_create (&keys[i], fcts[i]) != 0) { - write (2, "key_create failed\n", 18); + write_message_to_stderr ("key_create failed\n"); _exit (1); } if (pthread_barrier_init (&b, NULL, 2) != 0) { - write (2, "barrier_init failed\n", 20); + write_message_to_stderr ("barrier_init failed\n"); _exit (1); } pthread_t th; if (pthread_create (&th, NULL, tf, &keys[1]) != 0) { - write (2, "create failed\n", 14); + write_message_to_stderr ("create failed\n"); _exit (1); } @@ -101,20 +106,20 @@ do_test (void) if (pthread_cancel (th) != 0) { - write (2, "cancel failed\n", 14); + write_message_to_stderr ("cancel failed\n"); _exit (1); } void *status; if (pthread_join (th, &status) != 0) { - write (2, "join failed\n", 12); + write_message_to_stderr ("join failed\n"); _exit (1); } if (status != PTHREAD_CANCELED) { - write (2, "thread not canceled\n", 20); + write_message_to_stderr ("thread not canceled\n"); _exit (1); } @@ -124,32 +129,28 @@ do_test (void) have run and therefore these tests succeed. */ if (cnt0 != 0) { - write (2, "cnt0 != 0\n", 10); + write_message_to_stderr ("cnt0 != 0\n"); _exit (1); } if (cnt1 != 1) { - write (2, "cnt1 != 1\n", 10); + write_message_to_stderr ("cnt1 != 1\n"); _exit (1); } for (i = 0; i < N; ++i) if (pthread_key_delete (keys[i]) != 0) { - write (2, "key_delete failed\n", 18); + write_message_to_stderr ("key_delete failed\n"); _exit (1); } if (pthread_barrier_destroy (&b) != 0) { - write (2, "barrier_destroy failed\n", 23); + write_message_to_stderr ("barrier_destroy failed\n"); _exit (1); } return 0; } - - -#define TEST_FUNCTION do_test () -#include "../test-skeleton.c" diff --git a/nptl/tst-stdio1.c b/nptl/tst-stdio1.c index 4250e53..e9b9f18 100644 --- a/nptl/tst-stdio1.c +++ b/nptl/tst-stdio1.c @@ -43,7 +43,7 @@ do_test (void) if (pthread_create (&th, NULL, tf, NULL) != 0) { - write (2, "create failed\n", 14); + write_message_to_stderr ("create failed\n"); _exit (1); } diff --git a/nptl/tst-stdio2.c b/nptl/tst-stdio2.c index 6168d27..910c13c 100644 --- a/nptl/tst-stdio2.c +++ b/nptl/tst-stdio2.c @@ -23,6 +23,11 @@ #include +static int do_test (void); + +#define TEST_FUNCTION do_test () +#include "../test-skeleton.c" + static void *tf (void *a) { puts ("start tf"); @@ -55,7 +60,7 @@ do_test (void) if (pthread_create (&th, NULL, tf, NULL) != 0) { - write (2, "create failed\n", 14); + write_message_to_stderr ("create failed\n"); _exit (1); } @@ -75,7 +80,3 @@ do_test (void) return 0; } - - -#define TEST_FUNCTION do_test () -#include "../test-skeleton.c" diff --git a/test-skeleton.c b/test-skeleton.c index 55841fb..803da2a 100644 --- a/test-skeleton.c +++ b/test-skeleton.c @@ -148,6 +148,15 @@ xasprintf (const char *format, ...) return result; } +/* Write a message to standard error. Can be used in signal handlers. */ +static void +__attribute__ ((unused)) +write_message_to_stderr (const char *message) +{ + ssize_t unused __attribute__ ((unused)); + unused = write (STDERR_FILENO, message, strlen (message)); +} + /* Write a message to standard output. Can be used in signal handlers. */ static void -- 2.4.11