wdext 0.1.0

A DbgEng wrapper framework
// SPDX-FileCopyrightText: 2026 takubokudori
// SPDX-License-Identifier: MIT OR Apache-2.0
#[cfg(test)]
pub mod tests {
    use crate::tests::util::local_debug2;
    use wdext::data::{DebugExprOptions, DebugRadix};

    mod util;

    #[test]
    fn test_execute() {
        let ctx = local_debug2();
        let ctrl = ctx.control();

        assert_eq!(ctrl.get_number_expression_syntaxes().unwrap(), 2);

        // Only verify that the calls succeed.
        ctrl.0.get_system_version().unwrap();
        ctrl.get_system_version_build_string().unwrap();
        ctrl.get_system_version_service_pack_string().unwrap();

        let (full_name, abbrev_name) =
            ctrl.get_expression_syntax_names(0).unwrap();
        assert_eq!(full_name, "Microsoft Assembler expressions");
        assert_eq!(abbrev_name, "MASM");
        let (full_name, abbrev_name) =
            ctrl.get_expression_syntax_names(1).unwrap();
        assert_eq!(full_name, "C++ source expressions");
        assert_eq!(abbrev_name, "C++");

        ctrl.set_expression_syntax(DebugExprOptions::Cplusplus)
            .unwrap();
        assert_eq!(
            ctrl.get_expression_syntax().unwrap(),
            DebugExprOptions::Cplusplus
        );
        ctrl.set_expression_syntax(DebugExprOptions::Masm).unwrap();
        assert_eq!(
            ctrl.get_expression_syntax().unwrap(),
            DebugExprOptions::Masm
        );

        ctrl.set_radix(DebugRadix::Decimal).unwrap();
        assert_eq!(ctrl.get_radix().unwrap(), DebugRadix::Decimal);
        ctrl.set_radix(DebugRadix::Hexadecimal).unwrap();
        assert_eq!(ctrl.get_radix().unwrap(), DebugRadix::Hexadecimal);
    }
}