ef3e54fd69
Heka and lua_sandbox repositories have evolved, we need for Heka to stick with v0.10 and for lua_sandbox stick with the version used by Heka. Change-Id: I9a6c3650d4ec41ca549d3a6a3337dc37ba0c5083
131 lines
4.3 KiB
Ruby
131 lines
4.3 KiB
Ruby
require 'puppetlabs_spec_helper/rake_tasks'
|
|
require 'puppet-lint/tasks/puppet-lint'
|
|
require 'puppet-syntax/tasks/puppet-syntax'
|
|
require 'metadata-json-lint/rake_task'
|
|
|
|
PuppetLint.configuration.fail_on_warnings = true
|
|
PuppetLint.configuration.send('disable_80chars')
|
|
PuppetLint.configuration.send('disable_class_inherits_from_params_class')
|
|
PuppetLint.configuration.send('disable_class_parameter_defaults')
|
|
PuppetLint.configuration.send('disable_variable_contains_dash')
|
|
|
|
exclude_paths = [
|
|
"pkg/**/*",
|
|
"vendor/**/*",
|
|
"spec/**/*",
|
|
]
|
|
|
|
Rake::Task[:lint].clear
|
|
PuppetLint::RakeTask.new :lint do |config|
|
|
config.ignore_paths = exclude_paths
|
|
end
|
|
PuppetSyntax.exclude_paths = exclude_paths
|
|
|
|
desc "Run metadata_lint, lint, syntax, and spec tests."
|
|
task :test => [
|
|
:metadata_lint,
|
|
:lint,
|
|
:syntax,
|
|
:spec
|
|
]
|
|
|
|
# Check for the presence of Lua 5.1
|
|
lua_version = %x( lua5.1 -v 2>&1 )
|
|
lua_present = $?.to_i == 0 ? (lua_version =~ /^Lua 5\.1/) : false
|
|
if lua_present then
|
|
task :test => :lua_tests
|
|
end
|
|
|
|
LUA_TESTS = Rake::FileList.new("tests/**/test_*.lua")
|
|
desc "Run Lua unit tests."
|
|
task :lua_tests => [:lua_libraries, :lib_cbuf] do |t|
|
|
verbose(false) do
|
|
sh "lua5.1", "-e", "require('lpeg')" do |ok, res|
|
|
if ! ok then
|
|
raise "Please install the Lua LPEG package by running: apt-get install lua-lpeg"
|
|
end
|
|
end
|
|
end
|
|
LUA_TESTS.each do |f|
|
|
sh "lua5.1", f
|
|
end
|
|
Rake::Task[:remove_cbuf_library].invoke
|
|
end
|
|
|
|
# Need to pull date_time.lua from the lua_sandbox repository because some tests
|
|
# depend on it indirectly
|
|
task :lua_libraries => ['tests/lua/mocks/date_time.lua', 'tests/lua/mocks/inspect.lua',
|
|
'tests/lua/mocks/anomaly.lua', 'tests/lua/mocks/annotation.lua']
|
|
|
|
file 'tests/lua/mocks/annotation.lua' do |t|
|
|
verbose(false) do
|
|
sh "curl", "-s", "-o", t.name, "https://raw.githubusercontent.com/mozilla-services/heka/versions/0.10/sandbox/lua/modules/annotation.lua" do |ok, res|
|
|
if ! ok then
|
|
raise "Fail to download annotation.lua from lua_sandbox repository!"
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
file 'tests/lua/mocks/anomaly.lua' do |t|
|
|
verbose(false) do
|
|
sh "curl", "-s", "-o", t.name, "https://raw.githubusercontent.com/mozilla-services/heka/versions/0.10/sandbox/lua/modules/anomaly.lua" do |ok, res|
|
|
if ! ok then
|
|
raise "Fail to download anomaly.lua from lua_sandbox repository!"
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
file 'tests/lua/mocks/date_time.lua' do |t|
|
|
verbose(false) do
|
|
sh "curl", "-s", "-o", t.name, "https://raw.githubusercontent.com/mozilla-services/lua_sandbox/97331863d3e05d25131b786e3e9199e805b9b4ba/modules/date_time.lua" do |ok, res|
|
|
if ! ok then
|
|
raise "Fail to download date_time.lua from lua_sandbox repository!"
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
file 'tests/lua/mocks/inspect.lua' do |t|
|
|
verbose(false) do
|
|
sh "curl", "-s", "-o", t.name, "https://raw.githubusercontent.com/kikito/inspect.lua/master/inspect.lua" do |ok, res|
|
|
if ! ok then
|
|
raise "Fail to download inspect.lua from gitub repository!"
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
task :lib_cbuf => ['./circular_buffer.so']
|
|
|
|
cbuf_commit = 'bb6dd9f88f148813315b5a660b7e2ba47f958b31'
|
|
cbuf_tarball_url = "https://github.com/mozilla-services/lua_circular_buffer/archive/#{ cbuf_commit }.tar.gz"
|
|
|
|
file './circular_buffer.so' do |t|
|
|
tmp_directory = File.join('/tmp', "lua_circular_buffer-#{ cbuf_commit }")
|
|
cbuf_shared_library = File.join(tmp_directory, 'release', 'circular_buffer.so')
|
|
unless File.exists?(cbuf_shared_library) then
|
|
# Download the archive from Github and build the library
|
|
sh "rm -rf #{ tmp_directory } && wget -qO - #{ cbuf_tarball_url } | tar -zxvf - -C /tmp" do |ok, res|
|
|
unless ok then
|
|
raise "Failed to download the lua_circular_buffer archive!"
|
|
end
|
|
end
|
|
|
|
sh "cd #{ tmp_directory } && mkdir release && cd release && cmake -DCMAKE_BUILD_TYPE=release .. && make" do |ok, res|
|
|
unless ok then
|
|
raise "Failed to compile circular_buffer.so!"
|
|
end
|
|
end
|
|
end
|
|
|
|
FileUtils.cp(cbuf_shared_library, '.')
|
|
end
|
|
|
|
task :remove_cbuf_library do |t|
|
|
verbose(false) do
|
|
sh 'rm -f ./circular_buffer.so'
|
|
end
|
|
end
|