jvmti 0.5.0

JVM TI Rust binding
Documentation
extern crate jvmti;
extern crate libc;

#[cfg(test)]
mod tests {

    use jvmti::capabilities::Capabilities;
    use jvmti::emulator::JVMEmulator;
    use jvmti::environment::jvm::JVMF;
    use jvmti::environment::jvmti::JVMTI;
    use jvmti::version::VersionNumber;

    #[test]
    fn get_environment_returns_a_valid_environment() {
        let emu = JVMEmulator::new();

        assert!(emu.get_environment().is_ok());
        let env = emu.get_environment().ok().unwrap();
        assert_eq!(VersionNumber::unknown(), env.get_version_number());
    }

    #[test]
    fn get_version_number_returns_unknown_version() {
        let emu = JVMEmulator::new();

        assert!(emu.get_environment().is_ok());
        let env = emu.get_environment().ok().unwrap();
        assert_eq!(VersionNumber::unknown(), env.get_version_number());
    }

    #[test]
    fn add_capabilities_retains_the_previously_added_capabilities() {
        let mut emu = JVMEmulator::new();

        let mut capabilities = Capabilities::new();
        capabilities.can_get_bytecodes = true;

        assert_eq!(false, emu.capabilities.can_get_bytecodes);
        assert!(emu.add_capabilities(&capabilities).is_ok());
        assert_eq!(true, emu.capabilities.can_get_bytecodes);

        capabilities.can_get_bytecodes = false;
        capabilities.can_suspend = true;

        assert_eq!(false, emu.capabilities.can_suspend);
        assert!(emu.add_capabilities(&capabilities).is_ok());
        assert_eq!(true, emu.capabilities.can_suspend);
        assert_eq!(true, emu.capabilities.can_get_bytecodes);
    }
}