diff options
| author | 12101111 <w12101111@gmail.com> | 2021-03-26 17:29:52 +0800 |
|---|---|---|
| committer | 12101111 <w12101111@gmail.com> | 2021-03-26 17:29:52 +0800 |
| commit | 656f6ac975d3b8af6e780f1bc02e826e1629ed6a (patch) | |
| tree | 0955c9aa89e2bc883916a0a77d0806dd2da09b3b /src/tools/compiletest | |
| parent | 0ced530534de1a77504b6229e6303d37a12282ee (diff) | |
| download | rust-656f6ac975d3b8af6e780f1bc02e826e1629ed6a.tar.gz rust-656f6ac975d3b8af6e780f1bc02e826e1629ed6a.zip | |
Handle llvm_version with suffix like "12.0.0libcxx"
Diffstat (limited to 'src/tools/compiletest')
| -rw-r--r-- | src/tools/compiletest/src/header.rs | 6 | ||||
| -rw-r--r-- | src/tools/compiletest/src/tests.rs | 4 |
2 files changed, 9 insertions, 1 deletions
diff --git a/src/tools/compiletest/src/header.rs b/src/tools/compiletest/src/header.rs index ff0d845be93..83ea676e8f4 100644 --- a/src/tools/compiletest/src/header.rs +++ b/src/tools/compiletest/src/header.rs @@ -973,7 +973,11 @@ fn parse_normalization_string(line: &mut &str) -> Option<String> { } pub fn extract_llvm_version(version: &str) -> Option<u32> { - let version_without_suffix = version.trim_end_matches("git").split('-').next().unwrap(); + let pat = |c: char| !c.is_ascii_digit() && c != '.'; + let version_without_suffix = match version.find(pat) { + Some(pos) => &version[..pos], + None => version, + }; let components: Vec<u32> = version_without_suffix .split('.') .map(|s| s.parse().expect("Malformed version component")) diff --git a/src/tools/compiletest/src/tests.rs b/src/tools/compiletest/src/tests.rs index ea9bc1c1a5b..233f2e648dc 100644 --- a/src/tools/compiletest/src/tests.rs +++ b/src/tools/compiletest/src/tests.rs @@ -68,4 +68,8 @@ fn test_extract_llvm_version() { assert_eq!(extract_llvm_version("9.0.1-rust-1.43.0-dev"), Some(90001)); assert_eq!(extract_llvm_version("9.3.1-rust-1.43.0-dev"), Some(90301)); assert_eq!(extract_llvm_version("10.0.0-rust"), Some(100000)); + assert_eq!(extract_llvm_version("11.1.0"), Some(110100)); + assert_eq!(extract_llvm_version("12.0.0libcxx"), Some(120000)); + assert_eq!(extract_llvm_version("12.0.0-rc3"), Some(120000)); + assert_eq!(extract_llvm_version("13.0.0git"), Some(130000)); } |
