Add axiom to corpus test and add noinstall option
Axiom will currently not be killed on CI. Once I merge the parallel stuff this is feasable.
This commit is contained in:
parent
c25bb4a195
commit
a6875c281c
2 changed files with 39 additions and 9 deletions
|
@ -37,15 +37,8 @@ describe 'Mutant on ruby corpus' do
|
||||||
def verify_mutation_coverage
|
def verify_mutation_coverage
|
||||||
checkout
|
checkout
|
||||||
Dir.chdir(repo_path) do
|
Dir.chdir(repo_path) do
|
||||||
relative = ROOT.relative_path_from(repo_path)
|
|
||||||
devtools = ROOT.join('Gemfile.devtools').read
|
|
||||||
devtools << "gem 'mutant', path: '#{relative}'\n"
|
|
||||||
devtools << "gem 'mutant-rspec', path: '#{relative}'\n"
|
|
||||||
File.write(repo_path.join('Gemfile.devtools'), devtools)
|
|
||||||
lockfile = repo_path.join('Gemfile.lock')
|
|
||||||
lockfile.delete if lockfile.exist?
|
|
||||||
Bundler.with_clean_env do
|
Bundler.with_clean_env do
|
||||||
system('bundle install')
|
install_mutant
|
||||||
system(%W[bundle exec mutant -I lib -r #{name} --score #{expect_coverage} --use rspec #{namespace}*])
|
system(%W[bundle exec mutant -I lib -r #{name} --score #{expect_coverage} --use rspec #{namespace}*])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -96,6 +89,7 @@ describe 'Mutant on ruby corpus' do
|
||||||
# @api private
|
# @api private
|
||||||
#
|
#
|
||||||
def checkout
|
def checkout
|
||||||
|
return self if noinstall?
|
||||||
TMP.mkdir unless TMP.directory?
|
TMP.mkdir unless TMP.directory?
|
||||||
if repo_path.exist?
|
if repo_path.exist?
|
||||||
Dir.chdir(repo_path) do
|
Dir.chdir(repo_path) do
|
||||||
|
@ -111,6 +105,25 @@ describe 'Mutant on ruby corpus' do
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
|
||||||
|
# Install mutant
|
||||||
|
#
|
||||||
|
# @return [undefined]
|
||||||
|
#
|
||||||
|
# @api private
|
||||||
|
#
|
||||||
|
def install_mutant
|
||||||
|
return if noinstall?
|
||||||
|
relative = ROOT.relative_path_from(repo_path)
|
||||||
|
devtools = ROOT.join('Gemfile.devtools').read
|
||||||
|
devtools << "gem 'mutant', path: '#{relative}'\n"
|
||||||
|
devtools << "gem 'mutant-rspec', path: '#{relative}'\n"
|
||||||
|
File.write(repo_path.join('Gemfile.devtools'), devtools)
|
||||||
|
lockfile = repo_path.join('Gemfile.lock')
|
||||||
|
lockfile.delete if lockfile.exist?
|
||||||
|
system('bundle install')
|
||||||
|
end
|
||||||
|
|
||||||
# Return repository path
|
# Return repository path
|
||||||
#
|
#
|
||||||
# @return [Pathname]
|
# @return [Pathname]
|
||||||
|
@ -121,6 +134,16 @@ describe 'Mutant on ruby corpus' do
|
||||||
TMP.join(name)
|
TMP.join(name)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Test if installation should be skipped
|
||||||
|
#
|
||||||
|
# @return [Boolean]
|
||||||
|
#
|
||||||
|
# @api private
|
||||||
|
#
|
||||||
|
def noinstall?
|
||||||
|
ENV.key?('NOINSTALL')
|
||||||
|
end
|
||||||
|
|
||||||
# Print start progress
|
# Print start progress
|
||||||
#
|
#
|
||||||
# @param [Pathname] path
|
# @param [Pathname] path
|
||||||
|
@ -203,7 +226,7 @@ describe 'Mutant on ruby corpus' do
|
||||||
end
|
end
|
||||||
|
|
||||||
Project::ALL.select(&:mutation_coverage).each do |project|
|
Project::ALL.select(&:mutation_coverage).each do |project|
|
||||||
specify "#{project.name} does have expected mutaiton coverage" do
|
specify "#{project.name} does have expected mutation coverage" do
|
||||||
project.verify_mutation_coverage
|
project.verify_mutation_coverage
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -32,3 +32,10 @@
|
||||||
mutation_generation: true
|
mutation_generation: true
|
||||||
exclude: []
|
exclude: []
|
||||||
expect_coverage: 100.0
|
expect_coverage: 100.0
|
||||||
|
- name: axiom
|
||||||
|
namespace: Axiom
|
||||||
|
repo_uri: 'https://github.com/dkubb/axiom.git'
|
||||||
|
mutation_coverage: false
|
||||||
|
mutation_generation: true
|
||||||
|
exclude: []
|
||||||
|
expect_coverage: 100.0
|
||||||
|
|
Loading…
Add table
Reference in a new issue