File tree 2 files changed +9
-1
lines changed
src/tools/compiletest/src
2 files changed +9
-1
lines changed Original file line number Diff line number Diff line change @@ -973,7 +973,11 @@ fn parse_normalization_string(line: &mut &str) -> Option<String> {
973
973
}
974
974
975
975
pub fn extract_llvm_version ( version : & str ) -> Option < u32 > {
976
- let version_without_suffix = version. trim_end_matches ( "git" ) . split ( '-' ) . next ( ) . unwrap ( ) ;
976
+ let pat = |c : char | !c. is_ascii_digit ( ) && c != '.' ;
977
+ let version_without_suffix = match version. find ( pat) {
978
+ Some ( pos) => & version[ ..pos] ,
979
+ None => version,
980
+ } ;
977
981
let components: Vec < u32 > = version_without_suffix
978
982
. split ( '.' )
979
983
. map ( |s| s. parse ( ) . expect ( "Malformed version component" ) )
Original file line number Diff line number Diff line change @@ -68,4 +68,8 @@ fn test_extract_llvm_version() {
68
68
assert_eq ! ( extract_llvm_version( "9.0.1-rust-1.43.0-dev" ) , Some ( 90001 ) ) ;
69
69
assert_eq ! ( extract_llvm_version( "9.3.1-rust-1.43.0-dev" ) , Some ( 90301 ) ) ;
70
70
assert_eq ! ( extract_llvm_version( "10.0.0-rust" ) , Some ( 100000 ) ) ;
71
+ assert_eq ! ( extract_llvm_version( "11.1.0" ) , Some ( 110100 ) ) ;
72
+ assert_eq ! ( extract_llvm_version( "12.0.0libcxx" ) , Some ( 120000 ) ) ;
73
+ assert_eq ! ( extract_llvm_version( "12.0.0-rc3" ) , Some ( 120000 ) ) ;
74
+ assert_eq ! ( extract_llvm_version( "13.0.0git" ) , Some ( 130000 ) ) ;
71
75
}
You can’t perform that action at this time.
0 commit comments