Prechádzať zdrojové kódy

tests: add missing default trait function overrides

Signed-off-by: Zhouqi Jiang <luojia@hust.edu.cn>
Zhouqi Jiang 4 mesiacov pred
rodič
commit
2753980672
4 zmenil súbory, kde vykonal 84 pridanie a 12 odobranie
  1. 16 0
      examples/derive/commons.rs
  2. 24 0
      tests/build-full.rs
  3. 21 5
      tests/build-rename.rs
  4. 23 7
      tests/build-skip.rs

+ 16 - 0
examples/derive/commons.rs

@@ -19,6 +19,22 @@ impl rustsbi::Fence for MyFence {
     fn remote_sfence_vma_asid(&self, _: HartMask, _: usize, _: usize, _: usize) -> SbiRet {
         todo!()
     }
+
+    fn remote_hfence_gvma_vmid(&self, _: HartMask, _: usize, _: usize, _: usize) -> SbiRet {
+        todo!()
+    }
+
+    fn remote_hfence_gvma(&self, _: HartMask, _: usize, _: usize) -> SbiRet {
+        todo!()
+    }
+
+    fn remote_hfence_vvma_asid(&self, _: HartMask, _: usize, _: usize, _: usize) -> SbiRet {
+        todo!()
+    }
+
+    fn remote_hfence_vvma(&self, _: HartMask, _: usize, _: usize) -> SbiRet {
+        todo!()
+    }
 }
 
 pub struct MyEnvInfo;

+ 24 - 0
tests/build-full.rs

@@ -185,6 +185,10 @@ impl rustsbi::Hsm for DummyHsm {
     fn hart_get_status(&self, _: usize) -> SbiRet {
         unimplemented!()
     }
+
+    fn hart_suspend(&self, _: u32, _: usize, _: usize) -> SbiRet {
+        unimplemented!()
+    }
 }
 
 struct DummyIpi;
@@ -244,6 +248,10 @@ impl rustsbi::Pmu for DummyPmu {
     fn counter_fw_read(&self, _: usize) -> SbiRet {
         unimplemented!()
     }
+
+    fn counter_fw_read_hi(&self, _: usize) -> SbiRet {
+        unimplemented!()
+    }
 }
 
 struct DummyReset;
@@ -268,6 +276,22 @@ impl rustsbi::Fence for DummyFence {
     fn remote_sfence_vma_asid(&self, _: HartMask, _: usize, _: usize, _: usize) -> SbiRet {
         unimplemented!()
     }
+
+    fn remote_hfence_gvma_vmid(&self, _: HartMask, _: usize, _: usize, _: usize) -> SbiRet {
+        unimplemented!()
+    }
+
+    fn remote_hfence_gvma(&self, _: HartMask, _: usize, _: usize) -> SbiRet {
+        unimplemented!()
+    }
+
+    fn remote_hfence_vvma_asid(&self, _: HartMask, _: usize, _: usize, _: usize) -> SbiRet {
+        unimplemented!()
+    }
+
+    fn remote_hfence_vvma(&self, _: HartMask, _: usize, _: usize) -> SbiRet {
+        unimplemented!()
+    }
 }
 
 struct DummySta;

+ 21 - 5
tests/build-rename.rs

@@ -56,7 +56,7 @@ fn rustsbi_assign_multiple() {
         },
         info: DummyEnvInfo,
     };
-    assert_eq!(sbi.handle_ecall(EID_SPI, 0x0, [0; 6]), SbiRet::success(10));
+    assert_eq!(sbi.handle_ecall(EID_SPI, 0x0, [0; 6]), SbiRet::success(14));
     #[cfg(target_pointer_width = "64")]
     sbi.handle_ecall(EID_TIME, 0x0, [0x1122334455667788, 0, 0, 0, 0, 0]);
     #[cfg(target_pointer_width = "32")]
@@ -102,6 +102,22 @@ impl rustsbi::Fence for DummyFence {
     fn remote_sfence_vma_asid(&self, _: HartMask, _: usize, _: usize, _: usize) -> SbiRet {
         SbiRet::success(6)
     }
+
+    fn remote_hfence_gvma_vmid(&self, _: HartMask, _: usize, _: usize, _: usize) -> SbiRet {
+        SbiRet::success(7)
+    }
+
+    fn remote_hfence_gvma(&self, _: HartMask, _: usize, _: usize) -> SbiRet {
+        SbiRet::success(8)
+    }
+
+    fn remote_hfence_vvma_asid(&self, _: HartMask, _: usize, _: usize, _: usize) -> SbiRet {
+        SbiRet::success(9)
+    }
+
+    fn remote_hfence_vvma(&self, _: HartMask, _: usize, _: usize) -> SbiRet {
+        SbiRet::success(10)
+    }
 }
 
 struct DummyEnvInfo;
@@ -124,15 +140,15 @@ struct RealEnvInfo;
 
 impl rustsbi::EnvInfo for RealEnvInfo {
     fn mvendorid(&self) -> usize {
-        7
+        11
     }
 
     fn marchid(&self) -> usize {
-        8
+        12
     }
 
     fn mimpid(&self) -> usize {
-        9
+        13
     }
 }
 
@@ -148,6 +164,6 @@ impl rustsbi::Timer for MockClint {
 
 impl rustsbi::Ipi for MockClint {
     fn send_ipi(&self, _: HartMask) -> SbiRet {
-        SbiRet::success(10)
+        SbiRet::success(14)
     }
 }

+ 23 - 7
tests/build-skip.rs

@@ -71,18 +71,18 @@ fn rustsbi_skip_env_info() {
         env_info: RealEnvInfo,
     };
     // The `env_info` instead of `info` field would be used by RustSBI macro; struct
-    // `RealEnvInfo` would return 7, 8 and 9 for mvendorid, marchid and mimpid.
+    // `RealEnvInfo` would return 11, 12 and 13 for mvendorid, marchid and mimpid.
     assert_eq!(
         sbi.handle_ecall(0x10, 0x4, [EID_DBCN, 0, 0, 0, 0, 0]),
-        SbiRet::success(7)
+        SbiRet::success(11)
     );
     assert_eq!(
         sbi.handle_ecall(0x10, 0x5, [EID_DBCN, 0, 0, 0, 0, 0]),
-        SbiRet::success(8)
+        SbiRet::success(12)
     );
     assert_eq!(
         sbi.handle_ecall(0x10, 0x6, [EID_DBCN, 0, 0, 0, 0, 0]),
-        SbiRet::success(9)
+        SbiRet::success(13)
     );
     let _ = sbi.info;
 }
@@ -120,6 +120,22 @@ impl rustsbi::Fence for DummyFence {
     fn remote_sfence_vma_asid(&self, _: HartMask, _: usize, _: usize, _: usize) -> SbiRet {
         SbiRet::success(6)
     }
+
+    fn remote_hfence_gvma_vmid(&self, _: HartMask, _: usize, _: usize, _: usize) -> SbiRet {
+        SbiRet::success(7)
+    }
+
+    fn remote_hfence_gvma(&self, _: HartMask, _: usize, _: usize) -> SbiRet {
+        SbiRet::success(8)
+    }
+
+    fn remote_hfence_vvma_asid(&self, _: HartMask, _: usize, _: usize, _: usize) -> SbiRet {
+        SbiRet::success(9)
+    }
+
+    fn remote_hfence_vvma(&self, _: HartMask, _: usize, _: usize) -> SbiRet {
+        SbiRet::success(10)
+    }
 }
 
 struct DummyEnvInfo;
@@ -142,14 +158,14 @@ struct RealEnvInfo;
 
 impl rustsbi::EnvInfo for RealEnvInfo {
     fn mvendorid(&self) -> usize {
-        7
+        11
     }
 
     fn marchid(&self) -> usize {
-        8
+        12
     }
 
     fn mimpid(&self) -> usize {
-        9
+        13
     }
 }