Blame stdio-common/tst-obprintf.c
|
Packit |
6c4009 |
#include <mcheck.h>
|
|
Packit |
6c4009 |
#include <obstack.h>
|
|
Packit |
6c4009 |
#include <stdio.h>
|
|
Packit |
6c4009 |
#include <stdlib.h>
|
|
Packit |
6c4009 |
|
|
Packit |
6c4009 |
|
|
Packit |
6c4009 |
static int
|
|
Packit |
6c4009 |
do_test (void)
|
|
Packit |
6c4009 |
{
|
|
Packit |
6c4009 |
struct obstack ob;
|
|
Packit |
6c4009 |
int n;
|
|
Packit |
6c4009 |
|
|
Packit |
6c4009 |
mcheck_pedantic (NULL);
|
|
Packit |
6c4009 |
|
|
Packit |
6c4009 |
#define obstack_chunk_alloc malloc
|
|
Packit |
6c4009 |
#define obstack_chunk_free free
|
|
Packit |
6c4009 |
|
|
Packit |
6c4009 |
obstack_init (&ob;;
|
|
Packit |
6c4009 |
|
|
Packit |
6c4009 |
for (n = 0; n < 40000; ++n)
|
|
Packit |
6c4009 |
{
|
|
Packit |
6c4009 |
mcheck_check_all ();
|
|
Packit |
6c4009 |
obstack_printf (&ob, "%.*s%05d", 1 + n % 7, "foobarbaz", n);
|
|
Packit |
6c4009 |
if (n % 777 == 0)
|
|
Packit |
6c4009 |
obstack_finish (&ob;;
|
|
Packit |
6c4009 |
}
|
|
Packit |
6c4009 |
|
|
Packit |
6c4009 |
/* Another loop where we finish all objects, each of size 1. This will
|
|
Packit |
6c4009 |
manage to call `obstack_print' with all possible positions inside
|
|
Packit |
6c4009 |
an obstack chunk. */
|
|
Packit |
6c4009 |
for (n = 0; n < 40000; ++n)
|
|
Packit |
6c4009 |
{
|
|
Packit |
6c4009 |
mcheck_check_all ();
|
|
Packit |
6c4009 |
obstack_printf (&ob, "%c", 'a' + n % 26);
|
|
Packit |
6c4009 |
obstack_finish (&ob;;
|
|
Packit |
6c4009 |
}
|
|
Packit |
6c4009 |
|
|
Packit |
6c4009 |
/* And a final check. */
|
|
Packit |
6c4009 |
mcheck_check_all ();
|
|
Packit |
6c4009 |
|
|
Packit |
6c4009 |
return 0;
|
|
Packit |
6c4009 |
}
|
|
Packit |
6c4009 |
|
|
Packit |
6c4009 |
#define TEST_FUNCTION do_test ()
|
|
Packit |
6c4009 |
#include "../test-skeleton.c"
|