--- /dev/null
+require 'beaker-rspec/spec_helper'
+require 'beaker-rspec/helpers/serverspec'
+
+
+unless ENV['RS_PROVISION'] == 'no'
+ # This will install the latest available package on el and deb based
+ # systems fail on windows and osx, and install via gem on other *nixes
+ foss_opts = { :default_action => 'gem_install' }
+
+ if default.is_pe?; then install_pe; else install_puppet( foss_opts ); end
+
+ hosts.each do |host|
+ if host['platform'] =~ /debian/
+ on host, 'echo \'export PATH=/var/lib/gems/1.8/bin/:${PATH}\' >> ~/.bashrc'
+ end
+
+ on host, "mkdir -p #{host['distmoduledir']}"
+ end
+end
+
+UNSUPPORTED_PLATFORMS = ['Suse','windows','AIX','Solaris']
+
+RSpec.configure do |c|
+ # Project root
+ proj_root = File.expand_path(File.join(File.dirname(__FILE__), '..'))
+
+ # Readable test descriptions
+ c.formatter = :documentation
+
+ # Configure all nodes in nodeset
+ c.before :suite do
+ # Install module and dependencies
+ hosts.each do |host|
+ copy_module_to(host, :source => proj_root, :module_name => 'apache')
+ # Required for mod_passenger tests.
+ if fact('osfamily') == 'RedHat'
+ on host, puppet('module','install','stahnma/epel'), { :acceptable_exit_codes => [0,1] }
+ end
+ # Required for manifest to make mod_pagespeed repository available
+ if fact('osfamily') == 'Debian'
+ on host, puppet('module','install','puppetlabs-apt', '--version 1.8.0', '--force'), { :acceptable_exit_codes => [0,1] }
+ end
+ on host, puppet('module','install','puppetlabs-stdlib'), { :acceptable_exit_codes => [0,1] }
+ on host, puppet('module','install','puppetlabs-concat', '--version 1.1.1', '--force'), { :acceptable_exit_codes => [0,1] }
+
+ # Make sure selinux is disabled before each test or apache won't work.
+ if ! UNSUPPORTED_PLATFORMS.include?(fact('osfamily'))
+ on host, puppet('apply', '-e',
+ %{"exec { 'setenforce 0': path => '/bin:/sbin:/usr/bin:/usr/sbin', onlyif => 'which setenforce && getenforce | grep Enforcing', }"}),
+ { :acceptable_exit_codes => [0] }
+ end
+ end
+ end
+end