|
1 | 1 | //! Tests for config settings.
|
2 | 2 |
|
3 |
| -use cargo::core::Shell; |
| 3 | +use cargo::core::{PackageIdSpec, Shell}; |
4 | 4 | use cargo::util::config::{self, Config, SslVersionConfig, StringList};
|
5 | 5 | use cargo::util::interning::InternedString;
|
6 | 6 | use cargo::util::toml::{self, VecStringOrBool as VSOB};
|
@@ -1461,3 +1461,38 @@ fn cargo_target_empty_env() {
|
1461 | 1461 | .with_status(101)
|
1462 | 1462 | .run()
|
1463 | 1463 | }
|
| 1464 | + |
| 1465 | +#[cargo_test] |
| 1466 | +fn all_profile_options() { |
| 1467 | + // Check that all profile options can be serialized/deserialized. |
| 1468 | + let base_settings = toml::TomlProfile { |
| 1469 | + opt_level: Some(toml::TomlOptLevel("0".to_string())), |
| 1470 | + lto: Some(toml::StringOrBool::String("thin".to_string())), |
| 1471 | + codegen_backend: Some(InternedString::new("example")), |
| 1472 | + codegen_units: Some(123), |
| 1473 | + debug: Some(toml::U32OrBool::U32(1)), |
| 1474 | + split_debuginfo: Some("packed".to_string()), |
| 1475 | + debug_assertions: Some(true), |
| 1476 | + rpath: Some(true), |
| 1477 | + panic: Some("abort".to_string()), |
| 1478 | + overflow_checks: Some(true), |
| 1479 | + incremental: Some(true), |
| 1480 | + dir_name: Some(InternedString::new("dir_name")), |
| 1481 | + inherits: Some(InternedString::new("debug")), |
| 1482 | + strip: Some(toml::StringOrBool::String("symbols".to_string())), |
| 1483 | + package: None, |
| 1484 | + build_override: None, |
| 1485 | + }; |
| 1486 | + let mut overrides = BTreeMap::new(); |
| 1487 | + let key = toml::ProfilePackageSpec::Spec(PackageIdSpec::parse("foo").unwrap()); |
| 1488 | + overrides.insert(key, base_settings.clone()); |
| 1489 | + let profile = toml::TomlProfile { |
| 1490 | + build_override: Some(Box::new(base_settings.clone())), |
| 1491 | + package: Some(overrides), |
| 1492 | + ..base_settings.clone() |
| 1493 | + }; |
| 1494 | + let profile_toml = ::toml::to_string(&profile).unwrap(); |
| 1495 | + let roundtrip: toml::TomlProfile = ::toml::from_str(&profile_toml).unwrap(); |
| 1496 | + let roundtrip_toml = ::toml::to_string(&roundtrip).unwrap(); |
| 1497 | + compare::assert_match_exact(&profile_toml, &roundtrip_toml); |
| 1498 | +} |
0 commit comments