]> git.proxmox.com Git - rustc.git/blame - src/vendor/yaml-rust/tests/spec_test.rs
New upstream version 1.31.0+dfsg1
[rustc.git] / src / vendor / yaml-rust / tests / spec_test.rs
CommitLineData
7cac9316
XL
1#![allow(dead_code)]
2#![allow(non_upper_case_globals)]
3extern crate yaml_rust;
4
5use yaml_rust::parser::{Parser, EventReceiver, Event};
6use yaml_rust::scanner::TScalarStyle;
7
8#[derive(Clone, PartialEq, PartialOrd, Debug)]
9enum TestEvent {
10 OnDocumentStart,
11 OnDocumentEnd,
12 OnSequenceStart,
13 OnSequenceEnd,
14 OnMapStart,
15 OnMapEnd,
16 OnScalar,
17 OnAlias,
18 OnNull,
19}
20
21struct YamlChecker {
22 pub evs: Vec<TestEvent>
23}
24
25impl EventReceiver for YamlChecker {
26 fn on_event(&mut self, ev: &Event) {
27 let tev = match *ev {
28 Event::DocumentStart => TestEvent::OnDocumentStart,
29 Event::DocumentEnd => TestEvent::OnDocumentEnd,
30 Event::SequenceStart(..) => TestEvent::OnSequenceStart,
31 Event::SequenceEnd => TestEvent::OnSequenceEnd,
32 Event::MappingStart(..) => TestEvent::OnMapStart,
33 Event::MappingEnd => TestEvent::OnMapEnd,
34 Event::Scalar(ref v, style, _, _)=> {
35 if v == "~" && style == TScalarStyle::Plain {
36 TestEvent::OnNull
37 } else {
38 TestEvent::OnScalar
39 }
40 },
41 Event::Alias(_) => TestEvent::OnAlias,
42 _ => { return } // ignore other events
43 };
44 self.evs.push(tev);
45 }
46}
47
48fn str_to_test_events(docs: &str) -> Vec<TestEvent> {
49 let mut p = YamlChecker {
50 evs: Vec::new()
51 };
52 let mut parser = Parser::new(docs.chars());
53 parser.load(&mut p, true).unwrap();
54 p.evs
55}
56
57macro_rules! assert_next {
58 ($v:expr, $p:pat) => (
59 match $v.next().unwrap() {
60 $p => {},
61 e => { panic!("unexpected event: {:?}", e); }
62 }
63 )
64}
65
66// auto generated from handler_spec_test.cpp
67include!("specexamples.rs.inc");
68include!("spec_test.rs.inc");
69
70// hand-crafted tests
71//#[test]
72//fn test_hc_alias() {
73//}