| 1 | // |
|---|
| 2 | // Basic.c |
|---|
| 3 | // |
|---|
| 4 | // $Author$ |
|---|
| 5 | // $Date$ |
|---|
| 6 | // |
|---|
| 7 | // Copyright (C) 2003 why the lucky stiff |
|---|
| 8 | // |
|---|
| 9 | |
|---|
| 10 | #include "syck.h" |
|---|
| 11 | #include "CuTest.h" |
|---|
| 12 | |
|---|
| 13 | // |
|---|
| 14 | // Test allocating a single node of kind 'str'. |
|---|
| 15 | // |
|---|
| 16 | void |
|---|
| 17 | TestSyckNodeAlloc( CuTest *tc ) |
|---|
| 18 | { |
|---|
| 19 | SyckNode* n; |
|---|
| 20 | |
|---|
| 21 | n = syck_new_str( "YAML", scalar_plain ); |
|---|
| 22 | |
|---|
| 23 | CuAssert( tc, "Allocated 'str' node reporting as 'seq'.", n->kind != syck_seq_kind ); |
|---|
| 24 | CuAssert( tc, "Allocated 'str' node reporting as 'map'.", n->kind != syck_map_kind ); |
|---|
| 25 | CuAssert( tc, "Allocated 'str' not reporting as 'str'.", n->kind == syck_str_kind ); |
|---|
| 26 | CuAssertStrEquals( tc, "YAML", syck_str_read( n ) ); |
|---|
| 27 | |
|---|
| 28 | syck_free_node( n ); |
|---|
| 29 | } |
|---|
| 30 | |
|---|
| 31 | // |
|---|
| 32 | // Test building a simple sequence |
|---|
| 33 | // |
|---|
| 34 | void |
|---|
| 35 | TestSyckSeqAlloc( CuTest *tc ) |
|---|
| 36 | { |
|---|
| 37 | SyckNode *n; |
|---|
| 38 | SYMID id; |
|---|
| 39 | |
|---|
| 40 | n = syck_new_seq( 1 ); |
|---|
| 41 | for ( id = 11001; id < 23000; id += 24 ) |
|---|
| 42 | { |
|---|
| 43 | syck_seq_add( n, id ); |
|---|
| 44 | } |
|---|
| 45 | |
|---|
| 46 | CuAssert( tc, "Invalid value at '0'", 1 == syck_seq_read( n, 0 ) ); |
|---|
| 47 | CuAssert( tc, "Invalid value at '1'", 11001 == syck_seq_read( n, 1 ) ); |
|---|
| 48 | CuAssert( tc, "Invalid value at '200'", 15801 == syck_seq_read( n, 201 ) ); |
|---|
| 49 | |
|---|
| 50 | syck_free_node( n ); |
|---|
| 51 | } |
|---|
| 52 | |
|---|
| 53 | // |
|---|
| 54 | // Test building a simple map |
|---|
| 55 | // |
|---|
| 56 | void |
|---|
| 57 | TestSyckMapAlloc( CuTest *tc ) |
|---|
| 58 | { |
|---|
| 59 | SyckNode *n; |
|---|
| 60 | |
|---|
| 61 | n = syck_new_map( 24556, 24557 ); |
|---|
| 62 | syck_map_add( n, 24558, 24559 ); |
|---|
| 63 | syck_map_add( n, 24658, 24659 ); |
|---|
| 64 | syck_map_add( n, 24758, 24759 ); |
|---|
| 65 | syck_map_add( n, 24858, 24859 ); |
|---|
| 66 | syck_map_add( n, 24958, 24959 ); |
|---|
| 67 | syck_map_add( n, 24058, 24059 ); |
|---|
| 68 | syck_map_add( n, 24158, 24159 ); |
|---|
| 69 | |
|---|
| 70 | CuAssert( tc, "Invalid key at '0'.", 24556 == syck_map_read( n, map_key, 0 ) ); |
|---|
| 71 | CuAssert( tc, "Invalid key at '1'.", 24558 == syck_map_read( n, map_key, 1 ) ); |
|---|
| 72 | CuAssert( tc, "Invalid key at '2'.", 24658 == syck_map_read( n, map_key, 2 ) ); |
|---|
| 73 | CuAssert( tc, "Invalid key at '3'.", 24758 == syck_map_read( n, map_key, 3 ) ); |
|---|
| 74 | CuAssert( tc, "Invalid key at '4'.", 24858 == syck_map_read( n, map_key, 4 ) ); |
|---|
| 75 | CuAssert( tc, "Invalid key at '5'.", 24958 == syck_map_read( n, map_key, 5 ) ); |
|---|
| 76 | CuAssert( tc, "Invalid key at '6'.", 24058 == syck_map_read( n, map_key, 6 ) ); |
|---|
| 77 | CuAssert( tc, "Invalid key at '7'.", 24158 == syck_map_read( n, map_key, 7 ) ); |
|---|
| 78 | CuAssert( tc, "Invalid value at '0'", 24557 == syck_map_read( n, map_value, 0 ) ); |
|---|
| 79 | CuAssert( tc, "Invalid value at '1'", 24559 == syck_map_read( n, map_value, 1 ) ); |
|---|
| 80 | CuAssert( tc, "Invalid value at '2'", 24659 == syck_map_read( n, map_value, 2 ) ); |
|---|
| 81 | CuAssert( tc, "Invalid value at '3'", 24759 == syck_map_read( n, map_value, 3 ) ); |
|---|
| 82 | CuAssert( tc, "Invalid value at '4'", 24859 == syck_map_read( n, map_value, 4 ) ); |
|---|
| 83 | CuAssert( tc, "Invalid value at '5'", 24959 == syck_map_read( n, map_value, 5 ) ); |
|---|
| 84 | CuAssert( tc, "Invalid value at '6'", 24059 == syck_map_read( n, map_value, 6 ) ); |
|---|
| 85 | CuAssert( tc, "Invalid value at '7'", 24159 == syck_map_read( n, map_value, 7 ) ); |
|---|
| 86 | |
|---|
| 87 | syck_free_node( n ); |
|---|
| 88 | } |
|---|
| 89 | |
|---|
| 90 | // |
|---|
| 91 | // Test building a simple map |
|---|
| 92 | // |
|---|
| 93 | void |
|---|
| 94 | TestSyckMapUpdate( CuTest *tc ) |
|---|
| 95 | { |
|---|
| 96 | SyckNode *n1, *n2; |
|---|
| 97 | |
|---|
| 98 | n1 = syck_new_map( 51116, 51117 ); |
|---|
| 99 | syck_map_add( n1, 51118, 51119 ); |
|---|
| 100 | n2 = syck_new_map( 51126, 51127 ); |
|---|
| 101 | syck_map_add( n2, 51128, 51129 ); |
|---|
| 102 | |
|---|
| 103 | syck_map_update( n1, n2 ); |
|---|
| 104 | CuAssert( tc, "Invalid key at '2'", 51126 == syck_map_read( n1, map_key, 2 ) ); |
|---|
| 105 | CuAssert( tc, "Invalid key at '3'", 51128 == syck_map_read( n1, map_key, 3 ) ); |
|---|
| 106 | CuAssert( tc, "Invalid value at '2'", 51127 == syck_map_read( n1, map_value, 2 ) ); |
|---|
| 107 | CuAssert( tc, "Invalid value at '3'", 51129 == syck_map_read( n1, map_value, 3 ) ); |
|---|
| 108 | |
|---|
| 109 | syck_free_node( n2 ); |
|---|
| 110 | syck_free_node( n1 ); |
|---|
| 111 | } |
|---|
| 112 | |
|---|
| 113 | CuSuite * |
|---|
| 114 | SyckGetSuite() |
|---|
| 115 | { |
|---|
| 116 | CuSuite *suite = CuSuiteNew(); |
|---|
| 117 | SUITE_ADD_TEST( suite, TestSyckNodeAlloc ); |
|---|
| 118 | SUITE_ADD_TEST( suite, TestSyckSeqAlloc ); |
|---|
| 119 | SUITE_ADD_TEST( suite, TestSyckMapAlloc ); |
|---|
| 120 | SUITE_ADD_TEST( suite, TestSyckMapUpdate ); |
|---|
| 121 | return suite; |
|---|
| 122 | } |
|---|
| 123 | |
|---|
| 124 | int main(void) |
|---|
| 125 | { |
|---|
| 126 | CuString *output = CuStringNew(); |
|---|
| 127 | CuSuite* suite = SyckGetSuite(); |
|---|
| 128 | int count; |
|---|
| 129 | |
|---|
| 130 | CuSuiteRun(suite); |
|---|
| 131 | CuSuiteSummary(suite, output); |
|---|
| 132 | CuSuiteDetails(suite, output); |
|---|
| 133 | |
|---|
| 134 | printf("%s\n", output->buffer); |
|---|
| 135 | count = suite->failCount; |
|---|
| 136 | |
|---|
| 137 | CuStringFree( output ); |
|---|
| 138 | CuSuiteFree( suite ); |
|---|
| 139 | |
|---|
| 140 | return count; |
|---|
| 141 | } |
|---|