diff options
Diffstat (limited to 'sysdeps/pthread')
-rw-r--r-- | sysdeps/pthread/Makefile | 1 | ||||
-rw-r--r-- | sysdeps/pthread/tst-backtrace1.c | 84 | ||||
-rw-r--r-- | sysdeps/pthread/tst-cond23.c | 2 | ||||
-rw-r--r-- | sysdeps/pthread/tst-fopen-threaded.c | 14 |
4 files changed, 13 insertions, 88 deletions
diff --git a/sysdeps/pthread/Makefile b/sysdeps/pthread/Makefile index de146dd..7572f62 100644 --- a/sysdeps/pthread/Makefile +++ b/sysdeps/pthread/Makefile @@ -62,7 +62,6 @@ tests += \ tst-abstime \ tst-atfork1 \ tst-attr1 \ - tst-backtrace1 \ tst-bad-schedattr \ tst-barrier1 \ tst-barrier2 \ diff --git a/sysdeps/pthread/tst-backtrace1.c b/sysdeps/pthread/tst-backtrace1.c deleted file mode 100644 index 01b8a0c..0000000 --- a/sysdeps/pthread/tst-backtrace1.c +++ /dev/null @@ -1,84 +0,0 @@ -/* Copyright (C) 2004-2025 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <https://www.gnu.org/licenses/>. */ - -#include <execinfo.h> -#include <pthread.h> -#include <stdio.h> - -#define BT_SIZE 64 -void *bt_array[BT_SIZE]; -int bt_cnt; - -int -do_bt (void) -{ - bt_cnt = backtrace (bt_array, BT_SIZE); - return 56; -} - -int -call_do_bt (void) -{ - return do_bt () + 1; -} - -void * -tf (void *arg) -{ - if (call_do_bt () != 57) - return (void *) 1L; - return NULL; -} - -int -do_test (void) -{ - pthread_t th; - if (pthread_create (&th, NULL, tf, NULL)) - { - puts ("create failed"); - return 1; - } - - void *res; - if (pthread_join (th, &res)) - { - puts ("join failed"); - return 1; - } - - if (res != NULL) - { - puts ("thread failed"); - return 1; - } - - char **text = backtrace_symbols (bt_array, bt_cnt); - if (text == NULL) - { - puts ("backtrace_symbols failed"); - return 1; - } - - for (int i = 0; i < bt_cnt; ++i) - puts (text[i]); - - return 0; -} - -#define TEST_FUNCTION do_test () -#include "../test-skeleton.c" diff --git a/sysdeps/pthread/tst-cond23.c b/sysdeps/pthread/tst-cond23.c index 0a68472..a338397 100644 --- a/sysdeps/pthread/tst-cond23.c +++ b/sysdeps/pthread/tst-cond23.c @@ -151,7 +151,7 @@ do_test (void) #if !defined _POSIX_CLOCK_SELECTION || _POSIX_CLOCK_SELECTION == -1 puts ("_POSIX_CLOCK_SELECTION not supported, test skipped"); - return 0; + return EXIT_UNSUPPORTED; #else diff --git a/sysdeps/pthread/tst-fopen-threaded.c b/sysdeps/pthread/tst-fopen-threaded.c index ade58ad..c17f1ea 100644 --- a/sysdeps/pthread/tst-fopen-threaded.c +++ b/sysdeps/pthread/tst-fopen-threaded.c @@ -34,11 +34,13 @@ #include <stdio.h> #include <string.h> #include <unistd.h> +#include <stdlib.h> #include <support/check.h> #include <support/temp_file.h> #include <support/xstdio.h> #include <support/xthread.h> +#include <support/support.h> #define NUM_THREADS 100 #define ITERS 10 @@ -111,7 +113,8 @@ threadOpenCloseRoutine (void *argv) /* Wait for all threads to be ready to call fopen and fclose. */ xpthread_barrier_wait (&barrier); - FILE *fd = xfopen ("/tmp/openclosetest", "w+"); + char *file = (char *) argv; + FILE *fd = xfopen (file, "w+"); xfclose (fd); return NULL; } @@ -235,6 +238,10 @@ do_test (void) xfclose (fd_file); } + char *tempdir = support_create_temp_directory ("openclosetest-"); + char *file = xasprintf ("%s/file", tempdir); + add_temp_file (file); + /* Test 3: Concurrent open/close. */ for (int reps = 1; reps <= ITERS; reps++) { @@ -243,7 +250,7 @@ do_test (void) { threads[i] = xpthread_create (support_small_stack_thread_attribute (), - threadOpenCloseRoutine, NULL); + threadOpenCloseRoutine, file); } for (int i = 0; i < NUM_THREADS; i++) { @@ -252,6 +259,9 @@ do_test (void) xpthread_barrier_destroy (&barrier); } + free (file); + free (tempdir); + return 0; } |