diff options
Diffstat (limited to 'REORG.TODO/stdio-common/tst-obprintf.c')
-rw-r--r-- | REORG.TODO/stdio-common/tst-obprintf.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/REORG.TODO/stdio-common/tst-obprintf.c b/REORG.TODO/stdio-common/tst-obprintf.c new file mode 100644 index 0000000000..51515932ad --- /dev/null +++ b/REORG.TODO/stdio-common/tst-obprintf.c @@ -0,0 +1,45 @@ +#include <mcheck.h> +#include <obstack.h> +#include <stdio.h> +#include <stdlib.h> + + +static int +do_test (void) +{ + struct obstack ob; + int n; + + mcheck_pedantic (NULL); + +#define obstack_chunk_alloc malloc +#define obstack_chunk_free free + + obstack_init (&ob); + + for (n = 0; n < 40000; ++n) + { + mcheck_check_all (); + obstack_printf (&ob, "%.*s%05d", 1 + n % 7, "foobarbaz", n); + if (n % 777 == 0) + obstack_finish (&ob); + } + + /* Another loop where we finish all objects, each of size 1. This will + manage to call `obstack_print' with all possible positions inside + an obstack chunk. */ + for (n = 0; n < 40000; ++n) + { + mcheck_check_all (); + obstack_printf (&ob, "%c", 'a' + n % 26); + obstack_finish (&ob); + } + + /* And a final check. */ + mcheck_check_all (); + + return 0; +} + +#define TEST_FUNCTION do_test () +#include "../test-skeleton.c" |