File: tst-obprintf.c

package info (click to toggle)
glibc 2.24-11+deb9u4
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 225,852 kB
  • sloc: ansic: 996,505; asm: 261,827; sh: 10,484; makefile: 9,856; cpp: 4,169; python: 3,971; perl: 2,254; awk: 1,753; pascal: 1,521; yacc: 291; sed: 80
file content (45 lines) | stat: -rw-r--r-- 891 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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"