Sha256: 6b76b7cd7cb91902beb4e68216b56798d14fa448d2379cbfdb594d23868e3396

Contents?: true

Size: 1.98 KB

Versions: 15

Compression:

Stored size: 1.98 KB

Contents

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

class TestParallelDockerBuild < Test::Unit::TestCase
  def setup
    @tmpdir ||= Dir.mktmpdir

    Dir.chdir(@tmpdir) do
      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
  end

  def teardown
    FileUtils.rm_rf @tmpdir
  end

  private def hd(str)
    "y" + Digest::SHA1.hexdigest(str)
  end

  def test_tasks
    Dir.chdir(@tmpdir) do
      RakeCompilerDock::ParallelDockerBuild.new(%w[ File0 File1 File2 File3 ], task_prefix: "y")
    end

    assert_operator Rake::Task["File0"].prerequisites, :include?, hd("File0File1")
    assert_operator Rake::Task["File1"].prerequisites, :include?, hd("File1")
    assert_operator Rake::Task[hd "File1"].prerequisites, :include?, hd("File0File1")
    assert_operator Rake::Task[hd "File0File1"].prerequisites, :include?, hd("File0File1File2File3")

    assert_operator Rake::Task["File2"].prerequisites, :include?, hd("File2File3")
    assert_operator Rake::Task["File3"].prerequisites, :include?, hd("File2File3")
    assert_operator Rake::Task[hd "File2File3"].prerequisites, :include?, hd("File0File1File2File3")
  end

  def test_common_files
    Dir.chdir(@tmpdir) do
      RakeCompilerDock::ParallelDockerBuild.new(%w[ File0 File1 File2 File3 ], task_prefix: "y")
    end

    assert_equal "FROM a\nRUN a\nRUN d\nRUN f \\\ng\n", read_df(hd "File1")
    assert_equal "FROM a\nRUN a\nRUN d\n", read_df(hd "File0File1")
    assert_equal "FROM a\nRUN b\nRUN c\nRUN d\n", read_df(hd "File2File3")
    assert_equal "FROM a\n", read_df(hd "File0File1File2File3")
  end

  def read_df(fn)
    File.read(File.join(@tmpdir, "/tmp/docker", fn)).each_line.map(&:lstrip).join
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
rake-compiler-dock-1.9.1 test/test_parallel_docker_build.rb
rake-compiler-dock-1.9.0 test/test_parallel_docker_build.rb
rake-compiler-dock-1.8.0 test/test_parallel_docker_build.rb
rake-compiler-dock-1.7.1 test/test_parallel_docker_build.rb
rake-compiler-dock-1.7.0 test/test_parallel_docker_build.rb
rake-compiler-dock-1.7.0.rc1 test/test_parallel_docker_build.rb
rake-compiler-dock-1.6.0 test/test_parallel_docker_build.rb
rake-compiler-dock-1.5.2 test/test_parallel_docker_build.rb
rake-compiler-dock-1.5.1 test/test_parallel_docker_build.rb
rake-compiler-dock-1.5.0 test/test_parallel_docker_build.rb
rake-compiler-dock-1.5.0.rc1 test/test_parallel_docker_build.rb
rake-compiler-dock-1.4.0 test/test_parallel_docker_build.rb
rake-compiler-dock-1.4.0.rc2 test/test_parallel_docker_build.rb
rake-compiler-dock-1.4.0.rc1 test/test_parallel_docker_build.rb
rake-compiler-dock-1.3.1 test/test_parallel_docker_build.rb