Skip to content

Commit 744eb7b

Browse files
committed
Assert consistency of trees' sizes in bytes
1 parent fcf9293 commit 744eb7b

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

spec/integration/corpus_specs.cc

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,28 +19,36 @@ static void expect_the_correct_tree(TSNode node, TSDocument *document, string tr
1919

2020
static void expect_a_consistent_tree(TSNode node, TSDocument *document) {
2121
size_t child_count = ts_node_child_count(node);
22+
size_t start_byte = ts_node_start_byte(node);
23+
size_t end_byte = ts_node_end_byte(node);
2224
size_t start_char = ts_node_start_char(node);
2325
size_t end_char = ts_node_end_char(node);
2426
TSPoint start_point = ts_node_start_point(node);
2527
TSPoint end_point = ts_node_end_point(node);
2628
bool has_changes = ts_node_has_changes(node);
2729
bool some_child_has_changes = false;
2830

31+
AssertThat(start_byte, !IsGreaterThan(end_byte));
2932
AssertThat(start_char, !IsGreaterThan(end_char));
3033
AssertThat(start_point, !IsGreaterThan(end_point));
3134

35+
size_t last_child_end_byte = start_byte;
3236
size_t last_child_end_char = start_char;
3337
TSPoint last_child_end_point = start_point;
3438

3539
for (size_t i = 0; i < child_count; i++) {
3640
TSNode child = ts_node_child(node, i);
41+
size_t child_start_byte = ts_node_start_byte(child);
42+
size_t child_end_byte = ts_node_end_byte(child);
3743
size_t child_start_char = ts_node_start_char(child);
3844
size_t child_end_char = ts_node_end_char(child);
3945
TSPoint child_start_point = ts_node_start_point(child);
4046
TSPoint child_end_point = ts_node_end_point(child);
4147

48+
AssertThat(child_start_byte, !IsLessThan(last_child_end_byte));
4249
AssertThat(child_start_char, !IsLessThan(last_child_end_char));
4350
AssertThat(child_start_point, !IsLessThan(last_child_end_point));
51+
last_child_end_byte = child_end_byte;
4452
last_child_end_char = child_end_char;
4553
last_child_end_point = child_end_point;
4654

@@ -51,10 +59,11 @@ static void expect_a_consistent_tree(TSNode node, TSDocument *document) {
5159
}
5260

5361
if (child_count > 0) {
54-
AssertThat(end_char, !IsLessThan(last_child_end_char));
62+
AssertThat(end_byte, !IsLessThan(last_child_end_byte));
63+
AssertThat(end_point, !IsLessThan(last_child_end_point));
5564

5665
if (!has_changes)
57-
AssertThat(end_point, !IsLessThan(last_child_end_point));
66+
AssertThat(end_char, !IsLessThan(last_child_end_char));
5867

5968
AssertThat(has_changes, Equals(some_child_has_changes));
6069
}

0 commit comments

Comments
 (0)