shlab测试笔记
shlab測試筆記
- 1.常用指令
- 1.1 使用測試文件測試tshref
- 1.2 使用測試文件測試tsh
- 1.3 使用命令行測試tsh/tshref
- 1.4 測試文件提到的信號轉化為鍵盤輸入
- 2. 測試文件
- 2.1 trace.01
- 2.1.1 測試目的
- 2.1.2使用命令行測試
- 2.2 trace.02
- 2.2.1 測試目的
- 2.2.2使用命令行測試
- 2.3 trace.03
- 2.3.1 測試目的
- 2.3.2 使用命令行測試
- 2.4 trace.04
- 2.4.1 測試目的
- 2.4.2 使用命令行測試
- 2.5 trace.05
- 2.5.1 測試目的
- 2.5.2 使用命令行測試
- 2.6 trace.06
- 2.6.1 測試目的
- 2.6.2 使用命令行測試
- 2.7 trace.07
- 2.7.1 測試目的
- 2.7.2 使用命令行測試
- 2.8 trace.08
- 2.8.1 測試目的
- 2.8.2 使用命令行測試
- 2.9 trace.09
- 2.9.1 測試目的
- 2.9.2 使用命令行測試
- 2.10 trace.10
- 2.10.1 測試目的
- 2.10.2 使用命令行測試
- 2.11 trace.11
- 2.11.1 測試目的
- 2.11.2 使用命令行測試
- 2.12 trace.12
- 2.12.1 測試目的
- 2.12.2 使用命令行測試
- 2.13 trace.13
- 2.13.1 測試目的
- 2.13.2 使用命令行測試
- 2.14 trace.14
- 2.14.1 測試目的
- 2.14.2 使用命令行測試
- 2.15 trace.15
- 2.15.1 測試目的
- 2.15.2 使用命令行測試
- 2.16 trace.16
- 2.16.1 測試目的
- 2.16.2 使用命令行測試
- 3. 驗收提問的問題
記錄每個測試文件的測試目的和怎樣使用命令行完成該測試內容。
1.常用指令
1.1 使用測試文件測試tshref
make rtest011.2 使用測試文件測試tsh
make test011.3 使用命令行測試tsh/tshref
1.3.1 測試tsh
./tsh1.3.2測試tshref
./tshref1.4 測試文件提到的信號轉化為鍵盤輸入
2. 測試文件
在這個模塊中,所有的測試對象都是tshref,如果想測試tsh,只需要對照前面寫的指令修改即可。
2.1 trace.01
2.1.1 測試目的
測試讀取EOF指令
2.1.2使用命令行測試
進入tshref
傳入EOF信號
Ctrl+d(類似于ctrl+c是復制快捷鍵,ctrl+d相當于傳入一個EOF信號)
測試結果
2.2 trace.02
2.2.1 測試目的
測試quit指令
2.2.2使用命令行測試
2.3 trace.03
2.3.1 測試目的
測試能否運行一個前臺作業
2.3.2 使用命令行測試
2.4 trace.04
2.4.1 測試目的
測試能否運行一個后臺作業
2.4.2 使用命令行測試
2.5 trace.05
2.5.1 測試目的
測試jobs指令(打印所有后臺作業)
2.5.2 使用命令行測試
運行tshref
./tshref運行一條后臺作業
./myspin 45 &再次運行一條后臺作業
./myspin 56 &輸入jobs指令,打印所有后臺作業(只會打印正在運行的后臺作業,如果運行的后臺作業睡眠時間設置的很短,可能在執行jobs指令時已經將后臺作業執行完畢,此時已經完成的后臺作業不會出現在jobs打印的后臺作業列表中)
2.6 trace.06
2.6.1 測試目的
向前臺作業發送SIGINT信號
2.6.2 使用命令行測試
2.7 trace.07
2.7.1 測試目的
只向前臺作業發送信號SIGINT
2.7.2 使用命令行測試
2.8 trace.08
2.8.1 測試目的
只向前臺作業發送信號SIGINT
2.8.2 使用命令行測試
同2.7.2
2.9 trace.09
2.9.1 測試目的
測試指令bg(重新啟動停止運行的作業并在后臺運行)
2.9.2 使用命令行測試
2.10 trace.10
2.10.1 測試目的
測試指令fg(重啟已經被停止的進程并在前臺運行)
2.10.2 使用命令行測試
運行tshref
執行前臺作業
./myspin 7在前臺作業執行完之前,鍵入ctrl+z停止作業執行
輸入指令fg+進程號
fg %1或者
fg 2488結果顯示已經被停止的進程被重啟并在前臺執行
2.11 trace.11
2.11.1 測試目的
向前臺進程組中所有進程發送SIGINT信號
2.11.2 使用命令行測試
2.12 trace.12
2.12.1 測試目的
向前臺進程組中所有進程發送SIGTSTP信號
2.12.2 使用命令行測試
2.13 trace.13
2.13.1 測試目的
重啟進程組中所有被停止的進程
2.13.2 使用命令行測試
2.14 trace.14
2.14.1 測試目的
測試簡單的錯誤處理(處理方式:不執行錯誤指令,并打印“指令錯誤”)
2.14.2 使用命令行測試
2.15 trace.15
2.15.1 測試目的
發送信號到進程的混合命令
2.15.2 使用命令行測試
2.16 trace.16
2.16.1 測試目的
測試shell能否處理來自其他進程的SIGINT信號和SIGTSTP信號
2.16.2 使用命令行測試
3. 驗收提問的問題
使用一個while循環,如果不是前臺作業則死等,是前臺作業則跳出循環。
第一個參數pid是要等待的進程號,如果pid=-1則不等待指定的進程號,只要有一個進程結束就結束等待;
第二個參數status,如果不為空則將子進程的中止狀態存入status指向的位置,如果為空則表示父進程不關心子進程;
第三個參數options標識要等待的子進程的狀態;
總結
- 上一篇: 软件工程导论个人项目 -- 中小学数学卷
- 下一篇: 使用remix和matemask部署智能