Created
July 15, 2013 07:40
-
-
Save tsu-nera/5998100 to your computer and use it in GitHub Desktop.
Vagrant & sahara & minitest で エンドツーエンドを実施するサンプルテスト
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env ruby | |
# -*- coding: utf-8 -*- | |
require 'pty' | |
require 'expect' | |
require 'timeout' | |
# expect で読み込んだ内容を標準出力に出力するおまじない | |
$expect_verbose=true | |
class MkdirExpect | |
def setup | |
# sahara rollbackで初期化 | |
system( 'vagrant sandbox rollback' ) | |
# SSH通信を確立 | |
@pty = PTY.spawn("vagrant ssh") | |
@sin = @pty[0] | |
@sout= @pty[1] | |
@pid = @pty[2] | |
@sout.sync=true | |
end | |
def teardown | |
# SSH通信の終了 | |
@sin.expect(/[$%#]/){@sout.puts "exit" } | |
@sin.expect(/[$%#]/) | |
end | |
def mkdir_testdir | |
# Test | |
@sin.expect(/[$%#]/){ @sout.puts "mkdir testdir" } | |
# Verify | |
@sin.expect(/[$%#]/){ @sout.puts "ls" } | |
@sin.expect("testdir") | |
return 0 | |
end | |
def mkdir_two_directory | |
# Test | |
@sin.expect(/[$%#]/){ @sout.puts "mkdir dir1" } | |
@sin.expect(/[$%#]/){ @sout.puts "mkdir dir2" } | |
# Verify | |
@sin.expect(/[$%#]/){ @sout.puts "ls" } | |
@sin.expect("dir1") | |
@sin.expect(/[$%#]/){ @sout.puts "ls" } | |
@sin.expect("dir2") | |
return 0 | |
end | |
def mkdir_timeout | |
# Test | |
@sin.expect(/[$%#]/){ @sout.puts "mkdir testdir" } | |
# Verify | |
@sin.expect(/[$%#]/){ @sout.puts "ls" } | |
begin | |
timeout(3) { | |
@sin.expect("testdir2", 5) | |
} | |
rescue Timeout::Error => ex | |
@sout.puts "exit" | |
puts ex.message | |
return ex.class | |
end | |
return 0 | |
end | |
end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- coding: utf-8 -*- | |
require 'minitest/unit' | |
require 'minitest/autorun' | |
require './tc_mkdir_expect' | |
class TestMkdirExpect < MiniTest::Unit::TestCase | |
def setup | |
@foo = MkdirExpect.new | |
@foo.setup | |
end | |
def teardown | |
@foo.teardown | |
@foo = nil | |
end | |
def test_testdir | |
assert_equal 0,@foo.mkdir_testdir | |
end | |
def test_mkdir_two_directory | |
assert_equal 0,@foo.mkdir_two_directory | |
end | |
def test_mkdir_timeout | |
# assert_equal 0,@foo.mkdir_timeout | |
assert_equal Timeout::Error,@foo.mkdir_timeout | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment