#[cfg(test)]
pub mod tests {
use crate::tests::util::local_debug2;
use wdext::*;
use windows::{Win32::Foundation::S_FALSE, core::imp::S_OK};
use windy::WStr;
mod util;
#[test]
fn test_debug_extension_query_value_names() {
debug_extension_query_value_names!(query_value_names_impl);
fn query_value_names_impl(
_client: &WdClient,
_flags: u32,
) -> WdResult<Vec<String>> {
Ok(vec![
"name1".to_string(),
"name2".to_string(),
"name3".to_string(),
])
}
let ctx = local_debug2();
let client = ctx.client();
unsafe {
let mut buffer = [0xffff; 18];
let mut buffer_chars = 0;
assert_eq!(
DebugExtensionQueryValueNames(
client.0.as_ptr(),
0,
buffer.as_mut_ptr(),
buffer.len() as u32,
&mut buffer_chars
),
S_FALSE
);
assert_eq!(buffer_chars, 19);
let mut buffer = [0xffff; 20];
let mut buffer_chars = 0;
assert_eq!(
DebugExtensionQueryValueNames(
client.0.as_ptr(),
0,
buffer.as_mut_ptr(),
buffer.len() as u32,
&mut buffer_chars
),
S_OK
);
assert_eq!(WStr::from_raw(buffer.as_ptr()).to_string(), "name1");
assert_eq!(
WStr::from_raw(buffer.as_ptr().add(6)).to_string(),
"name2"
);
assert_eq!(
WStr::from_raw(buffer.as_ptr().add(12)).to_string(),
"name3"
);
assert_eq!(WStr::from_raw(buffer.as_ptr().add(18)).to_string(), "");
}
}
}