1 #![cfg(syn_disable_nightly_tests)]
2 
3 use std::io::{self, Write};
4 use termcolor::{Color, ColorChoice, ColorSpec, StandardStream, WriteColor};
5 
6 const MSG: &str = "\
7 8 WARNING:
9 This is not a nightly compiler so not all tests were able to
10 run. Syn includes tests that compare Syn's parser against the
11 compiler's parser, which requires access to unstable librustc
12 data structures and a nightly compiler.
13 14 ";
15 
16 #[test]
noticenull17 fn notice() -> io::Result<()> {
18     let header = "WARNING";
19     let index_of_header = MSG.find(header).unwrap();
20     let before = &MSG[..index_of_header];
21     let after = &MSG[index_of_header + header.len()..];
22 
23     let mut stderr = StandardStream::stderr(ColorChoice::Auto);
24     stderr.set_color(ColorSpec::new().set_fg(Some(Color::Yellow)))?;
25     write!(&mut stderr, "{}", before)?;
26     stderr.set_color(ColorSpec::new().set_bold(true).set_fg(Some(Color::Yellow)))?;
27     write!(&mut stderr, "{}", header)?;
28     stderr.set_color(ColorSpec::new().set_fg(Some(Color::Yellow)))?;
29     write!(&mut stderr, "{}", after)?;
30     stderr.reset()?;
31 
32     Ok(())
33 }
34