Browse Source

tests: add test cases for Nacl, Pmu, Reset & Fence in FullyImplemented

Signed-off-by: sunyu <2772196789@qq.com>
sunyu 1 year ago
parent
commit
4152cc298c
1 changed files with 40 additions and 21 deletions
  1. 40 21
      tests/build-full.rs

+ 40 - 21
tests/build-full.rs

@@ -72,7 +72,26 @@ fn rustsbi_impl_id() {
         timer: DummyTimer,
         info: DummyEnvInfo,
     };
-    assert_eq!(sbi.handle_ecall(0x10, 0x1, [0; 6]).value, 4);
+    assert_eq!(sbi.handle_ecall(0x4E41434C, 0x0, [0; 6]), SbiRet::success(13));
+    assert_eq!(sbi.handle_ecall(0x4E41434C, 0x1, [0; 6]), SbiRet::success(14));
+    assert_eq!(sbi.handle_ecall(0x4E41434C, 0x2, [0; 6]), SbiRet::success(15));
+    assert_eq!(sbi.handle_ecall(0x4E41434C, 0x3, [0; 6]), SbiRet::success(16));
+    assert_eq!(sbi.handle_ecall(0x4E41434C, 0x4, [0; 6]), SbiRet::success(17));
+    assert_eq!(sbi.handle_ecall(0x504D55, 0x0, [0; 6]), SbiRet::success(18));
+    assert_eq!(sbi.handle_ecall(0x504D55, 0x1, [0; 6]), SbiRet::success(19));
+    assert_eq!(sbi.handle_ecall(0x504D55, 0x2, [0; 6]), SbiRet::success(20));
+    assert_eq!(sbi.handle_ecall(0x504D55, 0x3, [0; 6]), SbiRet::success(21));
+    assert_eq!(sbi.handle_ecall(0x504D55, 0x4, [0; 6]), SbiRet::success(22));
+    assert_eq!(sbi.handle_ecall(0x504D55, 0x5, [0; 6]), SbiRet::success(23));
+    assert_eq!(sbi.handle_ecall(0x504D55, 0x6, [0; 6]), SbiRet::success(24));
+    assert_eq!(sbi.handle_ecall(0x53525354, 0x0, [0; 6]), SbiRet::success(25));
+    assert_eq!(sbi.handle_ecall(0x52464E43, 0x0, [0; 6]), SbiRet::success(26));
+    assert_eq!(sbi.handle_ecall(0x52464E43, 0x1, [0; 6]), SbiRet::success(27));
+    assert_eq!(sbi.handle_ecall(0x52464E43, 0x2, [0; 6]), SbiRet::success(28));
+    assert_eq!(sbi.handle_ecall(0x52464E43, 0x3, [0; 6]), SbiRet::success(29));
+    assert_eq!(sbi.handle_ecall(0x52464E43, 0x4, [0; 6]), SbiRet::success(30));
+    assert_eq!(sbi.handle_ecall(0x52464E43, 0x5, [0; 6]), SbiRet::success(31));
+    assert_eq!(sbi.handle_ecall(0x52464E43, 0x6, [0; 6]), SbiRet::success(32));
     let sbi = AlternateName {
         dbcn: DummyConsole,
         cppc: DummyCppc,
@@ -203,22 +222,22 @@ struct DummyNacl;
 
 impl rustsbi::Nacl for DummyNacl {
     fn probe_feature(&self, _: u32) -> SbiRet {
-        unimplemented!()
+        SbiRet::success(13)
     }
     fn set_shmem(&self, _: SharedPtr<[u8; NATIVE]>, _: usize) -> SbiRet {
-        unimplemented!()
+        SbiRet::success(14)
     }
 
     fn sync_csr(&self, _: usize) -> SbiRet {
-        unimplemented!()
+        SbiRet::success(15)
     }
 
     fn sync_hfence(&self, _: usize) -> SbiRet {
-        unimplemented!()
+        SbiRet::success(16)
     }
 
     fn sync_sret(&self) -> SbiRet {
-        unimplemented!()
+        SbiRet::success(17)
     }
 }
 
@@ -226,31 +245,31 @@ struct DummyPmu;
 
 impl rustsbi::Pmu for DummyPmu {
     fn num_counters(&self) -> usize {
-        unimplemented!()
+        18
     }
 
     fn counter_get_info(&self, _: usize) -> SbiRet {
-        unimplemented!()
+        SbiRet::success(19)
     }
 
     fn counter_config_matching(&self, _: usize, _: usize, _: usize, _: usize, _: u64) -> SbiRet {
-        unimplemented!()
+        SbiRet::success(20)
     }
 
     fn counter_start(&self, _: usize, _: usize, _: usize, _: u64) -> SbiRet {
-        unimplemented!()
+        SbiRet::success(21)
     }
 
     fn counter_stop(&self, _: usize, _: usize, _: usize) -> SbiRet {
-        unimplemented!()
+        SbiRet::success(22)
     }
 
     fn counter_fw_read(&self, _: usize) -> SbiRet {
-        unimplemented!()
+        SbiRet::success(23)
     }
 
     fn counter_fw_read_hi(&self, _: usize) -> SbiRet {
-        unimplemented!()
+        SbiRet::success(24)
     }
 }
 
@@ -258,7 +277,7 @@ struct DummyReset;
 
 impl rustsbi::Reset for DummyReset {
     fn system_reset(&self, _: u32, _: u32) -> SbiRet {
-        unimplemented!()
+        SbiRet::success(25)
     }
 }
 
@@ -266,31 +285,31 @@ struct DummyFence;
 
 impl rustsbi::Fence for DummyFence {
     fn remote_fence_i(&self, _: HartMask) -> SbiRet {
-        unimplemented!()
+        SbiRet::success(26)
     }
 
     fn remote_sfence_vma(&self, _: HartMask, _: usize, _: usize) -> SbiRet {
-        unimplemented!()
+        SbiRet::success(27)
     }
 
     fn remote_sfence_vma_asid(&self, _: HartMask, _: usize, _: usize, _: usize) -> SbiRet {
-        unimplemented!()
+        SbiRet::success(28)
     }
 
     fn remote_hfence_gvma_vmid(&self, _: HartMask, _: usize, _: usize, _: usize) -> SbiRet {
-        unimplemented!()
+        SbiRet::success(29)
     }
 
     fn remote_hfence_gvma(&self, _: HartMask, _: usize, _: usize) -> SbiRet {
-        unimplemented!()
+        SbiRet::success(30)
     }
 
     fn remote_hfence_vvma_asid(&self, _: HartMask, _: usize, _: usize, _: usize) -> SbiRet {
-        unimplemented!()
+        SbiRet::success(31)
     }
 
     fn remote_hfence_vvma(&self, _: HartMask, _: usize, _: usize) -> SbiRet {
-        unimplemented!()
+        SbiRet::success(32)
     }
 }