引数で渡す2つのポインタの相対的な位置関係を設定する方法

テスト対象の関数 int cut_str_copy() は、引数として渡されたポインタ pos1 と pos2 の間の範囲の配列を dst に入れて、その配列の長さを戻り値として返します。ただし、dst に設定するのは pos1 と pos2 のデータも含み、pos1 と pos2 のアドレスの大小が逆転している場合もデータの順番は元のままとする仕様です。

 

  • テスト対象関数

 

次の例では、データソースに、まず元の配列データとして src_data を設定しています。そして、引数 pos1 に設定する配列内の位置 pos1_index と、 pos2 に設定する配列内の位置 pos2_index を設定します。dst_data は関数を実行したときに、dst に設定されるべきデータです。

  • テストケースエディターでの設定例

 

変数 _src_data にCPPTEST_DS_GET_CSTR()でデータソースから src_data の配列データを設定します。ポインタ変数 _pos1 には、配列の先頭である _src_data に、データソースから取得した pos1_index の値を足した位置を設定し、同様に、_pos2 には pos2_index の値を足した位置を設定します。呼出し後のアサーションでは、戻り値のチェックと、_dst の内容がデータソースの dst_data と等しいかどうかをCPPTEST_ASSERT_MEM_BUFFER_EQUAL()マクロでチェックしています。

 

 

Copyright © 2022 TechMatrix Corporation. All rights reserved