From 36f7daa528f02f7d32e80951dc02692bc3ed8dea Mon Sep 17 00:00:00 2001
From: Fabio Rehm <fgrehm@gmail.com>
Date: Wed, 12 Mar 2014 20:35:39 -0300
Subject: [PATCH] :bomb: hand made sanity checks (vagrant-spec is coming in!)

---
 spec/acceptance/sanity_check_spec.rb          | 111 ------------------
 .../support/acceptance_example_group.rb       |  76 ------------
 spec/acceptance/support/machine_ext.rb        |  12 --
 spec/acceptance/support/test_ui.rb            |  22 ----
 spec/acceptance_helper.rb                     |  21 ----
 5 files changed, 242 deletions(-)
 delete mode 100644 spec/acceptance/sanity_check_spec.rb
 delete mode 100644 spec/acceptance/support/acceptance_example_group.rb
 delete mode 100644 spec/acceptance/support/machine_ext.rb
 delete mode 100644 spec/acceptance/support/test_ui.rb
 delete mode 100644 spec/acceptance_helper.rb

diff --git a/spec/acceptance/sanity_check_spec.rb b/spec/acceptance/sanity_check_spec.rb
deleted file mode 100644
index c3c4d97..0000000
--- a/spec/acceptance/sanity_check_spec.rb
+++ /dev/null
@@ -1,111 +0,0 @@
-require 'acceptance_helper'
-
-describe 'Sanity check' do
-  after(:all) { destroy_container }
-
-  context 'running `vagrant up` from scratch' do
-    before(:all) do
-      destroy_container
-      vagrant_up
-    end
-
-    it 'creates a container' do
-      containers = `sudo lxc-ls`.chomp.split(/\s+/).uniq
-      expect(containers).to include vagrant_container_name
-    end
-
-    it 'starts the newly created container' do
-      status = `sudo lxc-info -n #{vagrant_container_name}`
-      expect(status).to include 'RUNNING'
-    end
-
-    it "is able to be SSH'ed" do
-      expect(vagrant_ssh('hostname')).to eq 'lxc-test-box'
-    end
-
-    it 'mounts shared folders with the right permissions' do
-      vagrant_ssh 'mkdir -p /vagrant/tmp && echo -n "Shared" > /vagrant/tmp/shared'
-      shared_file_contents = File.read('/vagrant/spec/tmp/shared')
-      expect(shared_file_contents).to eq 'Shared'
-    end
-
-    it 'provisions the container based on Vagrantfile configs' do
-      provisioned_file_contents = File.read('/vagrant/spec/tmp/provisioning')
-      expect(provisioned_file_contents).to eq 'Provisioned'
-    end
-
-    it 'forwards configured ports' do
-      output = `curl -s localhost:8080`.strip.chomp
-      expect(output).to include 'It works!'
-    end
-  end
-
-  context '`vagrant halt` on a running container' do
-    before(:all) do
-      destroy_container
-      vagrant_up
-      vagrant_ssh 'touch /tmp/{some,files}'
-      vagrant_halt
-    end
-
-    it 'shuts down the container' do
-      status = `sudo lxc-info -n #{vagrant_container_name}`
-      expect(status).to include 'STOPPED'
-    end
-
-    it 'clears forwarded ports' do
-      `curl -s localhost:8080 --connect-timeout 2`
-      expect($?.exitstatus).to_not eq 0
-    end
-
-    it 'kills redir processes' do
-      processes = `pgrep redir`
-      expect($?.exitstatus).to_not eq 0
-    end
-
-    xit 'removes files under `/tmp`' do
-      container_tmp_files = `sudo ls -l "/var/lib/lxc/#{vagrant_container_name}/rootfs/tmp"`.split("\n")
-      puts container_tmp_files.join("\n")
-      expect(container_tmp_files).to be_empty
-    end
-  end
-
-  context '`vagrant destroy`' do
-    before(:all) do
-      destroy_container
-      vagrant_up
-      @container_name = vagrant_container_name
-      vagrant_destroy
-    end
-
-    it 'destroys the underlying container' do
-      containers = `sudo lxc-ls`.chomp.split(/\s+/).uniq
-      expect(containers).to_not include @container_name
-    end
-  end
-
-  pending 'box packaging' do
-    before(:all) do
-      destroy_container
-      vagrant_box_remove('new-box')
-      vagrant_up
-      vagrant_package
-      @box_name = ENV['BOX_NAME']
-      # This will make
-      ENV["BOX_NAME"] = 'new-box'
-      ENV['BOX_URL']  = '/vagrant/spec/tmp/package.box'
-    end
-
-    after(:all) do
-      vagrant_box_remove('new-box')
-      ENV["BOX_NAME"] = @box_name
-      ENV['BOX_URL']  = nil
-    end
-
-    it 'creates a package that can be successfully brought up on a later `vagrant up`' do
-      vagrant_up
-      # Just to make sure we packaged it properly
-      expect(vagrant_ssh('cat /home/vagrant/original-box')).to eq @box_name
-    end
-  end
-end
diff --git a/spec/acceptance/support/acceptance_example_group.rb b/spec/acceptance/support/acceptance_example_group.rb
deleted file mode 100644
index 7042117..0000000
--- a/spec/acceptance/support/acceptance_example_group.rb
+++ /dev/null
@@ -1,76 +0,0 @@
-module AcceptanceExampleGroup
-  def self.included(base)
-    base.metadata[:type] = :acceptance
-  end
-
-  ID_FILE = "/vagrant/spec/.vagrant/machines/default/lxc/id"
-  def vagrant_container_name
-    File.read(ID_FILE).strip.chomp if File.exists?(ID_FILE)
-  end
-
-  def destroy_container
-    if name = vagrant_container_name
-      `sudo lxc-shutdown -n #{name} 2>/dev/null`
-      `sudo lxc-wait -n #{name} --state STOPPED 2>/dev/null`
-      `sudo lxc-destroy -n #{name} 2>/dev/null`
-      `rm -rf /vagrant/spec/.vagrant/`
-    end
-    `sudo killall -9 redir 2>/dev/null`
-  end
-
-  def with_vagrant_environment
-    opts = { cwd: '/vagrant/spec', ui_class: TestUI }
-    env  = Vagrant::Environment.new(opts)
-    yield env
-    env.unload
-  end
-
-  def vagrant_up
-    with_vagrant_environment do |env|
-      env.cli('up', '--provider', 'lxc')
-    end
-  end
-
-  def vagrant_halt
-    with_vagrant_environment do |env|
-      env.cli('halt')
-    end
-  end
-
-  def vagrant_destroy
-    with_vagrant_environment do |env|
-      env.cli('destroy', '-f')
-    end
-  end
-
-  def vagrant_ssh(cmd)
-    output = nil
-    with_vagrant_environment do |env|
-      result = env.cli('ssh', '-c', cmd)
-      if result.to_i != 0
-        raise "SSH command failed: '#{cmd}'\n#{env.ui.messages.inspect}"
-      end
-      output = env.ui.messages[:info].join("\n").chomp
-    end
-    output
-  end
-
-  def vagrant_package
-    with_vagrant_environment do |env|
-      pkg = '/vagrant/spec/tmp/package.box'
-      `rm -f #{pkg}`
-      env.cli('package', '--output', pkg)
-    end
-  end
-
-  def vagrant_box_remove(name)
-    with_vagrant_environment do |env|
-      env.cli('box', 'list')
-      output = env.ui.messages[:info].join("\n").chomp
-
-      if output.include?(name)
-        env.cli('box', 'remove', name)
-      end
-    end
-  end
-end
diff --git a/spec/acceptance/support/machine_ext.rb b/spec/acceptance/support/machine_ext.rb
deleted file mode 100644
index 9b28a61..0000000
--- a/spec/acceptance/support/machine_ext.rb
+++ /dev/null
@@ -1,12 +0,0 @@
-# Monkey patch vagrant in order to reuse the UI test object that is set on
-# our Vagrant::Environments
-#
-require 'vagrant/machine'
-Vagrant::Machine.class_eval do
-  alias :old_action :action
-
-  define_method :action do |action_name, extra_env = nil|
-    extra_env = { ui: @env.ui }.merge(extra_env || {})
-    old_action action_name, extra_env
-  end
-end
diff --git a/spec/acceptance/support/test_ui.rb b/spec/acceptance/support/test_ui.rb
deleted file mode 100644
index 9fc1ff6..0000000
--- a/spec/acceptance/support/test_ui.rb
+++ /dev/null
@@ -1,22 +0,0 @@
-class TestUI < Vagrant::UI::Interface
-  attr_reader :messages
-
-  METHODS = [:clear_line, :report_progress, :warn, :error, :info, :success]
-
-  def initialize
-    super
-    @messages = METHODS.each_with_object({}) { |m, h| h[m] = [] }
-  end
-
-  def ask(*args)
-    super
-    # Automated tests should not depend on user input, obviously.
-    raise Errors::UIExpectsTTY
-  end
-
-  METHODS.each do |method|
-    define_method(method) do |*args|#message, *opts|
-      @messages[method].push args[0]
-    end
-  end
-end
diff --git a/spec/acceptance_helper.rb b/spec/acceptance_helper.rb
deleted file mode 100644
index ff45967..0000000
--- a/spec/acceptance_helper.rb
+++ /dev/null
@@ -1,21 +0,0 @@
-require 'spec_helper'
-
-unless ENV['USER'] == 'vagrant'
-  puts 'Acceptance specs are supposed to run from one of the vagrant-lxc dev machines'
-  exit 1
-end
-
-if defined? SimpleCov
-  SimpleCov.command_name 'acceptance'
-end
-
-require 'vagrant'
-require 'vagrant-lxc'
-
-Dir[File.dirname(__FILE__) + "/acceptance/support/**/*.rb"].each { |f| require f }
-
-RSpec.configure do |config|
-  config.include AcceptanceExampleGroup, :type => :acceptance, :example_group => {
-    :file_path => /\bspec\/acceptance\//
-  }
-end