use {c, error};
pub fn map_result(bssl_result: c::int) -> Result<(), error::Unspecified> {
match bssl_result {
1 => Ok(()),
_ => Err(error::Unspecified)
}
}
#[cfg(test)]
macro_rules! bssl_test {
( $fn_name:ident, $bssl_test_main_fn_name:ident ) => {
#[test]
#[allow(unsafe_code)]
fn $fn_name() {
use $crate::{c, init};
extern {
fn $bssl_test_main_fn_name() -> c::int;
}
init::init_once();
let result = unsafe {
$bssl_test_main_fn_name()
};
assert_eq!(result, 0);
}
}
}
#[cfg(test)]
macro_rules! bssl_test_rng {
( $fn_name:ident, $bssl_test_main_fn_name:ident ) => {
#[test]
#[allow(improper_ctypes, unsafe_code)]
fn $fn_name() {
use $crate::{c, init, rand};
extern {
fn $bssl_test_main_fn_name(rng: *mut rand::RAND) -> c::int;
}
init::init_once();
let rng = rand::SystemRandom::new();
let mut rng = rand::RAND { rng: &rng };
let result = unsafe {
$bssl_test_main_fn_name(&mut rng)
};
assert_eq!(result, 0);
}
}
}