CMAKE ctest を使用して単体テストケースを作成しようとしています。
カスタムの加算および逆関数で単体テストを実行したいと考えています。
追加テストケースと逆テストケースの違い
- addは 2 つの入力を使用しますが、inverseは単一の入力を使用します
- 両方のテスト ケースの最初の入力のアドレスが異なります
私のcmakeファイルのスニップショートを以下に示します:
add_custom_command(
OUTPUT ${output_file_y} ${output_file_txt}
COMMAND ${MY_EXECUTABLE}
ARGS
-lh ${bin_file} 0x10000000
if((${function} STREQUAL "add"))
-lh ${input_file0} 0x10100000
-lh ${input_file1} 0x10200000
elseif((${function} STREQUAL "inverse"))
-lh ${input_file0} 0x10c00000
endif()
${options}
-outfile ${output_file_y}
> ${output_file_txt}
MAIN_DEPENDENCY ${bin_file}
DEPENDS ${map_file} ${input_file0}
COMMENT "Executing ${base_name_mangled}"
)
これを行った後、私はErrorの下になりました:
/bin/sh: 1: 構文エラー: "(" 予期しない忍者: ビルドが停止しました:
サブコマンドが失敗しました。
仮固定:
if((${function} STREQUAL "add"))
add_custom_command(
OUTPUT ${output_file_y} ${output_file_txt}
COMMAND ${MY_EXECUTABLE}
ARGS
-lh ${bin_file} 0x10000000
-lh ${input_file0} 0x10100000
-lh ${input_file1} 0x10200000
${options}
-outfile ${output_file_y}
> ${output_file_txt}
MAIN_DEPENDENCY ${bin_file}
DEPENDS ${map_file} ${input_file0}
COMMENT "Executing ${base_name_mangled}"
)
elseif((${function} STREQUAL "inverse"))
add_custom_command(
OUTPUT ${output_file_y} ${output_file_txt}
COMMAND ${MY_EXECUTABLE}
ARGS
-lh ${bin_file} 0x10000000
-lh ${input_file0} 0x10c00000
${options}
-outfile ${output_file_y}
> ${output_file_txt}
MAIN_DEPENDENCY ${bin_file}
DEPENDS ${map_file} ${input_file0}
COMMENT "Executing ${base_name_mangled}"
)
endif()
しかし、一時的な修正では、より多くのコピペコードが含まれています。これを避けて、両方の add_custom_command を結合したいと考えています。
そうする方法はありますか?