如何Cross-Compile Linux Test Project for ARM-Linux Systems
step 1
下載LTP source package http://sourceforge.net/projects/ltp/
step 2
設定環境
export ARCH=arm
export CROSS_COMPILE=/usr/local/bin/gcc-linaro-5.1-2015.08-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
(使用的tooltrain路徑)
export LD_LIBRARY_PATH=/usr/lib:/usr/local/bin/gcc-linaro-5.1-2015.08-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/lib/arm-linux-gnueabihf
export CC=${CROSS_COMPILE}gcc
export CPP=${CROSS_COMPILE}cpp
export CXX=${CROSS_COMPILE}g++
export LD=${CROSS_COMPILE}ld
export AR=${CROSS_COMPILE}ar
export RANLIB=${CROSS_COMPILE}ranlib
export STRIP=${CROSS_COMPILE}strip
step 3
CPPFLAGS="-D__linux__ -DIOV_MAX=16 -DLINE_MAX=80 -DPATH_MAX=4096 -DPTHREAD_STACK_MIN=16384"
./configure --host=arm-linux --prefix=/home/ping_lai/auto-ltp/ltp-full-20150420/install_me_here/opt/ltp --with-open-posix-testsuite
make
make install
都沒有error就完成了!!!
Linux Test Project簡單介紹
腳本介紹
IDcheck.sh 檢查系統是否缺少執行LTP測試套件所需要的用戶和用戶組,如果缺少則為LTP測試套件創建所需要的用戶和用戶組。
runltplite.sh 用來測試LTP安裝,也可用來對LTP測試套件的子項目進行測試。
runltp 能夠用來測試LTP測試套件的主要項目,可以指定測項進行組合測試。其中包括:
- 硬碟I/O存取測試。
- 記憶體管理壓力測試。
- IPC壓力測試。
- SCHED測試。
- Common line的驗證測試。
- 系统調用功能的驗證測試。
ver_linux 可用來獲取硬體、軟體、環境等訊息。
runalltests.sh 測試內容同runltp,執行全部測項。
ltpstress.sh 壓力測試
- NFS 壓力測試。
- 內存管理壓力測試。
- 文件系統壓力測試。
- 數學 (浮點) 測試。
- 多線程壓力測試。
- 硬碟 I/O 測試。
- IPC (pipeio, semaphore) 測試。
- 系統調用功能的驗證測試。
- 網路壓力測試。
目錄介紹
bin-存放LTP測試的輔助腳本
results-default存放測試結果
testcases-存放測試項目
output-default存放測試記錄
share-腳本使用說明
runtest-用來連結testscripts與testcases的驅動程式
lib-通用函式庫
日誌內測試結果意義
TPASS - Test has passed.
TFAIL - Test has failed.
TINFO - General message.
TBROK - Something has failed in test preparation phase.
TCONF - test is not appropriate for current configuration (syscall not implemented, unsupported arch, …)
TFAIL - test has failed
LTP的實際運行
初始測試 (runltp or runalltest.sh) - 通過初始測試是開始測試的必要條件。
初始測試包括LTP測試套件在硬體和操作系統上成功運轉,這些硬體和操作系統將用於可靠運轉。
runltp使用说明
用法 : ./runltp [option] [command]
舉例 : ./runltp -p -l /home/ltpresult -d /home/tmp -o /home/ltpoutput -C /home/ltpfailed -t 1d &
-a EMAIL_TO 發送報告到只訂的E-mail
-c NUM_PROCS CPU數量,default為1
-C FAILCMDFILE 失敗案例的檔案
-d IMPDIR tmp檔放置位置,default為/tmp
-e 輸出目前LTP版本的日期
-f CMDFILES 執行自定義案例,用逗號隔开(CMDFILES指runtest内的驅動程式)
-g HTMLFILE 增加html格式的輸出文件
-h 使用說明訊息
-i NUM_PROCS IO bus的process數量
-l LOGFILE 測試日誌的檔案
-N 增加所有網路測項
-n 後台測試網路傳輸
-o OUTPUTFILE 測試結果的檔案
-p 指定日誌格式
-t DURATION 設定執行時間(s秒,m分,h小時,d天)
-T REPETITION 重複執行測試
-x INSTALL 同時執行多個測試場景
壓力測試 (ltpstress.sh) - 壓力測試可以驗證產品在系統高使用率時的穩定性。
在使用網路與內存管理的同時并行地運行大範圍的內核組件,並在測試系統上生成高壓力負荷。這個腳本執行:
在使用testscripts/ltpstress.sh腳本之前需要對系統進行配置
-rsh必須配置完畢並在運行。
-內核支持NFS,並且安裝NFS軟件,通過網絡測試。
-"sar"或"top"工具需要被安裝,執行ltpstress時需要添加"sar"或"top"工具。# yum install sysstat
./ltpstress.sh -d /tmp/sardata -l /tmp/ltpstress.log -I /tmp/iofile -i 5 -m 128 -t 24 -S
-d:指定sar或top記錄文件,默認/tmp/ltpstress.data
-l:記錄測試結果到/tmp/ltpstress.log (小寫L)
-I:記錄"iostat"結果到iofile,默認是/tmp/ltpstress.iostat (大寫i)
-i:指定sar或top快照時間間隔,默認為10秒
-m: 指定最小的內存使用,默認為: RAM + 1/2 swap
-n:不對網絡進行壓力測試
-S :用sar捕捉數據
-T:利用LTP修改過的top工具捕捉數據
-t: 指定測試時間
在多次長時間測試後,如果...
相同case都失敗→屬於配置問題
相同case有成功有失敗→系統穩定性不足
參考資料:
http://wenku.baidu.com/view/1d961e320b4c2e3f5727638b.html
http://tech110.blog.51cto.com/438717/737865
http://www.coctec.com/docs/linux/show-post-70211.html
https://github.com/linux-test-project/ltp/wiki/Test-Writing-Guidelines