Class: Clitest::Cmdline

Inherits:
Object
  • Object
show all
Defined in:
lib/clitest/cmdline.rb

Overview

コマンドラインテスト用のコマンドライン作成クラス

Author:

  • Yasuo Kominami

Since:

  • 0.1.0

Constant Summary collapse

CMD =

実行ファイルを呼び出すシェルスクリプトのファイル名   シェルスクリプトの引数

test_root_dir: 実行ファイルを呼び出す時のディレクトリのルートディレクトリ(このディレクトリのサブディレクトリで呼び出す)
result_file: 実行ファイルの実行結果を格納するファイルの名前
target_cmd: 実行ファイルの名前(ここで指定した名前で実行ファイルを呼び出せる必要がある-絶対パスまたは環境変数PATHでパスが指定されていること)
target_dir: 実行ファイルを呼び出すときのディレクトリ(test_root_dirからの相対パス)

Since:

  • 0.1.0

"clitest"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(bin_dir, cmd_name, test_dir, *target_cmds) ⇒ Cmdline

コマンドラインテスト用のコマンドライン作成クラスのコンストラクタ

Parameters:

  • bin_dir (String)

    実行ファイルを呼び出すシェルスクリプトを置くbinディレクトリ

  • cmd_name (String)

    実行ファイルを呼び出すシェルスクリプト名

  • test_dir (String)

    テストを実行するディレクトリ(@test_dir_pnaからの相対パス)

  • target_cmds (Array)

    実行ファイル名の配列(ここで指定した名前で実行ファイルを呼び出せる必要がある-絶対パスまたは環境変数PATHでパスが指定されていること)

Since:

  • 0.1.0



27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/clitest/cmdline.rb', line 27

def initialize(bin_dir, cmd_name, test_dir, *target_cmds)
  bin_dir = nil if bin_dir =~ /^\s*$/
  if bin_dir
    bin_dir_pn = Pathname.new(bin_dir)
    bin_dir_pn = nil unless bin_dir_pn.exist?
  end
  bin_dir_pn ||= BIN_DIR_PN
  cmd_name ||= CMD
  @test_cmd_path_pn = bin_dir_pn.join(cmd_name)
  @test_dir_pn = Pathname.new(test_dir)
  @target_cmds = target_cmds
end

Instance Attribute Details

#test_cmd_path_pnPathname (readonly)

実行ファイルを呼び出すシェルスクリプトへのパス

Returns:

  • (Pathname)

    the current value of test_cmd_path_pn

Since:

  • 0.1.0



11
12
13
# File 'lib/clitest/cmdline.rb', line 11

def test_cmd_path_pn
  @test_cmd_path_pn
end

Instance Method Details

#make_cmdline(cmd_index, target_dir, result_file, optionx, *param_names) ⇒ String

実行ファイル番号による実行ファイル用コマンドライン作成

Parameters:

  • cmd_index (String)

    実行ファイル番号(配列@target_cmdsに対する添え字)

  • target_dir (String)

    テスト実行ディレクトリ(@test_dir_pnaからの相対パス)

  • result_file (String)

    実行ファイルの実行結果を格納するファイルの名前

  • optionx (Array)

    (付加的な)コマンドラインオプション

  • param_names (Array)

    コマンドラインオプション群

Returns:

  • (String)

    コマンドライン文字列

Since:

  • 0.1.0



60
61
62
# File 'lib/clitest/cmdline.rb', line 60

def make_cmdline(cmd_index, target_dir, result_file, optionx, *param_names)
  make_cmdline_base(@target_cmds[cmd_index], target_dir, result_file, optionx, *param_names)
end

#make_cmdline_1(target_dir, result_file, optionx, *param_names) ⇒ String

1番目の実行ファイル用コマンドライン作成

Parameters:

  • target_dir (String)

    テスト実行ディレクトリ(@test_dir_pnaからの相対パス)

  • result_file (String)

    実行ファイルの実行結果を格納するファイルの名前 

  • optionx (Array)

    (付加的な)コマンドラインオプション

  • param_names (Array)

    コマンドラインオプション群

Returns:

  • (String)

    コマンドライン文字列

Since:

  • 0.1.0



70
71
72
# File 'lib/clitest/cmdline.rb', line 70

def make_cmdline_1(target_dir, result_file, optionx, *param_names)
  make_cmdline(0, target_dir, result_file, optionx, param_names)
end

#make_cmdline_2(target_dir, result_file, optionx, *param_names) ⇒ String

2番目の実行ファイル用コマンドライン作成

Parameters:

  • target_dir (String)

    テスト実行ディレクトリ(@test_dir_pnaからの相対パス)

  • result_file (String)

    実行ファイルの実行結果を格納するファイルの名前 

  • optionx (Array)

    (付加的な)コマンドラインオプション

  • param_names (Array)

    コマンドラインオプション群

Returns:

  • (String)

    コマンドライン文字列

Since:

  • 0.1.0



80
81
82
# File 'lib/clitest/cmdline.rb', line 80

def make_cmdline_2(target_dir, result_file, optionx, *param_names)
  make_cmdline(1, target_dir, result_file, optionx, param_names)
end

#make_cmdline_base(target_cmd, target_dir, result_file, optionx, *param_names) ⇒ String

実行ファイル用コマンドライン作成

Parameters:

  • target_cmd (String)

    実行ファイル

  • target_dir (String)

    テスト実行ディレクトリ(@test_dir_pnaからの相対パス)

  • result_file (String)

    実行ファイルの実行結果を格納するファイルの名前

  • optionx (Array)

    (付加的な)コマンドラインオプション

  • param_names (Array)

    コマンドラインオプション群

Returns:

  • (String)

    コマンドライン文字列

Since:

  • 0.1.0



47
48
49
50
51
# File 'lib/clitest/cmdline.rb', line 47

def make_cmdline_base(target_cmd, target_dir, result_file, optionx, *param_names)
  params = param_names.join(" ")

  "#{@test_cmd_path_pn} #{@test_dir_pn} #{result_file} #{target_cmd} #{target_dir} #{optionx} #{params}"
end