Files
hakorune/src/tests/mod.rs

34 lines
1023 B
Rust
Raw Normal View History

#[cfg(feature = "aot-plan-import")]
pub mod aot_plan_import;
pub mod box_tests;
pub mod host_reverse_slot;
pub mod identical_exec;
pub mod identical_exec_collections;
pub mod identical_exec_instance;
pub mod identical_exec_string;
pub mod mir_breakfinder_ssa;
pub mod mir_funcscanner_skip_ws;
pub mod mir_funcscanner_ssa;
pub mod mir_locals_ssa;
pub mod mir_loopform_conditional_reassign;
pub mod mir_loopform_exit_phi;
pub mod mir_loopform_complex;
pub mod mir_stage1_using_resolver_verify;
pub mod mir_stageb_like_args_length;
pub mod mir_stageb_loop_break_continue;
feat(mir): Phase 26-A-5完了 - 統合テスト作成(ValueId型安全化完全検証) ## 🎯 Phase 26-A-5: 統合テスト作成完了 ### ✅ 実装内容 **新規ファイル作成**: - `src/tests/mir_value_kind.rs` - Phase 26-A統合テスト(4テスト) - `src/tests/mod.rs` - mir_value_kindモジュール登録 **作成した統合テスト**: 1. **`test_guard_bug_prevention_full_flow()`** - GUARD checkバグ完全再現防止テスト - ValueId(0)がパラメータとして正しく判定されることを確認 - Phase 26-A-2/26-A-3/26-A-4の統合動作検証 2. **`test_instance_method_parameters()`** - インスタンスメソッドの暗黙的receiver(me)を含むパラメータテスト - 複数パラメータ(me, arg1, arg2)の型安全判定確認 3. **`test_loop_parameter_vs_local_distinction()`** - ループ内でのパラメータ/ローカル変数/LoopCarrierの区別テスト - loop_builder.rsの実際のユースケース検証 - new_typed_value()によるMirValueKind別ValueId生成確認 4. **`test_no_parameters_function()`** - パラメータなし関数のテスト - 未登録ValueIdのデフォルト動作確認 ### 🏆 技術的成果 #### テスト構造 ```rust // Phase 26-A-1 ユニットテスト (src/mir/value_kind.rs) test_mir_value_kind_parameter() // MirValueKind::Parameter test_mir_value_kind_local() // MirValueKind::Local test_mir_value_kind_constant() // MirValueKind::Constant test_mir_value_kind_temporary() // MirValueKind::Temporary test_mir_value_kind_pinned() // MirValueKind::Pinned test_mir_value_kind_loop_carrier() // MirValueKind::LoopCarrier test_typed_value_id_*() // TypedValueId各種機能 test_guard_check_bug_prevention() // GUARDバグ再現防止(ユニット) test_loop_carrier_detection() // LoopCarrier検出 // Phase 26-A-5 統合テスト (src/tests/mir_value_kind.rs) test_guard_bug_prevention_full_flow() // ✅ GUARD完全検証 test_instance_method_parameters() // ✅ 複雑パラメータ test_loop_parameter_vs_local_distinction() // ✅ 実用ケース test_no_parameters_function() // ✅ エッジケース ``` #### GUARDバグ再現防止の完全検証 ```rust // ❌ 旧実装で発生していたバグ for (name, value) in &current_vars { if value.0 == 0 { // ValueId(0) を未初期化と誤判定 return Ok(ValueId(0)); } } // ✅ Phase 26-A実装後の検証 let s = ValueId(0); builder.register_value_kind(s, MirValueKind::Parameter(0)); assert!(builder.is_value_parameter(s)); // 正しくパラメータと判定! ``` ### 📊 テスト結果 ``` test result: ok. 245 passed; 1 failed; 27 ignored ``` - ✅ **245テスト合格** - Phase 26-A-4から+4テスト増加 - ✅ **10個の value_kind テスト** - 6ユニット + 4統合 - ❌ **1テスト失敗** - `mir_funcscanner_skip_ws`(既存PHIバグ、無関係) ### 🔄 修正ファイル一覧 1. `src/tests/mir_value_kind.rs` (新規) - 統合テスト実装 2. `src/tests/mod.rs` - モジュール登録 ### 🎯 Phase 26-A 完全達成状況 - ✅ Phase 26-A-1: MirValueKind + TypedValueId 実装 - ✅ Phase 26-A-2: MirBuilder統合(value_kinds HashMap追加) - ✅ Phase 26-A-3: パラメータ型自動登録(setup_function_params修正) - ✅ Phase 26-A-4: is_parameter根本修正(名前ベース→ValueIdベース) - ✅ **Phase 26-A-5: 統合テスト作成(完全検証) ← 今回** ### 🚀 次のステップ - Phase 26-A: 最終確認(全テスト実行) - ドキュメント更新 - Phase 26-Bへ移行検討 ## 📚 参考 - 設計文書: docs/development/architecture/phase-26-valueid-type-safety.md - ユニットテスト: src/mir/value_kind.rs (12テスト) - 統合テスト: src/tests/mir_value_kind.rs (4テスト)
2025-11-20 09:56:22 +09:00
pub mod mir_value_kind; // Phase 26-A-5: ValueId型安全化統合テスト
pub mod nyash_abi_basic;
2025-11-19 23:12:01 +09:00
pub mod parser_static_box_members;
pub mod plugin_hygiene;
pub mod policy_mutdeny;
pub mod sugar_basic_test;
pub mod sugar_coalesce_test;
pub mod sugar_comp_assign_test;
pub mod sugar_pipeline_test;
pub mod sugar_range_test;
pub mod sugar_safe_access_test;
pub mod typebox_tlv_diff;
pub mod vtable_map_ext;
pub mod vtable_strict;
pub mod vtable_string;