#[test]
fn test_membarrier() {
use rustix::process::{membarrier, membarrier_query, MembarrierCommand, MembarrierQuery};
let query: MembarrierQuery = membarrier_query();
for cmd in [
MembarrierCommand::RegisterGlobalExpedited,
MembarrierCommand::RegisterPrivateExpedited,
MembarrierCommand::RegisterPrivateExpeditedSyncCore,
MembarrierCommand::RegisterPrivateExpeditedRseq,
]
.iter()
.copied()
{
if query.contains_command(cmd) {
membarrier(cmd).unwrap();
}
}
for cmd in [
MembarrierCommand::Global,
MembarrierCommand::GlobalExpedited,
MembarrierCommand::PrivateExpedited,
MembarrierCommand::PrivateExpeditedSyncCore,
MembarrierCommand::PrivateExpeditedRseq,
]
.iter()
.copied()
{
if query.contains_command(cmd) {
membarrier(cmd).unwrap();
} else {
membarrier(cmd).unwrap_err();
}
}
}