From 65df061ec698a392aa0edc9a700a1f39f77668c1 Mon Sep 17 00:00:00 2001
From: lcy1996 <992195697@qq.com>
Date: Fri, 5 Oct 2018 22:16:07 +0800
Subject: [PATCH] Update expr1 report.
---
docs/OSTrain2018docs-g4/expr1/report-lcy.md | 29 ++++++++++++++++++++-
1 file changed, 28 insertions(+), 1 deletion(-)
mode change 100644 => 100755 docs/OSTrain2018docs-g4/expr1/report-lcy.md
diff --git a/docs/OSTrain2018docs-g4/expr1/report-lcy.md b/docs/OSTrain2018docs-g4/expr1/report-lcy.md
old mode 100644
new mode 100755
index 43e5b4e..52aea10
--- a/docs/OSTrain2018docs-g4/expr1/report-lcy.md
+++ b/docs/OSTrain2018docs-g4/expr1/report-lcy.md
@@ -8,4 +8,31 @@
## 3 分析测试
### 3.0 现有测试分析
-现有框架下已经有sync和thread的test但是riscv32下这些test均无法编译通过,询问王润基后推测原因是目前编译器对RISCV原子指令支持不全。因此尝试从ucore lab中移植一些test过来,便于后续lab的裁剪。
+现有RustOS shell下已经包含了一部分测试程序,测试结果如下(以下测试结果基于arch=riscv32下):
+| 测试程序 | 是否通过 | 错误原因分析 |
+| :------: | :------: | :------: |
+| waitkill | 通过 | |
+| sleep | 通过 | |
+| spin | 通过 | |
+| sh | 未通过 | unknown syscall id: 0x66, args: [0, 7000ff97, 1, 7000ff70, 25, 73]
可能是由于尚未实现sh这一系统调用 |
+| forktest | 通过 | |
+| faultread | 未通过 | [INFO] open: path: "stdin:", flags: 0
[INFO] open: path: "stdout:", flags: 1
[ERROR] Process 2 error
推测是标准输入输出的错误? |
+| forktree | 未通过 | PANIC in src/lang.rs at line 22
out of memory
似乎是由于“目前所有没被wait过的进程退出后,内存不会被回收”导致的问题|
+| divzero | 通过 | |
+| yield | 通过 | |
+| faultreadkernel | 未通过| 原因同faultread |
+| exit | 通过 | |
+| softint | 未实现? | |
+| badsegment | 通过 | |
+| hello | 通过 | |
+| ls | 未实现 | |
+| priority | 通过 | |
+| badarg | 未通过 | PANIC in /home/lcy1996/.rustup/toolchains/nightly-2018-09-18-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libcore/option.rs at line 345
called \`Option::unwrap()\` on a \`None\` value
内核bug?错误原因需要进一步探索|
+| testbss | 未通过 | PANIC in /home/lcy1996/.rustup/toolchains/nightly-2018-09-18-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libcore/option.rs at line 1000
failed to allocate frame
内核bug?错误原因需要进一步探索|
+| pgdir | 未通过 | [ERROR] unknown syscall id: 0x1f, args: [a, ffff6ad9, 2, 0, 15, ffffffff]
推测原因是尚未实现0x1f这个系统调用 |
+| matrix | 通过 | |
+| sleepkill | 未通过 | PANIC in /home/lcy1996/Documents/OSTrain/RustOS/crate/process/src/event_hub.rs at line 55
attempt to add with overflow
推测与forktree出错原因相同|
+
+此外现有框架下已经有sync和thread的test但是riscv32下这些test均无法编译通过,询问王润基后推测原因是目前编译器对RISCV原子指令支持不全。因此尝试从ucore lab中移植一些test过来,便于后续lab的裁剪。
+
+