mirror of
https://github.com/elicpeter/nyx.git
synced 2026-06-09 19:45:13 +02:00
* refactor: Update comments for clarity and add expectations.json files for performance metrics * feat: Implement FP guard for JS/TS local-collection receivers to suppress missing ownership checks * feat: Enhance Rust parameter handling to classify local collections and prevent false ownership checks * refactor: Simplify code formatting for better readability in multiple files * refactor: Improve UTF-8 sequence length handling and enhance clarity in loop iteration * feat: Update Java and Python patterns to include new security rules * refactor: Improve comment clarity and consistency across multiple Rust files * refactor: Simplify code formatting for improved readability in integration tests and module files * refactor: Improve comment formatting and enhance clarity in assertions across multiple files
37 lines
1.2 KiB
Rust
37 lines
1.2 KiB
Rust
//! Switch-lowering fixture coverage.
|
|
//!
|
|
//! * `large_switch_go`, Go switch with 6+ mutually exclusive cases
|
|
//! dispatching to distinct sinks. Exercises multi-case taint flow;
|
|
//! succeeds regardless of whether SSA lowering emits
|
|
//! `Terminator::Switch` or the legacy cascade of `Branch` headers.
|
|
//!
|
|
//! * `switch_fall_through_c`, C switch with explicit fall-through,
|
|
//! regression-guarding the cascade-preserving lowering for languages
|
|
//! whose switch semantics allow cases to be non-exclusive.
|
|
|
|
mod common;
|
|
|
|
use common::{scan_fixture_dir, validate_expectations};
|
|
use nyx_scanner::utils::config::AnalysisMode;
|
|
use std::path::{Path, PathBuf};
|
|
|
|
fn fixture_path(name: &str) -> PathBuf {
|
|
Path::new(env!("CARGO_MANIFEST_DIR"))
|
|
.join("tests")
|
|
.join("fixtures")
|
|
.join(name)
|
|
}
|
|
|
|
#[test]
|
|
fn large_switch_go() {
|
|
let dir = fixture_path("large_switch_go");
|
|
let diags = scan_fixture_dir(&dir, AnalysisMode::Full);
|
|
validate_expectations(&diags, &dir);
|
|
}
|
|
|
|
#[test]
|
|
fn switch_fall_through_c() {
|
|
let dir = fixture_path("switch_fall_through_c");
|
|
let diags = scan_fixture_dir(&dir, AnalysisMode::Full);
|
|
validate_expectations(&diags, &dir);
|
|
}
|