소스 검색

Skip relocation tests on unsupported kernels

Tamir Duberstein 1 년 전
부모
커밋
91a415f095
3개의 변경된 파일25개의 추가작업 그리고 6개의 파일을 삭제
  1. 16 0
      test/integration-test/tests/btf_relocations.rs
  2. 6 4
      test/integration-test/tests/load.rs
  3. 3 2
      test/integration-test/tests/smoke.rs

+ 16 - 0
test/integration-test/tests/btf_relocations.rs

@@ -1,4 +1,5 @@
 use anyhow::{bail, Context as _, Result};
+use procfs::KernelVersion;
 use std::{path::PathBuf, process::Command, thread::sleep, time::Duration};
 use tempfile::TempDir;
 
@@ -60,6 +61,11 @@ fn relocate_enum() {
 
 #[test]
 fn relocate_enum_signed() {
+    let kernel_version = KernelVersion::current().unwrap();
+    if kernel_version < KernelVersion::new(6, 0, 0) {
+        eprintln!("skipping test on kernel {kernel_version:?}, support for signed enum was added in 6.0.0; see https://github.com/torvalds/linux/commit/6089fb3");
+        return;
+    }
     let test = RelocationTest {
         local_definition: r#"
             enum foo { D = -0x7AAAAAAA };
@@ -80,6 +86,11 @@ fn relocate_enum_signed() {
 
 #[test]
 fn relocate_enum64() {
+    let kernel_version = KernelVersion::current().unwrap();
+    if kernel_version < KernelVersion::new(6, 0, 0) {
+        eprintln!("skipping test on kernel {kernel_version:?}, support for enum64 was added in 6.0.0; see https://github.com/torvalds/linux/commit/6089fb3");
+        return;
+    }
     let test = RelocationTest {
         local_definition: r#"
             enum foo { D = 0xAAAAAAAABBBBBBBB };
@@ -100,6 +111,11 @@ fn relocate_enum64() {
 
 #[test]
 fn relocate_enum64_signed() {
+    let kernel_version = KernelVersion::current().unwrap();
+    if kernel_version < KernelVersion::new(6, 0, 0) {
+        eprintln!("skipping test on kernel {kernel_version:?}, support for enum64 was added in 6.0.0; see https://github.com/torvalds/linux/commit/6089fb3");
+        return;
+    }
     let test = RelocationTest {
         local_definition: r#"
             enum foo { D = -0xAAAAAAABBBBBBBB };

+ 6 - 4
test/integration-test/tests/load.rs

@@ -131,8 +131,9 @@ fn unload_kprobe() {
 
 #[test]
 fn pin_link() {
-    if KernelVersion::current().unwrap() < KernelVersion::new(5, 9, 0) {
-        eprintln!("skipping test, XDP uses netlink");
+    let kernel_version = KernelVersion::current().unwrap();
+    if kernel_version < KernelVersion::new(5, 9, 0) {
+        eprintln!("skipping test on kernel {kernel_version:?}, XDP uses netlink");
         return;
     }
 
@@ -166,8 +167,9 @@ fn pin_link() {
 
 #[test]
 fn pin_lifecycle() {
-    if KernelVersion::current().unwrap() < KernelVersion::new(5, 9, 0) {
-        eprintln!("skipping test, XDP uses netlink");
+    let kernel_version = KernelVersion::current().unwrap();
+    if kernel_version < KernelVersion::new(5, 9, 0) {
+        eprintln!("skipping test on kernel {kernel_version:?}, XDP uses netlink");
         return;
     }
 

+ 3 - 2
test/integration-test/tests/smoke.rs

@@ -17,8 +17,9 @@ fn xdp() {
 
 #[test]
 fn extension() {
-    if KernelVersion::current().unwrap() < KernelVersion::new(5, 9, 0) {
-        eprintln!("skipping test, XDP uses netlink");
+    let kernel_version = KernelVersion::current().unwrap();
+    if kernel_version < KernelVersion::new(5, 9, 0) {
+        eprintln!("skipping test on kernel {kernel_version:?}, XDP uses netlink");
         return;
     }
     let main_bytes =