| #![allow( |
| clippy::derive_partial_eq_without_eq, |
| clippy::enum_glob_use, |
| clippy::must_use_candidate |
| )] |
| |
| include!("../build/rustc.rs"); |
| |
| #[test] |
| fn test_parse() { |
| let cases = &[ |
| ( |
| "rustc 1.0.0 (a59de37e9 2015-05-13) (built 2015-05-14)", |
| Version { |
| minor: 0, |
| patch: 0, |
| channel: Stable, |
| }, |
| ), |
| ( |
| "rustc 1.18.0", |
| Version { |
| minor: 18, |
| patch: 0, |
| channel: Stable, |
| }, |
| ), |
| ( |
| "rustc 1.24.1 (d3ae9a9e0 2018-02-27)", |
| Version { |
| minor: 24, |
| patch: 1, |
| channel: Stable, |
| }, |
| ), |
| ( |
| "rustc 1.35.0-beta.3 (c13114dc8 2019-04-27)", |
| Version { |
| minor: 35, |
| patch: 0, |
| channel: Beta, |
| }, |
| ), |
| ( |
| "rustc 1.36.0-nightly (938d4ffe1 2019-04-27)", |
| Version { |
| minor: 36, |
| patch: 0, |
| channel: Nightly(Date { |
| year: 2019, |
| month: 4, |
| day: 27, |
| }), |
| }, |
| ), |
| ( |
| "rustc 1.36.0-dev", |
| Version { |
| minor: 36, |
| patch: 0, |
| channel: Dev, |
| }, |
| ), |
| ( |
| "rustc 1.36.0-nightly", |
| Version { |
| minor: 36, |
| patch: 0, |
| channel: Dev, |
| }, |
| ), |
| ( |
| "warning: invalid logging spec 'warning', ignoring it |
| rustc 1.30.0-nightly (3bc2ca7e4 2018-09-20)", |
| Version { |
| minor: 30, |
| patch: 0, |
| channel: Nightly(Date { |
| year: 2018, |
| month: 9, |
| day: 20, |
| }), |
| }, |
| ), |
| ( |
| "rustc 1.52.1-nightly (gentoo)", |
| Version { |
| minor: 52, |
| patch: 1, |
| channel: Dev, |
| }, |
| ), |
| ]; |
| |
| for (string, expected) in cases { |
| match parse(string) { |
| ParseResult::Success(version) => assert_eq!(version, *expected), |
| ParseResult::OopsClippy | ParseResult::Unrecognized => { |
| panic!("unrecognized: {:?}", string); |
| } |
| } |
| } |
| } |