close

如何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

 

 

 

arrow
arrow

    夢夢 發表在 痞客邦 留言(0) 人氣()