mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-22 19:00:07 +00:00
test-skeleton.c: Add write_message function
This commit is contained in:
parent
4e9bf327ad
commit
14699b6e37
@ -1,3 +1,11 @@
|
|||||||
|
2016-06-22 Florian Weimer <fweimer@redhat.com>
|
||||||
|
|
||||||
|
* test-skeleton.c (write_message): New function.
|
||||||
|
* malloc/tst-mallocfork2.c (write_message): Remove.
|
||||||
|
* debug/tst-longjmp_chk2.c (write_indented): New function.
|
||||||
|
(write_message): Remove.
|
||||||
|
(stackoverflow_handler): Call write_indented.
|
||||||
|
|
||||||
2016-06-22 Joseph Myers <joseph@codesourcery.com>
|
2016-06-22 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
* sysdeps/i386/fpu/s_nearbyint.S (__nearbyint): Do not mask
|
* sysdeps/i386/fpu/s_nearbyint.S (__nearbyint): Do not mask
|
||||||
|
@ -12,18 +12,20 @@
|
|||||||
#include <sys/resource.h>
|
#include <sys/resource.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
|
static int do_test (void);
|
||||||
|
#define TEST_FUNCTION do_test ()
|
||||||
|
#include "../test-skeleton.c"
|
||||||
|
|
||||||
static jmp_buf mainloop;
|
static jmp_buf mainloop;
|
||||||
static sigset_t mainsigset;
|
static sigset_t mainsigset;
|
||||||
static volatile sig_atomic_t pass;
|
static volatile sig_atomic_t pass;
|
||||||
|
|
||||||
static void
|
static void
|
||||||
write_message (const char *message)
|
write_indented (const char *str)
|
||||||
{
|
{
|
||||||
ssize_t unused __attribute__ ((unused));
|
|
||||||
for (int i = 0; i < pass; ++i)
|
for (int i = 0; i < pass; ++i)
|
||||||
unused = write (STDOUT_FILENO, " ", 1);
|
write_message (" ");
|
||||||
unused = write (STDOUT_FILENO, message, strlen (message));
|
write_message (str);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -33,11 +35,10 @@ stackoverflow_handler (int sig)
|
|||||||
/* Sanity check to keep test from looping forever (in case the longjmp
|
/* Sanity check to keep test from looping forever (in case the longjmp
|
||||||
chk code is slightly broken). */
|
chk code is slightly broken). */
|
||||||
pass++;
|
pass++;
|
||||||
assert (pass < 5);
|
|
||||||
sigaltstack (NULL, &altstack);
|
sigaltstack (NULL, &altstack);
|
||||||
write_message ("in signal handler\n");
|
write_indented ("in signal handler\n");
|
||||||
if (altstack.ss_flags & SS_ONSTACK)
|
if (altstack.ss_flags & SS_ONSTACK)
|
||||||
write_message ("on alternate stack\n");
|
write_indented ("on alternate stack\n");
|
||||||
siglongjmp (mainloop, pass);
|
siglongjmp (mainloop, pass);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -127,6 +128,3 @@ do_test (void)
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define TEST_FUNCTION do_test ()
|
|
||||||
#include "../test-skeleton.c"
|
|
||||||
|
@ -44,6 +44,9 @@ enum { malloc_maximum_size = 70000 };
|
|||||||
/* How many signals need to be delivered before the test exits. */
|
/* How many signals need to be delivered before the test exits. */
|
||||||
enum { signal_count = 1000 };
|
enum { signal_count = 1000 };
|
||||||
|
|
||||||
|
static int do_test (void);
|
||||||
|
#define TEST_FUNCTION do_test ()
|
||||||
|
#include "../test-skeleton.c"
|
||||||
|
|
||||||
/* Process ID of the subprocess which sends SIGUSR1 signals. */
|
/* Process ID of the subprocess which sends SIGUSR1 signals. */
|
||||||
static pid_t sigusr1_sender_pid;
|
static pid_t sigusr1_sender_pid;
|
||||||
@ -56,14 +59,6 @@ static volatile sig_atomic_t sigusr1_received;
|
|||||||
progress. Checked by liveness_signal_handler. */
|
progress. Checked by liveness_signal_handler. */
|
||||||
static volatile sig_atomic_t progress_indicator = 1;
|
static volatile sig_atomic_t progress_indicator = 1;
|
||||||
|
|
||||||
/* Write the message to standard output. Usable from signal
|
|
||||||
handlers. */
|
|
||||||
static void
|
|
||||||
write_message (const char *str)
|
|
||||||
{
|
|
||||||
write (STDOUT_FILENO, str, strlen (str));
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
sigusr1_handler (int signo)
|
sigusr1_handler (int signo)
|
||||||
{
|
{
|
||||||
@ -213,6 +208,3 @@ do_test (void)
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define TEST_FUNCTION do_test ()
|
|
||||||
#include "../test-skeleton.c"
|
|
||||||
|
@ -115,6 +115,16 @@ xrealloc (void *p, size_t n)
|
|||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Write a message to standard output. Can be used in signal
|
||||||
|
handlers. */
|
||||||
|
static void
|
||||||
|
__attribute__ ((unused))
|
||||||
|
write_message (const char *message)
|
||||||
|
{
|
||||||
|
ssize_t unused __attribute__ ((unused));
|
||||||
|
unused = write (STDOUT_FILENO, message, strlen (message));
|
||||||
|
}
|
||||||
|
|
||||||
/* List of temporary files. */
|
/* List of temporary files. */
|
||||||
struct temp_name_list
|
struct temp_name_list
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user