Files
calligraphy/Rakefile
2018-01-01 01:12:33 -06:00

77 lines
1.9 KiB
Ruby
Executable File

#!/usr/bin/env rake
# frozen_string_literal: true
require 'rake/clean'
require 'rspec/core/rake_task'
require 'rubocop/rake_task'
task default: %w[spec litmus:run]
desc 'Run rspec tests'
RSpec::Core::RakeTask.new :spec
desc 'Run litmus test suite'
task litmus: %w[litmus:run]
desc 'Run Rubocop'
RuboCop::RakeTask.new :rubocop
namespace :litmus do
tmp_dir = "#{Dir.pwd}/tmp"
litmus_archive = "#{tmp_dir}/litmus-0.13.tar.gz"
desc 'Fetch litmus test suite zip file'
task :fetch do
sh 'mkdir tmp' unless File.directory? tmp_dir.to_s
sh 'mkdir tmp/webdav' unless File.directory? "#{tmp_dir}/webdav"
unless File.exist? litmus_archive
litmus_url = 'https://github.com/eanlain/litmus/releases/download/v0.13/litmus-0.13.tar.gz'
sh "wget -O #{tmp_dir}/litmus-0.13.tar.gz #{litmus_url}"
end
end
CLEAN.include('tmp')
desc 'Unarchive litmus test suite zip file'
task unarchive: :fetch do
unless File.directory? "#{Dir.pwd}/litmus-0.13"
sh "tar -xvzf #{tmp_dir}/litmus-0.13.tar.gz"
end
end
CLEAN.include('litmus-0.13')
desc 'Configure litmus test suite'
task configure: :unarchive do
unless File.exist? 'litmus-0.13/configured'
sh 'cd litmus-0.13 && ./configure'
sh 'cd litmus-0.13 && touch configured'
end
end
desc "'make clean' litmus test suite"
task :make_clean do
sh 'cd litmus-0.13 && make clean'
sh 'rm litmus-0.13/configured'
end
desc 'Run litmus test suite'
task run: :configure do
sh 'cd spec/dummy/ && rails server -d'
sleep 1
puma_pid = `cat spec/dummy/tmp/pids/server.pid`
exit_code = 0
begin
sh 'cd litmus-0.13 &&'\
' make URL=http://localhost:3000/webdav/'\
' CREDS=\'jon_deaux changeme!\' check'
rescue StandardError
exit_code = 1
puts '!!!!! Failure encountered during litmus test suite !!!!!'
end
sh "kill #{puma_pid}"
exit exit_code
end
end