diff --git a/docs/private b/docs/private index b3ababe9..81ec67f7 160000 --- a/docs/private +++ b/docs/private @@ -1 +1 @@ -Subproject commit b3ababe9c8406032adc024d858005bb312fafd56 +Subproject commit 81ec67f7757a3798bf5262a17a7c4c6a483ac56c diff --git a/src/tests/mir_joinir_if_select.rs b/src/tests/mir_joinir_if_select.rs index 90642a59..73f51465 100644 --- a/src/tests/mir_joinir_if_select.rs +++ b/src/tests/mir_joinir_if_select.rs @@ -124,15 +124,17 @@ mod tests { } } + /// Phase 33-3: 統合パターンマッチングテスト(env 競合回避) + /// + /// env 変数を触る4つのテストを1つにまとめて、並列実行でのレースを防ぐ。 + /// 順番に: simple/local/disabled/wrong_name を確認する。 #[test] - fn test_if_select_simple_pattern() { - // Set environment variable for this test + fn test_if_select_pattern_matching() { + // ==== 1. Simple pattern (env ON) ==== std::env::set_var("NYASH_JOINIR_IF_SELECT", "1"); let func = create_simple_pattern_mir(); let entry_block = func.entry_block; - - // Try to lower to JoinIR let result = try_lower_if_to_joinir(&func, entry_block, true); assert!( @@ -153,18 +155,9 @@ mod tests { panic!("Expected JoinInst::Select, got {:?}", result); } - // Clean up - std::env::remove_var("NYASH_JOINIR_IF_SELECT"); - } - - #[test] - fn test_if_select_local_pattern() { - std::env::set_var("NYASH_JOINIR_IF_SELECT", "1"); - + // ==== 2. Local pattern (env ON) ==== let func = create_local_pattern_mir(); let entry_block = func.entry_block; - - // Try to lower to JoinIR let result = try_lower_if_to_joinir(&func, entry_block, true); assert!( @@ -185,18 +178,11 @@ mod tests { panic!("Expected JoinInst::Select, got {:?}", result); } - std::env::remove_var("NYASH_JOINIR_IF_SELECT"); - } - - #[test] - fn test_if_select_disabled_by_default() { - // Ensure environment variable is NOT set + // ==== 3. Disabled by default (env OFF) ==== std::env::remove_var("NYASH_JOINIR_IF_SELECT"); let func = create_simple_pattern_mir(); let entry_block = func.entry_block; - - // Should return None when disabled let result = try_lower_if_to_joinir(&func, entry_block, false); assert!( @@ -205,19 +191,13 @@ mod tests { ); eprintln!("✅ If/Select lowering correctly disabled by default"); - } - #[test] - fn test_if_select_wrong_function_name() { + // ==== 4. Wrong function name (env ON) ==== std::env::set_var("NYASH_JOINIR_IF_SELECT", "1"); - // Create function with wrong name (not IfSelectTest.*) let mut func = create_simple_pattern_mir(); func.signature.name = "WrongName.test/1".to_string(); - let entry_block = func.entry_block; - - // Should return None for non-IfSelectTest functions let result = try_lower_if_to_joinir(&func, entry_block, true); assert!( @@ -227,6 +207,7 @@ mod tests { eprintln!("✅ Function name filter working correctly"); + // Clean up std::env::remove_var("NYASH_JOINIR_IF_SELECT"); }