root/pysyck/trunk/sandbox/emit-it/extra-delimiter-bug.c

Revision 33, 0.9 KB (checked in by xi, 6 years ago)

Add test for bug #33.
Add test for the bug with emitting extra delimiters.

Line 
1
2#include <stdio.h>
3#include <string.h>
4
5#include <syck.h>
6
7#define VALUE "a scalar"
8#define LENGTH 100000
9
10void output_handler(SyckEmitter *e, char *str, long len)
11{
12    fwrite(str, 1, len, stdout);
13}
14
15void emitter_handler(SyckEmitter *e, st_data_t id)
16{
17    int k;
18
19    switch (id) {
20        case 1:
21            syck_emit_seq(e, NULL, seq_none);
22            for (k = 2; k < LENGTH; k++) {
23                syck_emit_item(e, k);
24            }
25            break;
26
27        default:
28            syck_emit_scalar(e, "tag:yaml.org,2002:str", scalar_none, 0, 0, 0, VALUE, strlen(VALUE));
29            break;
30    }
31       
32}
33
34int main(int argc, char *argv[])
35{
36    SyckEmitter *e;
37    int k;
38
39    e = syck_new_emitter();
40    syck_emitter_handler(e, emitter_handler);
41    syck_output_handler(e, output_handler);
42    for (k = 1; k < LENGTH; k++) {
43        syck_emitter_mark_node(e, k);
44    }
45    syck_emit(e, 1);
46    syck_emitter_flush(e, 0);
47    syck_free_emitter(e);
48}
49
Note: See TracBrowser for help on using the browser.