+ Rename some variables for clarity. + Comment about the possibility of a future clangarm64/bin subdirectory to check under (the same) 64-bit program files.
Unified · Split
| @@ -323,15 +323,15 @@ mod tests { · 322 unmodified lines | ||
| 323 | 323 | .maybe_64bit |
| 324 | 324 | .as_ref() |
| 325 | 325 | .expect("It gives two paths only if one can be 64-bit."); |
| 326 | − let got_64bit = primary | |
| 326 | + let suffix_64bit = primary | |
| 327 | 327 | .strip_prefix(prefix_64bit) |
| 328 | 328 | .expect("It gives the 64-bit path and lists it first."); |
| 329 | − let x86 = secondary | |
| 329 | + let suffix_x86 = secondary | |
| 330 | 330 | .strip_prefix(pf.x86.as_path()) |
| 331 | 331 | .expect("It gives the 32-bit path and lists it second."); |
| 332 | 332 | Self { |
| 333 | − x86, | |
| 334 | − maybe_64bit: Some(got_64bit), | |
| 333 | + x86: suffix_x86, | |
| 334 | + maybe_64bit: Some(suffix_64bit), | |
| 335 | 335 | } |
| 336 | 336 | } |
| 337 | 337 | [only] => { |
| @@ -344,13 +344,29 @@ mod tests { · 6 unmodified lines | ||
| 344 | 344 | other => panic!("Got length {}, expected 1 or 2.", other.len()), |
| 345 | 345 | } |
| 346 | 346 | } |
| 347 | + | |
| 348 | + /// Assert that the suffixes are the common per-architecture Git install locations. | |
| 349 | + fn validate(&self) { | |
| 350 | + assert_eq!(self.x86, Path::new("Git/mingw32/bin")); | |
| 351 | + | |
| 352 | + if let Some(suffix_64bit) = self.maybe_64bit { | |
| 353 | + // When Git for Windows releases ARM64 builds, there will be another 64-bit suffix, | |
| 354 | + // likely clangarm64. In that case, this and other assertions will need updating, | |
| 355 | + // as there will be two separate paths to check under the same 64-bit program files | |
| 356 | + // directory. (See the definition of ProgramFilesPaths::maybe_64bit for details.) | |
| 357 | + assert_eq!(suffix_64bit, Path::new("Git/mingw64/bin")); | |
| 358 | + } | |
| 359 | + } | |
| 347 | 360 | } |
| 348 | 361 | |
| 349 | 362 | #[test] |
| 350 | 363 | #[cfg(windows)] |
| 351 | 364 | fn alternative_locations() { |
| 365 | + // Obtain program files directory paths by other means and check that they seem correct. | |
| 352 | 366 | let pf = ProgramFilesPaths::obtain_envlessly().validate(); |
| 353 | − let suffixes = GitBinSuffixes::assert_from(&pf); | |
| 367 | + | |
| 368 | + // Check that `ALTERNATIVE_LOCATIONS` correspond to them, with the correct subdirectories. | |
| 369 | + GitBinSuffixes::assert_from(&pf).validate(); | |
| 354 | 370 | |
| 355 | 371 | // FIXME: Assert the other relationships between pf values and ALTERNATIVE_LOCATIONS contents! |
| 356 | 372 | } |