跳至內容

ROSE 編譯器框架/測試

來自華夏公益教科書,開放的書籍,為了開放的世界

ROSE 使用Jenkins 來實現持續整合軟體開發流程。它利用一系列軟體包來測試其正確性、健壯性和效能。

make check 規則

[編輯 | 編輯原始碼]

我們利用 make check 規則來進行內部測試。

檢查流水線命令的存在狀態

[編輯 | 編輯原始碼]

在 bash 指令碼中,我們可以使用管道 | 如下所示

  • command1 | command2 : 流水線中每個命令的輸出都連線到下一個命令的輸入

每個命令都在其自己的子 shell 中執行,退出狀態:最後一個命令的退出狀態

要捕獲任何命令的返回碼,請使用 ${PIPESTATUS[0]}

例如:使用管道將只返回最後一個命令 'fold'' 的狀態。我們添加了一個測試來捕獲第一個命令的返回狀態

 ../autoPar -c $(srcdir)/$(@:.o=.c) | fold >$(@:.o=.out); test ${PIPESTATUS[0]} = 0

基準測試

[編輯 | 編輯原始碼]

ROSE 的 Jenkins 使用的軟體包括

  • SPEC CPU 2006 基準測試:目前支援一個子集
  • SPEC OMP 基準測試:目前支援一個子集
  • NAS 並行基準測試:由美國國家航空航天局艾姆斯研究中心開發。C 版本(定製版本)和 OpenMP 版本都已使用
  • Plum Hall C 和 C++ 驗證測試套件:目前支援一個子集
  • Jt++ - Java 符合性測試:http://modena.us/

Modena Jt++ 測試套件

[編輯 | 編輯原始碼]

1. 克隆 Modena 測試套件儲存庫

  $ git clone ssh://rose-dev@rose-git/modena

2. Autotools 設定

  $ cd modena
  $ ./build.sh
  + libtoolize --force --copy --ltdl --automake
  + aclocal -I ./acmacros -I ./acmacros/ac-archive -I /usr/share/aclocal
  + autoconf
  + automake -a -c
  configure.ac:4: installing `./install-sh'
  configure.ac:4: installing `./missing'

3. 環境引導

  $ source /nfs/apps/python/latest/setup.sh

4. 構建和測試!

  $ mkdir buildTree
  $ cd buildTree
  $ ../configure \
          --with-sqlalchemy=${HOME}/opt/python/sqlalchemy/0.7.5/lib64/python2.4/site-packages \
          --with-target-java-interpreter=java \
          --with-target-java-compiler=testTranslator \
          --with-target-java-compiler-flags="-ecj:1.6" \
          --with-host-java-compiler-flags="-source 1.6"

使用外部基準測試

[編輯 | 編輯原始碼]

我們的設定方式是

  • 在基準測試中,我們將基準測試的構建系統更改為呼叫已安裝的 ROSE 工具(identityTranslator 或您的 RTED 工具)。
  • 在 Jenkins 測試作業中,
    • 構建並安裝測試的 ROSE,準備環境變數。
    • 轉到具有修改後構建系統的基準測試。構建並執行基準測試。

基本上,測試作業應該模擬終端使用者如何使用 ROSE 工具,而不是為每個不同的基準測試調整 ROSE。

NAS 並行基準測試

[編輯 | 編輯原始碼]

我們的迴歸測試中包含 NPB。

要獲取基準測試

git clone rose-dev@rosecompiler1.llnl.gov:testsuite/npb-c-parallel.git

在基準測試中,有一個 make.def 檔案,其中包含有關使用哪些編譯器和選項的配置。該配置應該正確,但一些路徑可能需要更改為指向您的 ROSE 版本。

之後,鍵入 "make suite" 來構建整個基準測試套件。或者鍵入 "make mg class=A" 來只構建相關的基準測試。

華夏公益教科書