日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

shlab测试笔记

發布時間:2025/3/13 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 rtest01

1.2 使用測試文件測試tsh

make test01

1.3 使用命令行測試tsh/tshref

1.3.1 測試tsh

./tsh

1.3.2測試tshref

./tshref

1.4 測試文件提到的信號轉化為鍵盤輸入

  • EOF:ctrl+d
  • SIGINT:ctrl+c
  • SIGTSTP:ctrl+z
  • 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使用命令行測試

  • 運行tshref./tshref
  • 輸入quit指令quit
  • 如果跳出tshref說明有quit指令,如果沒有跳出說明沒有這個指令
  • 2.3 trace.03

    2.3.1 測試目的

    測試能否運行一個前臺作業

    2.3.2 使用命令行測試

  • 運行tshref./tshref
  • 運行一個前臺作業(myspin的功能是使計算機睡眠,后面的數字是睡眠的時間,單位是秒)./myspin 7
  • 如果運行前臺作業后等待指定的時間后才出現下一行tsh>,則說明可以運行一個前臺作業,如果沒有等待指定的時間立刻出現下一行說明這個程序不能運行一個前臺作業
  • 2.4 trace.04

    2.4.1 測試目的

    測試能否運行一個后臺作業

    2.4.2 使用命令行測試

  • 運行tshref./tshref
  • 輸入一條后臺作業指令(在指令后加&表示在后臺運行)./myspin 5 &
  • 正確結果:出現一條帶有作業號的作業信息
  • 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 使用命令行測試

  • 運行tshref./tshref
  • 運行前臺作業./myspin 32
  • 在前臺作業執行完之前鍵入ctrl+c(發送信號SIGINT),終止當前前臺作業
  • 2.7 trace.07

    2.7.1 測試目的

    只向前臺作業發送信號SIGINT

    2.7.2 使用命令行測試

  • 運行tshref
  • 執行前臺作業./myspin 34
  • 鍵入ctrl+c(發送信號SIGINT)
  • 執行后臺作業./myspin 34 &
  • 輸入jobs指令,打印出作業列表中顯示只有前臺作業被終止,后臺作業還在正常執行jobs
  • 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 使用命令行測試

  • 運行tshref
  • 執行前臺作業./myspin 6
  • 在前臺作業執行完之前,鍵入ctrl+z停止正在執行的前臺作業(發送信號SIGTSTP)
  • 輸入指令jobs,可以看到當前前臺作業已經被停止jobs
  • 輸入指令bg,后面的參數是想重啟的進程的編號bg %1 或者bg 2485
  • 結果顯示已經被停止的前臺作業重啟并在后臺運行
  • 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 使用命令行測試

  • 運行tshref
  • 執行前臺作業./mysplit 4
  • 在前臺作業執行完之前,鍵入ctrl+c終止這個前臺作業
  • 使用ps查看所有進程的狀態/bin/ps a
  • 結果,看到進程表中沒有進程號為2653的進程,因為這個進程是被終止。
  • 2.12 trace.12

    2.12.1 測試目的

    向前臺進程組中所有進程發送SIGTSTP信號

    2.12.2 使用命令行測試

  • 運行tshref
  • 執行前臺進程./myspin 4
  • 在前臺進程完成之前,鍵入ctrl+z
  • 輸入jobs指令,打印所有后臺進程,顯示出已經被停止的前臺作業jobs
  • 使用ps查看所有進程列表,顯示被停止的前臺作業的進程號,并且進程狀態是stop,因為進程只是被暫時中止,沒有被徹底停止
  • /bin/ps a

    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. 驗收提問的問題

  • 怎樣實現waitfg函數
    使用一個while循環,如果不是前臺作業則死等,是前臺作業則跳出循環。
  • wait_pid(pid_t pid,int status,int options)的三個參數分別是什么含義;
    第一個參數pid是要等待的進程號,如果pid=-1則不等待指定的進程號,只要有一個進程結束就結束等待;
    第二個參數status,如果不為空則將子進程的中止狀態存入status指向的位置,如果為空則表示父進程不關心子進程;
    第三個參數options標識要等待的子進程的狀態;
  • 總結

    以上是生活随笔為你收集整理的shlab测试笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。