Quellcode durchsuchen

Unit tests for fd_get() calls

Signed-off-by: Christine Caulfield <ccaulfie@redhat.com>
Reviewed-by: Jan Friesse <jfriesse@redhat.com>
Christine Caulfield vor 3 Monaten
Ursprung
Commit
ff20c2b123

+ 17 - 0
bindings/rust/tests/src/bin/cfg-test.rs

@@ -128,6 +128,23 @@ fn main() -> Result<(), corosync::CsError> {
         }
     }
 
+    // Check that fd_get returns a valid FD
+    match cfg::fd_get(&handle) {
+        Ok(fd) => {
+            println!("FD is {fd}");
+            // Arbitrary upper limit but FDs should always be low
+            // and we're mainly checking addresses being returned
+            if !(0..=0xFFFF).contains(&fd) {
+                println!("Error - bad fd returned from fd_get: {fd}");
+                return Err(corosync::CsError::CsErrRustCompat);
+            }
+        }
+        Err(e) => {
+            println!("Error in CFG fd_get: {e}");
+            return Err(e);
+        }
+    }
+
     // Quick test of dispatch
     if let Err(e) = cfg::dispatch(&handle, corosync::DispatchFlags::OneNonblocking) {
         println!("Error in CFG dispatch");

+ 17 - 0
bindings/rust/tests/src/bin/cmap-test.rs

@@ -180,6 +180,23 @@ fn main() -> Result<(), corosync::CsError> {
         }
     };
 
+    // Check that fd_get returns a valid FD
+    match cmap::fd_get(&handle) {
+        Ok(fd) => {
+            println!("FD is {fd}");
+            // Arbitrary upper limit but FDs should always be low
+            // and we're mainly checking addresses being returned
+            if !(0..=0xFFFF).contains(&fd) {
+                println!("Error - bad fd returned from fd_get: {fd}");
+                return Err(corosync::CsError::CsErrRustCompat);
+            }
+        }
+        Err(e) => {
+            println!("Error in CMAP fd_get: {e}");
+            return Err(e);
+        }
+    }
+
     // Wait for some events
     let mut event_num = 0;
     loop {

+ 17 - 0
bindings/rust/tests/src/bin/cpg-test.rs

@@ -137,6 +137,23 @@ fn main() -> Result<(), corosync::CsError> {
         return Err(e);
     }
 
+    // Check that fd_get returns a valid FD
+    match cpg::fd_get(&handle) {
+        Ok(fd) => {
+            println!("FD is {fd}");
+            // Arbitrary upper limit but FDs should always be low
+            // and we're mainly checking addresses being returned
+            if !(0..=0xFFFF).contains(&fd) {
+                println!("Error - bad fd returned from fd_get: {fd}");
+                return Err(corosync::CsError::CsErrRustCompat);
+            }
+        }
+        Err(e) => {
+            println!("Error in CPG fd_get: {e}");
+            return Err(e);
+        }
+    }
+
     // Quick test of dispatch
     if let Err(e) = cpg::dispatch(&handle, corosync::DispatchFlags::OneNonblocking) {
         println!("Error in CPG dispatch: {e}");

+ 17 - 0
bindings/rust/tests/src/bin/quorum-test.rs

@@ -75,6 +75,23 @@ fn main() -> Result<(), corosync::CsError> {
         return Err(e);
     }
 
+    // Check that fd_get returns a valid FD
+    match quorum::fd_get(&handle) {
+        Ok(fd) => {
+            println!("FD is {fd}");
+            // Arbitrary upper limit but FDs should always be low
+            // and we're mainly checking addresses being returned
+            if !(0..=0xFFFF).contains(&fd) {
+                println!("Error - bad fd returned from fd_get: {fd}");
+                return Err(corosync::CsError::CsErrRustCompat);
+            }
+        }
+        Err(e) => {
+            println!("Error in QUORUM fd_get: {e}");
+            return Err(e);
+        }
+    }
+
     // Quick test of dispatch
     if let Err(e) = quorum::dispatch(&handle, corosync::DispatchFlags::OneNonblocking) {
         println!("Error in QUORUM dispatch: {e}");

+ 17 - 0
bindings/rust/tests/src/bin/votequorum-test.rs

@@ -113,6 +113,23 @@ fn main() -> Result<(), corosync::CsError> {
         return Err(e);
     }
 
+    // Check that fd_get returns a valid FD
+    match votequorum::fd_get(&handle) {
+        Ok(fd) => {
+            println!("FD is {fd}");
+            // Arbitrary upper limit but FDs should always be low
+            // and we're mainly checking addresses being returned
+            if !(0..=0xFFFF).contains(&fd) {
+                println!("Error - bad fd returned from fd_get: {fd}");
+                return Err(corosync::CsError::CsErrRustCompat);
+            }
+        }
+        Err(e) => {
+            println!("Error in VOTEQUORUM fd_get: {e}");
+            return Err(e);
+        }
+    }
+
     // Quick test of dispatch
     if let Err(e) = votequorum::dispatch(&handle, corosync::DispatchFlags::OneNonblocking) {
         println!("Error in VOTEUORUM dispatch: {e}");