aboutsummaryrefslogtreecommitdiff
path: root/syn/tests/zzz_stable.rs
blob: 6c768f27d4ffa3fdc97969b2ab91ec05387fe841 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#![cfg(syn_disable_nightly_tests)]

use std::io::{self, Write};
use termcolor::{Color, ColorChoice, ColorSpec, StandardStream, WriteColor};

const MSG: &str = "\

‖   WARNING:
‖   This is not a nightly compiler so not all tests were able to
‖   run. Syn includes tests that compare Syn's parser against the
‖   compiler's parser, which requires access to unstable libsyntax
‖   data structures and a nightly compiler.

";

#[test]
fn notice() -> io::Result<()> {
    let header = "WARNING";
    let index_of_header = MSG.find(header).unwrap();
    let before = &MSG[..index_of_header];
    let after = &MSG[index_of_header + header.len()..];

    let mut stderr = StandardStream::stderr(ColorChoice::Auto);
    stderr.set_color(ColorSpec::new().set_fg(Some(Color::Yellow)))?;
    write!(&mut stderr, "{}", before)?;
    stderr.set_color(ColorSpec::new().set_bold(true).set_fg(Some(Color::Yellow)))?;
    write!(&mut stderr, "{}", header)?;
    stderr.set_color(ColorSpec::new().set_fg(Some(Color::Yellow)))?;
    write!(&mut stderr, "{}", after)?;
    stderr.reset()?;

    Ok(())
}