#![allow(deprecated)]
#[cfg(test)]
mod tests {
use core::mem::MaybeUninit;
use libyml::decode::yaml_parser_delete;
use libyml::decode::yaml_parser_initialize;
use libyml::YamlParserT;
#[test]
fn test_yaml_parser_initialize() {
unsafe {
let mut parser = MaybeUninit::<YamlParserT>::uninit();
let result = yaml_parser_initialize(parser.as_mut_ptr());
assert!(result.ok, "Parser initialization should succeed");
}
}
#[test]
fn test_yaml_parser_initialize_and_delete() {
unsafe {
let mut parser = MaybeUninit::<YamlParserT>::uninit();
let init_result =
yaml_parser_initialize(parser.as_mut_ptr());
assert!(
init_result.ok,
"Parser initialization should succeed"
);
let parser_ptr = parser.as_mut_ptr();
yaml_parser_delete(parser_ptr);
}
}
#[test]
fn test_multiple_initialize_and_delete() {
unsafe {
for i in 0..5 {
let mut parser = MaybeUninit::<YamlParserT>::uninit();
let init_result =
yaml_parser_initialize(parser.as_mut_ptr());
assert!(
init_result.ok,
"Parser initialization should succeed on iteration {}",
i
);
let parser_ptr = parser.as_mut_ptr();
yaml_parser_delete(parser_ptr);
}
}
}
#[test]
fn test_parser_initialization_and_deletion() {
unsafe {
let mut parser = MaybeUninit::<YamlParserT>::uninit();
let init_result =
yaml_parser_initialize(parser.as_mut_ptr());
assert!(
init_result.ok,
"Parser initialization should succeed"
);
yaml_parser_delete(parser.as_mut_ptr());
}
}
#[test]
fn test_parser_after_deletion() {
unsafe {
let mut parser = MaybeUninit::<YamlParserT>::uninit();
let _ = yaml_parser_initialize(parser.as_mut_ptr());
let parser_ptr = parser.as_mut_ptr();
yaml_parser_delete(parser_ptr);
let reinit_result = yaml_parser_initialize(parser_ptr);
assert!(
reinit_result.ok,
"Parser re-initialization after deletion should succeed"
);
yaml_parser_delete(parser_ptr);
}
}
#[test]
fn test_multiple_deletions() {
unsafe {
let mut parser = MaybeUninit::<YamlParserT>::uninit();
let init_result =
yaml_parser_initialize(parser.as_mut_ptr());
assert!(
init_result.ok,
"Parser initialization should succeed"
);
let parser_ptr = parser.as_mut_ptr();
yaml_parser_delete(parser_ptr);
}
}
#[test]
fn test_memory_leaks() {
unsafe {
let mut parser = MaybeUninit::<YamlParserT>::uninit();
let init_result =
yaml_parser_initialize(parser.as_mut_ptr());
assert!(
init_result.ok,
"Parser initialization should succeed"
);
yaml_parser_delete(parser.as_mut_ptr());
}
}
#[test]
fn test_yaml_parser_initialize_valid() {
unsafe {
let mut parser = MaybeUninit::<YamlParserT>::uninit();
let result = yaml_parser_initialize(parser.as_mut_ptr());
assert!(
result.ok,
"Parser initialization should succeed with valid pointer"
);
yaml_parser_delete(parser.as_mut_ptr());
}
}
}