summaryrefslogtreecommitdiffstats
path: root/vendor/rustix/tests/process/membarrier.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/rustix/tests/process/membarrier.rs')
-rw-r--r--vendor/rustix/tests/process/membarrier.rs40
1 files changed, 40 insertions, 0 deletions
diff --git a/vendor/rustix/tests/process/membarrier.rs b/vendor/rustix/tests/process/membarrier.rs
new file mode 100644
index 000000000..ed9b00c1a
--- /dev/null
+++ b/vendor/rustix/tests/process/membarrier.rs
@@ -0,0 +1,40 @@
+#[test]
+fn test_membarrier() {
+ use rustix::process::{membarrier, membarrier_query, MembarrierCommand, MembarrierQuery};
+
+ let query: MembarrierQuery = membarrier_query();
+
+ // Supported registration commands should succeed.
+ for cmd in [
+ MembarrierCommand::RegisterGlobalExpedited,
+ MembarrierCommand::RegisterPrivateExpedited,
+ MembarrierCommand::RegisterPrivateExpeditedSyncCore,
+ MembarrierCommand::RegisterPrivateExpeditedRseq,
+ ]
+ .iter()
+ .copied()
+ {
+ if query.contains_command(cmd) {
+ membarrier(cmd).unwrap();
+ }
+ }
+
+ // All supported commands should now succeed, and all unsupported
+ // commands should fail.
+ 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();
+ }
+ }
+}