Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Current »

本章はクロスコンパイラであるARM GCCを使った手順になります。

サンプル環境の概要

ホストOS上にインストールされたC/C++testからテストを実行すると、docker execコマンドを通してDockerコンテナ上のクロスコンパイラと実行環境を用いて静的解析・単体テストを行います。ホストのソースコードをマウントして実行するため、テスト結果をホスト上のC/C++testから確認できます。

添付資料

Dockerfile
Dockerコンテナの構成内容をまとめたファイル。Docker Hub(https://hub.docker.com/)にあるUbuntu(18.04 LTS)をベースイメージとして下記パッケージをインストールした独自のイメージを作成します

  • クロスコンパイラ: GNU Arm Embedded Toolchain Version 9-2019-q4-major

  • エミュレータ: qemu-user-static パッケージ

  • ビルドユーティリティ: build-essentialパッケージ

  • その他(bzip2, wget)

custom_compiler
C/C++testのコンパイラ設定ファイル。
GNU Arm Embedded Toolchain向けにカスタマイズした設定ファイルです。

test_configs
C++testの単体テストモジュールのビルド、および実行環境(Qemu)でアプリケーションを実行するためのテストコンフィギュレーション。静的解析はC/C++testに内蔵されているビルトインテストコンフィギュレーションをそのまま使用できます。

set_env.sh/generate_BDF.sh/start_cpptest.sh

  • set_env.sh: C/C++testおよびツールチェインなどの環境変数を設定するスクリプト

  • generate_BDF.sh: Dockerコンテナ内で対象プロジェクトをビルドし、ビルドデータファイル(BDF)を作成するスクリプト

  • start_cpptest.sh: Dockerコンテナ内でテスト実現にするための設定をしたうえでC/C++testを起動するスクリプト

integration/docker
C/C++testのインストールディレクトリに配置して使用します。
ホストOS上のC/C++testからコンテナ内のコンパイラとリンカーを実行するためのスクリプトです。

サンプル環境構築手順

本手順書では、以下のディレクトリを前提として説明しています。これらのディレクトリパスはご利用の環境により異なりますので適宜読み替えてください。

  • <ホームディレクトリ>: /home/cpptest

  • <ツールディレクトリ>: /opt/app/parasoft

  • <C/C++testインストールディレクトリ>: /opt/app/parasoft/cpptest

事前準備 - 付属資料の配置&初期設定

  1. 付属資料を配置するための新規のディレクトリを<ホームディレクトリ>に作成します。
    ※ディレクトリ名称は任意ですが、マルチバイト文字は含めないようにしてください。

$ mkdir /home/cpptest/work_docker
  1. 手順1.のディレクトリに移動後、付属資料(Attachment.zipファイル)を配置し、展開します。
    以降、work_dockerディレクトリを<付属資料ディレクトリ>とします。

$ unzip Attachment.zip
  1. <付属資料ディレクトリ>/cpptest_work/tools/integrationディレクトリを<C/C++testインストールディレクトリ>にコピーします。

$ cp -r integration /opt/app/parasoft/cpptest
  1. <付属資料ディレクトリ>/cpptest_work/tools/custom_compiler/arm-none-eabi-gcc_v9_x/gui.propertiesをエディタで開き、cppExecutablecExecutablelinkerExecutableの三か所に記載されている<C/C++testインストールディレクトリ>を実際の環境にあわせて変更します。

[gui.properties] ※該当箇所のみ抜粋
cppExecutable=/opt/app/parasoft/cpptest/integration/docker/remote-arm-none-eabi-g++
cExecutable=/opt/app/parasoft/cpptest/integration/docker/remote-arm-none-eabi-gcc
linkerExecutable=/opt/app/parasoft/cpptest/integration/docker/remote-arm-none-eabi-g++
  1. <付属資料ディレクトリ>/cpptest_work/tools/set_env.shをエディタで開き、CPPTEST_INS_DIR変数<C/C++testインストールディレクトリ>を実際の環境にあわせて変更します。

export CPPTEST_INS_DIR=/opt/app/parasoft/cpptest
  1. start_cpptest.shを実行し、CC/++testを起動します。

$ ./start_cpptest.sh
  1. [Parasoft] > [設定]にて、設定ダイアログを開き、ツリーより[Parasoft] > [コンフィギュレーション]を選択します。

  2. それぞれ以下のように設定し、[適用]をクリック、[OK]を選択します。

ユーザー コンフィギュレーション: <付属資料ディレクトリ>/cpptest_work/tools/test_config
ユーザー定義ルール: チェック無効
カスタム コンパイラ: <付属資料ディレクトリ>/cpptest_work/tools/custom_compiler

  1. [Parasoft] > [テストコンフィギュレーション]にて、テストコンフィギュレーションダイアログを開き、ツリーより[Parasoft] > [ユーザー定義] > [02. シンボル情報収集(docker)]を選択します。

  2. テストコンフィギュレーションダイアログの右側より [実行]タブを選択し、[実行の詳細] > [テスト実行フロー:]下のRemote execution commandの右側の<C/C++testのインストールディレクトリ>を実際の環境にあわせて変更します。変更後、[適用]をクリック、[閉じる]を選択します。

  3. [Parasoft] > [ユーザー定義] > [03. Run Unit Tests for ARM(docker)] に対しても、手順10.を行い、実際の環境にあわせて変更します。

以上で、初期設定は完了となります。この手順は初回のみ実施いただければ問題ありません。

このセクションの内容:

  • No labels