module Autobuild::SelfTest

This module is the common setup for all tests

It should be included in the toplevel describe blocks

@example

require 'autobuild/test'
describe Autobuild do
end

Attributes

tempdir[R]

Public Instance Methods

build_config(bind, template) click to toggle source
# File lib/autobuild/test.rb, line 78
def build_config(bind, template)
    bind.local_variable_set(:basedir, tempdir.to_s)
    ryml = File.open(File.join(data_dir, "#{template}.ryml"), &:readlines)
        .join('')
    result = ERB.new(ryml).result(bind)

    yml = File.join(tempdir, "#{template}.yml")
    File.open(yml, 'w+') { |f| f.write(result) }

    yml
end
data_dir() click to toggle source
# File lib/autobuild/test.rb, line 72
def data_dir
    File.join(File.dirname(__FILE__), '..', '..', 'test', 'data')
end
make_tmpdir() click to toggle source
# File lib/autobuild/test.rb, line 67
def make_tmpdir
    @temp_dirs << (dir = Dir.mktmpdir)
    dir
end
prepare_and_build_package(package) click to toggle source
# File lib/autobuild/test.rb, line 100
def prepare_and_build_package(package)
    package.prepare
    Rake::Task["#{package.name}-build"].invoke
end
setup() click to toggle source
# File lib/autobuild/test.rb, line 43
def setup
    @temp_dirs = Array.new

    @tempdir = make_tmpdir
    FileUtils.mkdir_p(@tempdir, mode: 0o700)
    Autobuild.logdir = "#{tempdir}/log"
    FileUtils.mkdir_p Autobuild.logdir
    Autobuild.silent = true
    # Setup code for all the tests
end
teardown() click to toggle source
Calls superclass method
# File lib/autobuild/test.rb, line 54
def teardown
    Autobuild.silent = false
    super

    Autobuild::Package.clear
    Rake::Task.clear
    Autobuild.reset_gnumake_detection

    @temp_dirs.each do |dir|
        FileUtils.rm_rf dir
    end
end
untar(file) click to toggle source
# File lib/autobuild/test.rb, line 90
def untar(file)
    file = File.expand_path(file, data_dir)
    dir = tempdir
    Dir.chdir(dir) do
        system("tar xf #{file}")
    end

    dir
end