Sha256: d09c64499b2f341da9c448652604f5e90a9478272c36bf77a9b458be5e2c198d

Contents?: true

Size: 1.66 KB

Versions: 3

Compression:

Stored size: 1.66 KB

Contents

require 'test/unit'
require_relative "../build/parallel_docker_build"

class TestParallelDockerBuild < Test::Unit::TestCase
  def setup
    File.write "File0", <<-EOT
      FROM a
      RUN a
      RUN d
    EOT
    File.write "File1", <<-EOT
      FROM a
      RUN a
      RUN d
      RUN f \\
          g
    EOT
    File.write "File2", <<-EOT
      FROM a
      RUN b
      RUN c
      RUN d
    EOT
    File.write "File3", <<-EOT
      FROM a
      RUN b
      RUN c
      RUN d
    EOT
  end

  def test_tasks
    RakeCompilerDock::ParallelDockerBuild.new(%w[ File0 File1 File2 File3 ], task_prefix: "y")

    assert_operator Rake::Task["File0"].prerequisites, :include?, "yFile0File1"
    assert_operator Rake::Task["File1"].prerequisites, :include?, "yFile1"
    assert_operator Rake::Task["yFile1"].prerequisites, :include?, "yFile0File1"
    assert_operator Rake::Task["yFile0File1"].prerequisites, :include?, "yFile0File1File2File3"

    assert_operator Rake::Task["File2"].prerequisites, :include?, "yFile2File3"
    assert_operator Rake::Task["File3"].prerequisites, :include?, "yFile2File3"
    assert_operator Rake::Task["yFile2File3"].prerequisites, :include?, "yFile0File1File2File3"
  end

  def test_common_files
    RakeCompilerDock::ParallelDockerBuild.new(%w[ File0 File1 File2 File3 ], task_prefix: "y")

    assert_equal "FROM a\nRUN a\nRUN d\nRUN f \\\ng\n", read_df("yFile1")
    assert_equal "FROM a\nRUN a\nRUN d\n", read_df("yFile0File1")
    assert_equal "FROM a\nRUN b\nRUN c\nRUN d\n", read_df("yFile2File3")
    assert_equal "FROM a\n", read_df("yFile0File1File2File3")
  end

  def read_df(fn)
    File.read("tmp/docker/#{fn}").each_line.map(&:lstrip).join
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
rake-compiler-dock-1.1.0 test/test_parallel_docker_build.rb
rake-compiler-dock-1.0.1 test/test_parallel_docker_build.rb
rake-compiler-dock-1.0.0 test/test_parallel_docker_build.rb