mirror of
https://github.com/github/codeql.git
synced 2026-04-22 23:35:14 +02:00
Rust: turn off the test cfg by default
This commit is contained in:
@@ -137,13 +137,20 @@ fn to_cfg_override(spec: &str) -> CfgAtom {
|
||||
fn to_cfg_overrides(specs: &Vec<String>) -> CfgOverrides {
|
||||
let mut enabled_cfgs = Vec::new();
|
||||
let mut disabled_cfgs = Vec::new();
|
||||
let mut has_test_explicitly_enabled = false;
|
||||
for spec in specs {
|
||||
if spec.starts_with("-") {
|
||||
disabled_cfgs.push(to_cfg_override(&spec[1..]));
|
||||
} else {
|
||||
enabled_cfgs.push(to_cfg_override(spec));
|
||||
if spec == "test" {
|
||||
has_test_explicitly_enabled = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if !has_test_explicitly_enabled {
|
||||
disabled_cfgs.push(to_cfg_override("test"));
|
||||
}
|
||||
if let Some(global) = CfgDiff::new(enabled_cfgs, disabled_cfgs) {
|
||||
CfgOverrides {
|
||||
global,
|
||||
@@ -151,6 +158,10 @@ fn to_cfg_overrides(specs: &Vec<String>) -> CfgOverrides {
|
||||
}
|
||||
} else {
|
||||
warn!("non-disjoint cfg overrides, ignoring: {}", specs.join(", "));
|
||||
CfgOverrides::default()
|
||||
CfgOverrides {
|
||||
global: CfgDiff::new(Vec::new(), vec![to_cfg_override("test")])
|
||||
.expect("disabling one cfg should always succeed"),
|
||||
..Default::default()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
| src/cfg.rs:1:1:2:16 | cfg_flag |
|
||||
| src/cfg.rs:4:1:5:15 | cfg_key |
|
||||
| src/cfg.rs:13:1:14:15 | no_test |
|
||||
| src/cfg.rs:13:1:14:12 | test |
|
||||
| src/cfg.rs:16:1:17:24 | pointer_width_32 |
|
||||
|
||||
@@ -10,5 +10,8 @@ fn cfg_no_flag() {}
|
||||
#[cfg(not(cfg_key = "value"))]
|
||||
fn cfg_no_key() {}
|
||||
|
||||
#[cfg(not(test))]
|
||||
fn no_test() {}
|
||||
#[cfg(test)]
|
||||
fn test() {}
|
||||
|
||||
#[cfg(target_pointer_width = "32")]
|
||||
fn pointer_width_32() {}
|
||||
|
||||
@@ -23,7 +23,7 @@ def test_target_linux(codeql, rust):
|
||||
@pytest.mark.ql_test("arch_functions.ql", expected=f".{platform.system()}.expected")
|
||||
def test_cfg_override(codeql, rust):
|
||||
# currently codeql CLI has a limitation not allow to pass `=` in values via `--extractor-option`
|
||||
os.environ["CODEQL_EXTRACTOR_RUST_OPTION_CARGO_CFG_OVERRIDES"] = "cfg_flag,cfg_key=value,-test"
|
||||
os.environ["CODEQL_EXTRACTOR_RUST_OPTION_CARGO_CFG_OVERRIDES"] = "cfg_flag,cfg_key=value,-target_pointer_width=64,target_pointer_width=32,test"
|
||||
codeql.database.create()
|
||||
|
||||
@pytest.mark.ql_test("arch_functions.ql", expected=f".{platform.system()}.expected")
|
||||
|
||||
Reference in New Issue
Block a user