jenkins-bot has submitted this change and it was merged.
Change subject: Run MediaWiki unit tests via 'vagrant run-tests'
..
Run MediaWiki unit tests via 'vagrant run-tests'
This patch uses extends the MediaWiki-Vagrant's Vagrant plug-in to add a
Vagrant subcommand, 'run-tests', that executes PHPUnit tests on a running VM.
With the exception of '-h' / '--help' (which prompt Vagrant to print usage info
and then exit), all other command-line arguments are passed through to phpunit.
This patch also fixes whitespace in other ruby files.
Bug: 46676
Change-Id: I7340a306d92ed5f4bb7cfb3c0a0a7b1e7c19fa53
---
M lib/mediawiki-vagrant/commands/paste-puppet.rb
A lib/mediawiki-vagrant/commands/run-tests.rb
M lib/mediawiki-vagrant/plugin.rb
A puppet/modules/mediawiki/files/run-mediawiki-tests
M puppet/modules/mediawiki/manifests/init.pp
5 files changed, 49 insertions(+), 22 deletions(-)
Approvals:
Ori.livneh: Looks good to me, approved
jenkins-bot: Verified
diff --git a/lib/mediawiki-vagrant/commands/paste-puppet.rb
b/lib/mediawiki-vagrant/commands/paste-puppet.rb
index 205d0d0..1ddaa78 100644
--- a/lib/mediawiki-vagrant/commands/paste-puppet.rb
+++ b/lib/mediawiki-vagrant/commands/paste-puppet.rb
@@ -2,29 +2,29 @@
class PastePuppet < Vagrant.plugin(2, :command)
- URL = URI('http://dpaste.de/api/')
+URL = URI('http://dpaste.de/api/')
- def latest_logfile
- Dir[File.join $DIR, '/logs/puppet/*.log'].max_by { |f|
File.mtime f }
- end
+def latest_logfile
+Dir[File.join $DIR, '/logs/puppet/*.log'].max_by { |f| File.mtime f }
+end
def execute
- begin
- res = Net::HTTP.post_form URL, content:
File.read(latest_logfile)
- raise unless res.value.nil? and res.body =~ /^"[^"]+"$/
- rescue RuntimeError
- @env.ui.error "Unexpected response from #{URL}."
- 1
- rescue TypeError
- @env.ui.error 'No Puppet log files found.'
- 1
- rescue SocketError, Net::HTTPExceptions
- @env.ui.error "Unable to connect to #{URL}."
- 1
- else
- @env.ui.success "HTTP #{res.code} #{res.msg}"
- @env.ui.info res.body[1...-1]
- 0
- end
+begin
+res = Net::HTTP.post_form URL, content: File.read(latest_logfile)
+raise unless res.value.nil? and res.body =~ /^"[^"]+"$/
+rescue RuntimeError
+@env.ui.error "Unexpected response from #{URL}."
+1
+rescue TypeError
+@env.ui.error 'No Puppet log files found.'
+1
+rescue SocketError, Net::HTTPExceptions
+@env.ui.error "Unable to connect to #{URL}."
+1
+else
+@env.ui.success "HTTP #{res.code} #{res.msg}"
+@env.ui.info res.body[1...-1]
+0
+end
end
end
diff --git a/lib/mediawiki-vagrant/commands/run-tests.rb
b/lib/mediawiki-vagrant/commands/run-tests.rb
new file mode 100644
index 000..79dc78f
--- /dev/null
+++ b/lib/mediawiki-vagrant/commands/run-tests.rb
@@ -0,0 +1,12 @@
+class RunTests < Vagrant.plugin(2, :command)
+def execute
+if ['-h', '--help'].include? @argv.first
+@env.ui.info "Usage: vagrant run-tests [tests] [-h]"
+return 0
+end
+opts = { extra_args: @argv.unshift('run-mediawiki-tests') }
+with_target_vms(nil, :single_target => true) do |vm|
+vm.action :ssh, ssh_opts: opts
+end
+end
+end
diff --git a/lib/mediawiki-vagrant/plugin.rb b/lib/mediawiki-vagrant/plugin.rb
index d3737c8..6989a97 100644
--- a/lib/mediawiki-vagrant/plugin.rb
+++ b/lib/mediawiki-vagrant/plugin.rb
@@ -1,8 +1,13 @@
class MediaWikiVagrant < Vagrant.plugin('2')
-name 'MediaWiki Vagrant'
+name 'MediaWiki-Vagrant'
command 'paste-puppet' do
require 'mediawiki-vagrant/commands/paste-puppet'
PastePuppet
end
+
+command 'run-tests' do
+require 'mediawiki-vagrant/commands/run-tests'
+RunTests
+end
end
diff --git a/puppet/modules/mediawiki/files/run-mediawiki-tests
b/puppet/modules/mediawiki/files/run-mediawiki-tests
new file mode 100644
index 000..a246d16
--- /dev/null
+++ b/puppet/modules/mediawiki/files/run-mediawiki-tests
@@ -0,0 +1,4 @@
+#!/bin/bash
+. /etc/profile.d/puppet-managed/set_mw_install_path.sh
+cd "$MW_INSTALL_PATH"
+php tests/phpunit/phpunit.php --testdox "$@"
diff --git a/puppet/modules/mediawiki/manifests/init.pp
b/puppet/modules/mediawiki/manifests/init.pp
index b5f1cf2..c1a8be2 100644
--- a/puppet/modules/mediawiki/manifests/init.pp
+++ b/puppet/modules/mediawiki/manifests/init.pp
@@ -126,6 +126,12 @@
require => Exec['m