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的裁剪。 + +