diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:02:58 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:02:58 +0000 |
commit | 698f8c2f01ea549d77d7dc3338a12e04c11057b9 (patch) | |
tree | 173a775858bd501c378080a10dca74132f05bc50 /vendor/pest_derive/tests/reporting.rs | |
parent | Initial commit. (diff) | |
download | rustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.tar.xz rustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.zip |
Adding upstream version 1.64.0+dfsg1.upstream/1.64.0+dfsg1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/pest_derive/tests/reporting.rs')
-rw-r--r-- | vendor/pest_derive/tests/reporting.rs | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/vendor/pest_derive/tests/reporting.rs b/vendor/pest_derive/tests/reporting.rs new file mode 100644 index 000000000..aa0a974e0 --- /dev/null +++ b/vendor/pest_derive/tests/reporting.rs @@ -0,0 +1,125 @@ +// pest. The Elegant Parser +// Copyright (c) 2018 DragoČ™ Tiselice +// +// Licensed under the Apache License, Version 2.0 +// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT +// license <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your +// option. All files in the project carrying such notice may not be copied, +// modified, or distributed except according to those terms. + +#[macro_use] +extern crate pest; +#[macro_use] +extern crate pest_derive; + +#[derive(Parser)] +#[grammar = "../tests/reporting.pest"] +struct ReportingParser; + +#[test] +fn choices() { + fails_with! { + parser: ReportingParser, + input: "x", + rule: Rule::choices, + positives: vec![Rule::a, Rule::b, Rule::c], + negatives: vec![], + pos: 0 + }; +} + +#[test] +fn choices_no_progress() { + fails_with! { + parser: ReportingParser, + input: "x", + rule: Rule::choices_no_progress, + positives: vec![Rule::choices_no_progress], + negatives: vec![], + pos: 0 + }; +} + +#[test] +fn choices_a_progress() { + fails_with! { + parser: ReportingParser, + input: "a", + rule: Rule::choices_a_progress, + positives: vec![Rule::a], + negatives: vec![], + pos: 1 + }; +} + +#[test] +fn choices_b_progress() { + fails_with! { + parser: ReportingParser, + input: "b", + rule: Rule::choices_b_progress, + positives: vec![Rule::b], + negatives: vec![], + pos: 1 + }; +} + +#[test] +fn nested() { + fails_with! { + parser: ReportingParser, + input: "x", + rule: Rule::level1, + positives: vec![Rule::a, Rule::b, Rule::c], + negatives: vec![], + pos: 0 + }; +} + +#[test] +fn negative() { + fails_with! { + parser: ReportingParser, + input: "x", + rule: Rule::negative, + positives: vec![], + negatives: vec![Rule::d], + pos: 0 + }; +} + +#[test] +fn negative_match() { + fails_with! { + parser: ReportingParser, + input: "x", + rule: Rule::negative_match, + positives: vec![Rule::b], + negatives: vec![], + pos: 0 + }; +} + +#[test] +fn mixed() { + fails_with! { + parser: ReportingParser, + input: "x", + rule: Rule::mixed, + positives: vec![Rule::a], + negatives: vec![Rule::d], + pos: 0 + }; +} + +#[test] +fn mixed_progress() { + fails_with! { + parser: ReportingParser, + input: "b", + rule: Rule::mixed_progress, + positives: vec![Rule::a], + negatives: vec![], + pos: 1 + }; +} |