greenletters 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,6 @@
1
+ == 0.3.0 / 2012-12-28
2
+ * Now works properly with MRI 1.9.2
3
+
1
4
  == 0.0.1 / 2010-07-19
2
5
 
3
6
  * 1 major enhancement
data/README.org CHANGED
@@ -77,7 +77,7 @@ Or, in Cucumber format:
77
77
  pseudoterminal under Ruby's control. Of course, this means that it is
78
78
  MacOSX/Linux/*NIX-only; Windows users need not apply.
79
79
 
80
- The advantage of using a PTY is that *any* output - inclding output written to
80
+ The advantage of using a PTY is that *any* output - including output written to
81
81
  the console instead of STDOUT/STDERR - will be captured by Greenletters.
82
82
 
83
83
  * Cucumber
@@ -2,16 +2,16 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "greenletters"
5
- s.version = "0.2.0"
5
+ s.version = "0.3.0"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Avdi Grimm"]
9
- s.date = "2012-07-31"
9
+ s.date = "2012-12-28"
10
10
  s.description = " Greenletterrs is a console automation framework, similar to the classic\n utility Expect. You give it a command to execute, and tell it which outputs\n or events to expect and how to respond to them.\n\n Greenletters also includes a set of Cucumber steps which simplify the task\n of spcifying interactive command-line applications.\n"
11
11
  s.email = "avdi@avdi.org"
12
12
  s.executables = ["greenletters"]
13
13
  s.extra_rdoc_files = ["History.txt", "bin/greenletters"]
14
- s.files = [".gitignore", "Gemfile", "Gemfile.lock", "History.txt", "README.org", "Rakefile", "bin/greenletters", "examples/adventure.rb", "examples/cucumber/adventure.feature", "examples/cucumber/greenletters.log", "examples/cucumber/support/env.rb", "examples/greenletters.log", "greenletters.gemspec", "lib/greenletters.rb", "lib/greenletters/cucumber_steps.rb", "script/console", "spec/greenletters_spec.rb", "spec/spec_helper.rb", "version.txt"]
14
+ s.files = [".gitignore", "Gemfile", "Gemfile.lock", "History.txt", "README.org", "Rakefile", "bin/greenletters", "examples/adventure.rb", "examples/cucumber/adventure.feature", "examples/cucumber/support/env.rb", "greenletters.gemspec", "lib/greenletters.rb", "lib/greenletters/cucumber_steps.rb", "script/console", "spec/greenletters_spec.rb", "spec/spec_helper.rb", "version.txt"]
15
15
  s.homepage = "http://github.com/avdi/greenletters"
16
16
  s.rdoc_options = ["--main", "README.org"]
17
17
  s.require_paths = ["lib"]
@@ -324,6 +324,10 @@ module Greenletters
324
324
  }
325
325
  @history = TranscriptHistoryBuffer.new(@transcript)
326
326
  @timeout = options.fetch(:timeout) { DEFAULT_TIMEOUT }
327
+
328
+ ObjectSpace.define_finalizer(self) do
329
+ kill!
330
+ end
327
331
  end
328
332
 
329
333
  def on(event, *args, &block)
@@ -397,6 +401,7 @@ module Greenletters
397
401
 
398
402
  def kill!(signal="TERM")
399
403
  handle_child_exit do
404
+ @logger.info "Killing process #{@pid}"
400
405
  ::Process.kill(signal, @pid)
401
406
  end
402
407
  end
@@ -516,6 +521,7 @@ module Greenletters
516
521
  # Soon we should get a PTY::ChildExited
517
522
  while running? || ended?
518
523
  @logger.debug "waiting for child #{@pid} to die"
524
+ PTY.check(@pid, true) if PTY.respond_to? :check
519
525
  sleep 0.1
520
526
  end
521
527
  end
@@ -1 +1 @@
1
- 0.2.0
1
+ 0.3.0
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: greenletters
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-31 00:00:00.000000000 Z
12
+ date: 2012-12-28 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bones
16
- requirement: &28211160 !ruby/object:Gem::Requirement
16
+ requirement: &16153060 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: 3.8.0
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *28211160
24
+ version_requirements: *16153060
25
25
  description: ! " Greenletterrs is a console automation framework, similar to the
26
26
  classic\n utility Expect. You give it a command to execute, and tell it which
27
27
  outputs\n or events to expect and how to respond to them.\n\n Greenletters
@@ -44,9 +44,7 @@ files:
44
44
  - bin/greenletters
45
45
  - examples/adventure.rb
46
46
  - examples/cucumber/adventure.feature
47
- - examples/cucumber/greenletters.log
48
47
  - examples/cucumber/support/env.rb
49
- - examples/greenletters.log
50
48
  - greenletters.gemspec
51
49
  - lib/greenletters.rb
52
50
  - lib/greenletters/cucumber_steps.rb
@@ -1,266 +0,0 @@
1
- D, [2010-07-31T07:37:35.732465 #16613] DEBUG -- : added trigger on output matching /Would\s+you\s+like\s+instructions\?/
2
- D, [2010-07-31T07:37:35.732612 #16613] DEBUG -- : matching /Would\s+you\s+like\s+instructions\?/ against ""
3
- D, [2010-07-31T07:37:35.732694 #16613] DEBUG -- : no match
4
- D, [2010-07-31T07:37:35.734485 #16613] DEBUG -- : added trigger on output matching /Do\s+you\s+really\s+want\s+to\s+quit/
5
- D, [2010-07-31T07:37:35.734645 #16613] DEBUG -- : matching /Do\s+you\s+really\s+want\s+to\s+quit/ against ""
6
- D, [2010-07-31T07:37:35.734770 #16613] DEBUG -- : no match
7
- D, [2010-07-31T07:37:35.737143 #16613] DEBUG -- : installing end marker handler for __GREENLETTERS_PROCESS_ENDED__
8
- D, [2010-07-31T07:37:35.737434 #16613] DEBUG -- : prepended trigger on output matching /__GREENLETTERS_PROCESS_ENDED__/
9
- D, [2010-07-31T07:37:35.737642 #16613] DEBUG -- : executing /usr/bin/ruby1.8 -C /home/avdi/dev/greenletters/examples -e system(*["adventure"]) -e puts("__GREENLETTERS_PROCESS_ENDED__") -e gets -e exit $?.exitstatus
10
- D, [2010-07-31T07:37:35.738178 #16613] DEBUG -- : command environment:
11
- {"LIBGL_DRIVERS_PATH"=>"/usr/lib/fglrx/dri:/usr/lib32/fglrx/dri", "GDM_LANG"=>"en_US.utf8", "LANGUAGE"=>"", "KONSOLE_DBUS_SERVICE"=>":1.25", "LOGNAME"=>"avdi", "GTK_MODULES"=>"canberra-gtk-module", "DBUS_SESSION_BUS_ADDRESS"=>"unix:abstract=/tmp/dbus-yzwJzQz2K2,guid=6bd7f6db661aa3d4c38b7d944c53873f", "SPEECHD_PORT"=>"7560", "PATH"=>"/home/avdi/bin:/home/avdi/share/bin:/home/avdi/.gem/ruby/1.8/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games", "USER"=>"avdi", "GNOME_KEYRING_PID"=>"2057", "LANG"=>"en_US.utf8", "DEFAULTS_PATH"=>"/usr/share/gconf/gnome.default.path", "WINDOWID"=>"46137398", "XDG_CONFIG_DIRS"=>"/etc/xdg/xdg-gnome:/etc/xdg", "ORBIT_SOCKETDIR"=>"/tmp/orbit-avdi", "XDG_DATA_DIRS"=>"/usr/share/gnome:/usr/local/share/:/usr/share/", "GNOME_DESKTOP_SESSION_ID"=>"this-is-deprecated", "DISPLAY"=>":0.0", "PWD"=>"/home/avdi/dev/greenletters/examples", "GDMSESSION"=>"gnome", "GDM_KEYBOARD_LAYOUT"=>"us", "COLORFGBG"=>"15;0", "XAUTHORITY"=>"/var/run/gdm/auth-for-avdi-pwU0Bi/database", "SSH_AGENT_PID"=>"2116", "XDG_SESSION_COOKIE"=>"95da948d870c084a39cf95e74bcf1d12-1280542527.346178-1033032164", "TERM"=>"xterm", "PROFILEHOME"=>"", "SESSION_MANAGER"=>"local/petronius:@/tmp/.ICE-unix/2075,unix/petronius:/tmp/.ICE-unix/2075", "DESKTOP_AUTOSTART_ID"=>"109b01964624068715128054252796155900000020750004", "SSH_AUTH_SOCK"=>"/tmp/keyring-eGT6zq/ssh", "KONSOLE_DBUS_SESSION"=>"/Sessions/2", "GNOME_KEYRING_CONTROL"=>"/tmp/keyring-eGT6zq", "DESKTOP_SESSION"=>"gnome", "USERNAME"=>"avdi", "MANDATORY_PATH"=>"/usr/share/gconf/gnome.mandatory.path", "HOME"=>"/home/avdi", "GPG_AGENT_INFO"=>"/tmp/gpg-AW2u0g/S.gpg-agent:2117:1", "SHELL"=>"/bin/zsh", "SHLVL"=>"1", "OLDPWD"=>"/home/avdi/dev/greenletters", "EDITOR"=>"/home/avdi/share/bin/emacs-newwindow", "GEM_EDITOR"=>"/home/avdi/share/bin/emacs-newwindow", "ZSH"=>"/home/avdi/.oh-my-zsh", "ZSH_THEME"=>"robbyrussell", "LSCOLORS"=>"Gxfxcxdxbxegedabagacad", "GREP_OPTIONS"=>"--color=auto", "GREP_COLOR"=>"1;32", "PAGER"=>"less", "LC_CTYPE"=>"en_US.UTF-8", "rvm_path"=>"/home/avdi/.rvm", "rvm_rubies_path"=>"/home/avdi/.rvm/rubies", "rvm_scripts_path"=>"/home/avdi/.rvm/scripts", "rvm_archives_path"=>"/home/avdi/.rvm/archives", "rvm_src_path"=>"/home/avdi/.rvm/src", "rvm_log_path"=>"/home/avdi/.rvm/log", "rvm_bin_path"=>"/home/avdi/.rvm/bin", "rvm_gems_path"=>"/home/avdi/.rvm/gems", "rvm_config_path"=>"/home/avdi/.rvm/config", "rvm_tmp_path"=>"/home/avdi/.rvm/tmp", "rvm_hooks_path"=>"/home/avdi/.rvm/hooks", "rvm_gems_cache_path"=>"/home/avdi/.rvm/gems/cache", "rvm_gemset_separator"=>"@", "rvm_version"=>"0.1.28", "_"=>"/home/avdi/.gem/ruby/1.8/bin/cucumber"}
12
- D, [2010-07-31T07:37:35.753426 #16613] DEBUG -- : spawned pid 16618
13
- D, [2010-07-31T07:37:35.756271 #16613] DEBUG -- : added trigger on output matching /You\s+are\s+standing\s+at\s+the\s+end\s+of\s+a\s+road\s+before\s+a\s+small\s+brick\s+building\.\s+Around\s+you\s+is\s+a\s+forest\.\s+A\s+small\s+stream\s+flows\s+out\s+of\s+the\s+building\s+and\s+down\s+a\s+gully\./
14
- D, [2010-07-31T07:37:35.756524 #16613] DEBUG -- : waiting for output matching /You\s+are\s+standing\s+at\s+the\s+end\s+of\s+a\s+road\s+before\s+a\s+small\s+brick\s+building\.\s+Around\s+you\s+is\s+a\s+forest\.\s+A\s+small\s+stream\s+flows\s+out\s+of\s+the\s+building\s+and\s+down\s+a\s+gully\./
15
- D, [2010-07-31T07:37:35.756700 #16613] DEBUG -- : matching /You\s+are\s+standing\s+at\s+the\s+end\s+of\s+a\s+road\s+before\s+a\s+small\s+brick\s+building\.\s+Around\s+you\s+is\s+a\s+forest\.\s+A\s+small\s+stream\s+flows\s+out\s+of\s+the\s+building\s+and\s+down\s+a\s+gully\./ against ""
16
- D, [2010-07-31T07:37:35.756833 #16613] DEBUG -- : no match
17
- D, [2010-07-31T07:37:35.756988 #16613] DEBUG -- : select()
18
- D, [2010-07-31T07:37:35.757249 #16613] DEBUG -- : select() on [[#<File:/dev/pts/3>], [], [#<File:/dev/pts/3>, #<File:/dev/pts/3>], 1.0]
19
- D, [2010-07-31T07:37:35.757442 #16613] DEBUG -- : output ready #<File:/dev/pts/3>
20
- D, [2010-07-31T07:37:35.757708 #16613] DEBUG -- :
21
- <<
22
- << Welcome to Adventure!! Would you like instructions?
23
- D, [2010-07-31T07:37:35.757859 #16613] DEBUG -- : read 56 bytes
24
- D, [2010-07-31T07:37:35.758074 #16613] DEBUG -- : checking output against output matching /__GREENLETTERS_PROCESS_ENDED__/
25
- D, [2010-07-31T07:37:35.758246 #16613] DEBUG -- : matching /__GREENLETTERS_PROCESS_ENDED__/ against "\r\nWelcome to Adventure!! Would you like instructions?\r\n"
26
- D, [2010-07-31T07:37:35.758396 #16613] DEBUG -- : no match
27
- D, [2010-07-31T07:37:35.758531 #16613] DEBUG -- : checking output against output matching /Would\s+you\s+like\s+instructions\?/
28
- D, [2010-07-31T07:37:35.758685 #16613] DEBUG -- : matching /Would\s+you\s+like\s+instructions\?/ against "\r\nWelcome to Adventure!! Would you like instructions?\r\n"
29
- D, [2010-07-31T07:37:35.758838 #16613] DEBUG -- : matched /Would\s+you\s+like\s+instructions\?/
30
- D, [2010-07-31T07:37:35.759027 #16613] DEBUG -- : match trigger output matching /Would\s+you\s+like\s+instructions\?/
31
- D, [2010-07-31T07:37:35.759189 #16613] DEBUG -- : checking output against output matching /Do\s+you\s+really\s+want\s+to\s+quit/
32
- D, [2010-07-31T07:37:35.759330 #16613] DEBUG -- : matching /Do\s+you\s+really\s+want\s+to\s+quit/ against "\r\n"
33
- D, [2010-07-31T07:37:35.759459 #16613] DEBUG -- : no match
34
- D, [2010-07-31T07:37:35.759614 #16613] DEBUG -- : checking output against output matching /You\s+are\s+standing\s+at\s+the\s+end\s+of\s+a\s+road\s+before\s+a\s+small\s+brick\s+building\.\s+Around\s+you\s+is\s+a\s+forest\.\s+A\s+small\s+stream\s+flows\s+out\s+of\s+the\s+building\s+and\s+down\s+a\s+gully\./
35
- D, [2010-07-31T07:37:35.759762 #16613] DEBUG -- : matching /You\s+are\s+standing\s+at\s+the\s+end\s+of\s+a\s+road\s+before\s+a\s+small\s+brick\s+building\.\s+Around\s+you\s+is\s+a\s+forest\.\s+A\s+small\s+stream\s+flows\s+out\s+of\s+the\s+building\s+and\s+down\s+a\s+gully\./ against "\r\n"
36
- D, [2010-07-31T07:37:35.759890 #16613] DEBUG -- : no match
37
- D, [2010-07-31T07:37:35.760033 #16613] DEBUG -- : select()
38
- D, [2010-07-31T07:37:35.760244 #16613] DEBUG -- : select() on [[#<File:/dev/pts/3>], [#<File:/dev/pts/3>], [#<File:/dev/pts/3>, #<File:/dev/pts/3>], 1.0]
39
- D, [2010-07-31T07:37:35.760485 #16613] DEBUG -- : input ready #<File:/dev/pts/3>
40
- D, [2010-07-31T07:37:35.760685 #16613] DEBUG -- :
41
- >> no
42
- D, [2010-07-31T07:37:35.760825 #16613] DEBUG -- : wrote 3 bytes
43
- D, [2010-07-31T07:37:35.760958 #16613] DEBUG -- : select()
44
- D, [2010-07-31T07:37:35.761134 #16613] DEBUG -- : select() on [[#<File:/dev/pts/3>], [], [#<File:/dev/pts/3>, #<File:/dev/pts/3>], 1.0]
45
- D, [2010-07-31T07:37:35.780392 #16613] DEBUG -- : output ready #<File:/dev/pts/3>
46
- D, [2010-07-31T07:37:35.780589 #16613] DEBUG -- :
47
- << no
48
- <<
49
- << You are standing at the end of a road before a small brick building.
50
- << Around you is a forest. A small stream flows out of the building and
51
- << down a gully.
52
- D, [2010-07-31T07:37:35.780668 #16613] DEBUG -- : read 162 bytes
53
- D, [2010-07-31T07:37:35.780785 #16613] DEBUG -- : checking output against output matching /__GREENLETTERS_PROCESS_ENDED__/
54
- D, [2010-07-31T07:37:35.780890 #16613] DEBUG -- : matching /__GREENLETTERS_PROCESS_ENDED__/ against "\r\nno\r\n\r\nYou are standing at the end of a road before a small brick building.\r\nAround you is a forest. A small stream flows out of the building and\r\ndown a gully.\r\n"
55
- D, [2010-07-31T07:37:35.781057 #16613] DEBUG -- : no match
56
- D, [2010-07-31T07:37:35.781203 #16613] DEBUG -- : checking output against output matching /Would\s+you\s+like\s+instructions\?/
57
- D, [2010-07-31T07:37:35.781356 #16613] DEBUG -- : matching /Would\s+you\s+like\s+instructions\?/ against "\r\nno\r\n\r\nYou are standing at the end of a road before a small brick building.\r\nAround you is a forest. A small stream flows out of the building and\r\ndown a gully.\r\n"
58
- D, [2010-07-31T07:37:35.781478 #16613] DEBUG -- : no match
59
- D, [2010-07-31T07:37:35.781590 #16613] DEBUG -- : checking output against output matching /Do\s+you\s+really\s+want\s+to\s+quit/
60
- D, [2010-07-31T07:37:35.781747 #16613] DEBUG -- : matching /Do\s+you\s+really\s+want\s+to\s+quit/ against "\r\nno\r\n\r\nYou are standing at the end of a road before a small brick building.\r\nAround you is a forest. A small stream flows out of the building and\r\ndown a gully.\r\n"
61
- D, [2010-07-31T07:37:35.781878 #16613] DEBUG -- : no match
62
- D, [2010-07-31T07:37:35.782025 #16613] DEBUG -- : checking output against output matching /You\s+are\s+standing\s+at\s+the\s+end\s+of\s+a\s+road\s+before\s+a\s+small\s+brick\s+building\.\s+Around\s+you\s+is\s+a\s+forest\.\s+A\s+small\s+stream\s+flows\s+out\s+of\s+the\s+building\s+and\s+down\s+a\s+gully\./
63
- D, [2010-07-31T07:37:35.782197 #16613] DEBUG -- : matching /You\s+are\s+standing\s+at\s+the\s+end\s+of\s+a\s+road\s+before\s+a\s+small\s+brick\s+building\.\s+Around\s+you\s+is\s+a\s+forest\.\s+A\s+small\s+stream\s+flows\s+out\s+of\s+the\s+building\s+and\s+down\s+a\s+gully\./ against "\r\nno\r\n\r\nYou are standing at the end of a road before a small brick building.\r\nAround you is a forest. A small stream flows out of the building and\r\ndown a gully.\r\n"
64
- D, [2010-07-31T07:37:35.782368 #16613] DEBUG -- : matched /You\s+are\s+standing\s+at\s+the\s+end\s+of\s+a\s+road\s+before\s+a\s+small\s+brick\s+building\.\s+Around\s+you\s+is\s+a\s+forest\.\s+A\s+small\s+stream\s+flows\s+out\s+of\s+the\s+building\s+and\s+down\s+a\s+gully\./
65
- D, [2010-07-31T07:37:35.782489 #16613] DEBUG -- : match trigger output matching /You\s+are\s+standing\s+at\s+the\s+end\s+of\s+a\s+road\s+before\s+a\s+small\s+brick\s+building\.\s+Around\s+you\s+is\s+a\s+forest\.\s+A\s+small\s+stream\s+flows\s+out\s+of\s+the\s+building\s+and\s+down\s+a\s+gully\./
66
- D, [2010-07-31T07:37:35.782572 #16613] DEBUG -- : unblocked
67
- D, [2010-07-31T07:37:35.782654 #16613] DEBUG -- : trigger removed
68
- D, [2010-07-31T07:37:35.785517 #16613] DEBUG -- : added trigger on output matching /You\s+are\s+inside\s+a\s+building,\s+a\s+well\s+house\s+for\s+a\s+large\s+spring\./
69
- D, [2010-07-31T07:37:35.785600 #16613] DEBUG -- : waiting for output matching /You\s+are\s+inside\s+a\s+building,\s+a\s+well\s+house\s+for\s+a\s+large\s+spring\./
70
- D, [2010-07-31T07:37:35.785667 #16613] DEBUG -- : matching /You\s+are\s+inside\s+a\s+building,\s+a\s+well\s+house\s+for\s+a\s+large\s+spring\./ against "\r\n"
71
- D, [2010-07-31T07:37:35.785719 #16613] DEBUG -- : no match
72
- D, [2010-07-31T07:37:35.785776 #16613] DEBUG -- : select()
73
- D, [2010-07-31T07:37:35.785875 #16613] DEBUG -- : select() on [[#<File:/dev/pts/3>], [#<File:/dev/pts/3>], [#<File:/dev/pts/3>, #<File:/dev/pts/3>], 1.0]
74
- D, [2010-07-31T07:37:35.785960 #16613] DEBUG -- : input ready #<File:/dev/pts/3>
75
- D, [2010-07-31T07:37:35.786052 #16613] DEBUG -- :
76
- >> east
77
- D, [2010-07-31T07:37:35.786108 #16613] DEBUG -- : wrote 5 bytes
78
- D, [2010-07-31T07:37:35.786157 #16613] DEBUG -- : select()
79
- D, [2010-07-31T07:37:35.786234 #16613] DEBUG -- : select() on [[#<File:/dev/pts/3>], [], [#<File:/dev/pts/3>, #<File:/dev/pts/3>], 1.0]
80
- D, [2010-07-31T07:37:35.800435 #16613] DEBUG -- : output ready #<File:/dev/pts/3>
81
- D, [2010-07-31T07:37:35.800788 #16613] DEBUG -- :
82
- << east
83
- <<
84
- << You are inside a building, a well house for a large spring.
85
- <<
86
- << There are some keys on the ground here.
87
- <<
88
- << There is a shiny brass lamp nearby.
89
- <<
90
- << There is food here.
91
- <<
92
- << There is a bottle of water here.
93
- D, [2010-07-31T07:37:35.800945 #16613] DEBUG -- : read 210 bytes
94
- D, [2010-07-31T07:37:35.801086 #16613] DEBUG -- : checking output against output matching /__GREENLETTERS_PROCESS_ENDED__/
95
- D, [2010-07-31T07:37:35.801204 #16613] DEBUG -- : matching /__GREENLETTERS_PROCESS_ENDED__/ against "\r\neast\r\n\r\nYou are inside a building, a well house for a large spring.\r\n\r\nThere are some keys on the ground here.\r\n\r\nThere is a shiny brass lamp nearby.\r\n\r\nThere is food here.\r\n\r\nThere is a bottle of water here.\r\n"
96
- D, [2010-07-31T07:37:35.801285 #16613] DEBUG -- : no match
97
- D, [2010-07-31T07:37:35.801373 #16613] DEBUG -- : checking output against output matching /Would\s+you\s+like\s+instructions\?/
98
- D, [2010-07-31T07:37:35.801484 #16613] DEBUG -- : matching /Would\s+you\s+like\s+instructions\?/ against "\r\neast\r\n\r\nYou are inside a building, a well house for a large spring.\r\n\r\nThere are some keys on the ground here.\r\n\r\nThere is a shiny brass lamp nearby.\r\n\r\nThere is food here.\r\n\r\nThere is a bottle of water here.\r\n"
99
- D, [2010-07-31T07:37:35.801563 #16613] DEBUG -- : no match
100
- D, [2010-07-31T07:37:35.801645 #16613] DEBUG -- : checking output against output matching /Do\s+you\s+really\s+want\s+to\s+quit/
101
- D, [2010-07-31T07:37:35.801756 #16613] DEBUG -- : matching /Do\s+you\s+really\s+want\s+to\s+quit/ against "\r\neast\r\n\r\nYou are inside a building, a well house for a large spring.\r\n\r\nThere are some keys on the ground here.\r\n\r\nThere is a shiny brass lamp nearby.\r\n\r\nThere is food here.\r\n\r\nThere is a bottle of water here.\r\n"
102
- D, [2010-07-31T07:37:35.801835 #16613] DEBUG -- : no match
103
- D, [2010-07-31T07:37:35.801917 #16613] DEBUG -- : checking output against output matching /You\s+are\s+inside\s+a\s+building,\s+a\s+well\s+house\s+for\s+a\s+large\s+spring\./
104
- D, [2010-07-31T07:37:35.802020 #16613] DEBUG -- : matching /You\s+are\s+inside\s+a\s+building,\s+a\s+well\s+house\s+for\s+a\s+large\s+spring\./ against "\r\neast\r\n\r\nYou are inside a building, a well house for a large spring.\r\n\r\nThere are some keys on the ground here.\r\n\r\nThere is a shiny brass lamp nearby.\r\n\r\nThere is food here.\r\n\r\nThere is a bottle of water here.\r\n"
105
- D, [2010-07-31T07:37:35.802119 #16613] DEBUG -- : matched /You\s+are\s+inside\s+a\s+building,\s+a\s+well\s+house\s+for\s+a\s+large\s+spring\./
106
- D, [2010-07-31T07:37:35.802212 #16613] DEBUG -- : match trigger output matching /You\s+are\s+inside\s+a\s+building,\s+a\s+well\s+house\s+for\s+a\s+large\s+spring\./
107
- D, [2010-07-31T07:37:35.802288 #16613] DEBUG -- : unblocked
108
- D, [2010-07-31T07:37:35.802369 #16613] DEBUG -- : trigger removed
109
- D, [2010-07-31T07:37:35.805831 #16613] DEBUG -- : added trigger on output matching /You're\s+at\s+end\s+of\s+road\s+again\./
110
- D, [2010-07-31T07:37:35.805956 #16613] DEBUG -- : waiting for output matching /You're\s+at\s+end\s+of\s+road\s+again\./
111
- D, [2010-07-31T07:37:35.806066 #16613] DEBUG -- : matching /You're\s+at\s+end\s+of\s+road\s+again\./ against "\r\n\r\nThere are some keys on the ground here.\r\n\r\nThere is a shiny brass lamp nearby.\r\n\r\nThere is food here.\r\n\r\nThere is a bottle of water here.\r\n"
112
- D, [2010-07-31T07:37:35.806152 #16613] DEBUG -- : no match
113
- D, [2010-07-31T07:37:35.806244 #16613] DEBUG -- : select()
114
- D, [2010-07-31T07:37:35.806388 #16613] DEBUG -- : select() on [[#<File:/dev/pts/3>], [#<File:/dev/pts/3>], [#<File:/dev/pts/3>, #<File:/dev/pts/3>], 1.0]
115
- D, [2010-07-31T07:37:35.806504 #16613] DEBUG -- : input ready #<File:/dev/pts/3>
116
- D, [2010-07-31T07:37:35.806638 #16613] DEBUG -- :
117
- >> west
118
- D, [2010-07-31T07:37:35.806723 #16613] DEBUG -- : wrote 5 bytes
119
- D, [2010-07-31T07:37:35.806805 #16613] DEBUG -- : select()
120
- D, [2010-07-31T07:37:35.806935 #16613] DEBUG -- : select() on [[#<File:/dev/pts/3>], [], [#<File:/dev/pts/3>, #<File:/dev/pts/3>], 1.0]
121
- D, [2010-07-31T07:37:35.813204 #16613] DEBUG -- : output ready #<File:/dev/pts/3>
122
- D, [2010-07-31T07:37:35.813825 #16613] DEBUG -- :
123
- << west
124
- <<
125
- << You're at end of road again.
126
- D, [2010-07-31T07:37:35.813915 #16613] DEBUG -- : read 38 bytes
127
- D, [2010-07-31T07:37:35.813997 #16613] DEBUG -- : checking output against output matching /__GREENLETTERS_PROCESS_ENDED__/
128
- D, [2010-07-31T07:37:35.814065 #16613] DEBUG -- : matching /__GREENLETTERS_PROCESS_ENDED__/ against "\r\n\r\nThere are some keys on the ground here.\r\n\r\nThere is a shiny brass lamp nearby.\r\n\r\nThere is food here.\r\n\r\nThere is a bottle of water here.\r\nwest\r\n\r\nYou're at end of road again.\r\n"
129
- D, [2010-07-31T07:37:35.814111 #16613] DEBUG -- : no match
130
- D, [2010-07-31T07:37:35.814158 #16613] DEBUG -- : checking output against output matching /Would\s+you\s+like\s+instructions\?/
131
- D, [2010-07-31T07:37:35.814217 #16613] DEBUG -- : matching /Would\s+you\s+like\s+instructions\?/ against "\r\n\r\nThere are some keys on the ground here.\r\n\r\nThere is a shiny brass lamp nearby.\r\n\r\nThere is food here.\r\n\r\nThere is a bottle of water here.\r\nwest\r\n\r\nYou're at end of road again.\r\n"
132
- D, [2010-07-31T07:37:35.814260 #16613] DEBUG -- : no match
133
- D, [2010-07-31T07:37:35.814306 #16613] DEBUG -- : checking output against output matching /Do\s+you\s+really\s+want\s+to\s+quit/
134
- D, [2010-07-31T07:37:35.814361 #16613] DEBUG -- : matching /Do\s+you\s+really\s+want\s+to\s+quit/ against "\r\n\r\nThere are some keys on the ground here.\r\n\r\nThere is a shiny brass lamp nearby.\r\n\r\nThere is food here.\r\n\r\nThere is a bottle of water here.\r\nwest\r\n\r\nYou're at end of road again.\r\n"
135
- D, [2010-07-31T07:37:35.814410 #16613] DEBUG -- : no match
136
- D, [2010-07-31T07:37:35.814455 #16613] DEBUG -- : checking output against output matching /You're\s+at\s+end\s+of\s+road\s+again\./
137
- D, [2010-07-31T07:37:35.814511 #16613] DEBUG -- : matching /You're\s+at\s+end\s+of\s+road\s+again\./ against "\r\n\r\nThere are some keys on the ground here.\r\n\r\nThere is a shiny brass lamp nearby.\r\n\r\nThere is food here.\r\n\r\nThere is a bottle of water here.\r\nwest\r\n\r\nYou're at end of road again.\r\n"
138
- D, [2010-07-31T07:37:35.814564 #16613] DEBUG -- : matched /You're\s+at\s+end\s+of\s+road\s+again\./
139
- D, [2010-07-31T07:37:35.814613 #16613] DEBUG -- : match trigger output matching /You're\s+at\s+end\s+of\s+road\s+again\./
140
- D, [2010-07-31T07:37:35.814660 #16613] DEBUG -- : unblocked
141
- D, [2010-07-31T07:37:35.814705 #16613] DEBUG -- : trigger removed
142
- D, [2010-07-31T07:37:35.817046 #16613] DEBUG -- : added trigger on output matching /You\s+are\s+in\s+a\s+valley\s+in\s+the\s+forest\s+beside\s+a\s+stream\s+tumbling\s+along\s+a\s+rocky\s+bed\./
143
- D, [2010-07-31T07:37:35.817133 #16613] DEBUG -- : waiting for output matching /You\s+are\s+in\s+a\s+valley\s+in\s+the\s+forest\s+beside\s+a\s+stream\s+tumbling\s+along\s+a\s+rocky\s+bed\./
144
- D, [2010-07-31T07:37:35.817212 #16613] DEBUG -- : matching /You\s+are\s+in\s+a\s+valley\s+in\s+the\s+forest\s+beside\s+a\s+stream\s+tumbling\s+along\s+a\s+rocky\s+bed\./ against "\r\n"
145
- D, [2010-07-31T07:37:35.817261 #16613] DEBUG -- : no match
146
- D, [2010-07-31T07:37:35.817310 #16613] DEBUG -- : select()
147
- D, [2010-07-31T07:37:35.817393 #16613] DEBUG -- : select() on [[#<File:/dev/pts/3>], [#<File:/dev/pts/3>], [#<File:/dev/pts/3>, #<File:/dev/pts/3>], 1.0]
148
- D, [2010-07-31T07:37:35.817464 #16613] DEBUG -- : input ready #<File:/dev/pts/3>
149
- D, [2010-07-31T07:37:35.817542 #16613] DEBUG -- :
150
- >> south
151
- D, [2010-07-31T07:37:35.817597 #16613] DEBUG -- : wrote 6 bytes
152
- D, [2010-07-31T07:37:35.817640 #16613] DEBUG -- : select()
153
- D, [2010-07-31T07:37:35.817705 #16613] DEBUG -- : select() on [[#<File:/dev/pts/3>], [], [#<File:/dev/pts/3>, #<File:/dev/pts/3>], 1.0]
154
- D, [2010-07-31T07:37:35.830371 #16613] DEBUG -- : output ready #<File:/dev/pts/3>
155
- D, [2010-07-31T07:37:35.830569 #16613] DEBUG -- :
156
- << south
157
- <<
158
- << You are in a valley in the forest beside a stream tumbling along a
159
- << rocky bed.
160
- D, [2010-07-31T07:37:35.830649 #16613] DEBUG -- : read 89 bytes
161
- D, [2010-07-31T07:37:35.830766 #16613] DEBUG -- : checking output against output matching /__GREENLETTERS_PROCESS_ENDED__/
162
- D, [2010-07-31T07:37:35.830866 #16613] DEBUG -- : matching /__GREENLETTERS_PROCESS_ENDED__/ against "\r\nsouth\r\n\r\nYou are in a valley in the forest beside a stream tumbling along a\r\nrocky bed.\r\n"
163
- D, [2010-07-31T07:37:35.831004 #16613] DEBUG -- : no match
164
- D, [2010-07-31T07:37:35.831152 #16613] DEBUG -- : checking output against output matching /Would\s+you\s+like\s+instructions\?/
165
- D, [2010-07-31T07:37:35.831317 #16613] DEBUG -- : matching /Would\s+you\s+like\s+instructions\?/ against "\r\nsouth\r\n\r\nYou are in a valley in the forest beside a stream tumbling along a\r\nrocky bed.\r\n"
166
- D, [2010-07-31T07:37:35.831452 #16613] DEBUG -- : no match
167
- D, [2010-07-31T07:37:35.831592 #16613] DEBUG -- : checking output against output matching /Do\s+you\s+really\s+want\s+to\s+quit/
168
- D, [2010-07-31T07:37:35.831763 #16613] DEBUG -- : matching /Do\s+you\s+really\s+want\s+to\s+quit/ against "\r\nsouth\r\n\r\nYou are in a valley in the forest beside a stream tumbling along a\r\nrocky bed.\r\n"
169
- D, [2010-07-31T07:37:35.831903 #16613] DEBUG -- : no match
170
- D, [2010-07-31T07:37:35.832047 #16613] DEBUG -- : checking output against output matching /You\s+are\s+in\s+a\s+valley\s+in\s+the\s+forest\s+beside\s+a\s+stream\s+tumbling\s+along\s+a\s+rocky\s+bed\./
171
- D, [2010-07-31T07:37:35.832212 #16613] DEBUG -- : matching /You\s+are\s+in\s+a\s+valley\s+in\s+the\s+forest\s+beside\s+a\s+stream\s+tumbling\s+along\s+a\s+rocky\s+bed\./ against "\r\nsouth\r\n\r\nYou are in a valley in the forest beside a stream tumbling along a\r\nrocky bed.\r\n"
172
- D, [2010-07-31T07:37:35.832388 #16613] DEBUG -- : matched /You\s+are\s+in\s+a\s+valley\s+in\s+the\s+forest\s+beside\s+a\s+stream\s+tumbling\s+along\s+a\s+rocky\s+bed\./
173
- D, [2010-07-31T07:37:35.832528 #16613] DEBUG -- : match trigger output matching /You\s+are\s+in\s+a\s+valley\s+in\s+the\s+forest\s+beside\s+a\s+stream\s+tumbling\s+along\s+a\s+rocky\s+bed\./
174
- D, [2010-07-31T07:37:35.832667 #16613] DEBUG -- : unblocked
175
- D, [2010-07-31T07:37:35.832802 #16613] DEBUG -- : trigger removed
176
- D, [2010-07-31T07:37:35.838590 #16613] DEBUG -- : added trigger on exit with status 0
177
- D, [2010-07-31T07:37:35.838770 #16613] DEBUG -- : waiting for exit with status 0
178
- D, [2010-07-31T07:37:35.838907 #16613] DEBUG -- : no match
179
- D, [2010-07-31T07:37:35.839082 #16613] DEBUG -- : select()
180
- D, [2010-07-31T07:37:35.839303 #16613] DEBUG -- : select() on [[#<File:/dev/pts/3>], [#<File:/dev/pts/3>], [#<File:/dev/pts/3>, #<File:/dev/pts/3>], 1.0]
181
- D, [2010-07-31T07:37:35.839493 #16613] DEBUG -- : input ready #<File:/dev/pts/3>
182
- D, [2010-07-31T07:37:35.839721 #16613] DEBUG -- :
183
- >> quit
184
- D, [2010-07-31T07:37:35.839865 #16613] DEBUG -- : wrote 5 bytes
185
- D, [2010-07-31T07:37:35.839991 #16613] DEBUG -- : select()
186
- D, [2010-07-31T07:37:35.840194 #16613] DEBUG -- : select() on [[#<File:/dev/pts/3>], [], [#<File:/dev/pts/3>, #<File:/dev/pts/3>], 1.0]
187
- D, [2010-07-31T07:37:35.870399 #16613] DEBUG -- : output ready #<File:/dev/pts/3>
188
- D, [2010-07-31T07:37:35.870536 #16613] DEBUG -- :
189
- << quit
190
- <<
191
- << Do you really want to quit now?
192
- D, [2010-07-31T07:37:35.870575 #16613] DEBUG -- : read 41 bytes
193
- D, [2010-07-31T07:37:35.870635 #16613] DEBUG -- : checking output against output matching /__GREENLETTERS_PROCESS_ENDED__/
194
- D, [2010-07-31T07:37:35.870681 #16613] DEBUG -- : matching /__GREENLETTERS_PROCESS_ENDED__/ against "\r\nquit\r\n\r\nDo you really want to quit now?\r\n"
195
- D, [2010-07-31T07:37:35.870716 #16613] DEBUG -- : no match
196
- D, [2010-07-31T07:37:35.870752 #16613] DEBUG -- : checking output against output matching /Would\s+you\s+like\s+instructions\?/
197
- D, [2010-07-31T07:37:35.870788 #16613] DEBUG -- : matching /Would\s+you\s+like\s+instructions\?/ against "\r\nquit\r\n\r\nDo you really want to quit now?\r\n"
198
- D, [2010-07-31T07:37:35.870819 #16613] DEBUG -- : no match
199
- D, [2010-07-31T07:37:35.870852 #16613] DEBUG -- : checking output against output matching /Do\s+you\s+really\s+want\s+to\s+quit/
200
- D, [2010-07-31T07:37:35.870886 #16613] DEBUG -- : matching /Do\s+you\s+really\s+want\s+to\s+quit/ against "\r\nquit\r\n\r\nDo you really want to quit now?\r\n"
201
- D, [2010-07-31T07:37:35.870931 #16613] DEBUG -- : matched /Do\s+you\s+really\s+want\s+to\s+quit/
202
- D, [2010-07-31T07:37:35.871096 #16613] DEBUG -- : match trigger output matching /Do\s+you\s+really\s+want\s+to\s+quit/
203
- D, [2010-07-31T07:37:35.871211 #16613] DEBUG -- : select()
204
- D, [2010-07-31T07:37:35.871352 #16613] DEBUG -- : select() on [[#<File:/dev/pts/3>], [#<File:/dev/pts/3>], [#<File:/dev/pts/3>, #<File:/dev/pts/3>], 1.0]
205
- D, [2010-07-31T07:37:35.871463 #16613] DEBUG -- : input ready #<File:/dev/pts/3>
206
- D, [2010-07-31T07:37:35.871595 #16613] DEBUG -- :
207
- >> yes
208
- D, [2010-07-31T07:37:35.871680 #16613] DEBUG -- : wrote 4 bytes
209
- D, [2010-07-31T07:37:35.871756 #16613] DEBUG -- : select()
210
- D, [2010-07-31T07:37:35.871871 #16613] DEBUG -- : select() on [[#<File:/dev/pts/3>], [], [#<File:/dev/pts/3>, #<File:/dev/pts/3>], 1.0]
211
- D, [2010-07-31T07:37:35.890580 #16613] DEBUG -- : output ready #<File:/dev/pts/3>
212
- D, [2010-07-31T07:37:35.890819 #16613] DEBUG -- :
213
- << yes
214
- <<
215
- << OK
216
- <<
217
- <<
218
- <<
219
- << You scored 32 out of a possible 350 using 4 turns.
220
- <<
221
- << You are obviously a rank amateur. Better luck next time.
222
- << To achieve the next higher rating, you need 4 more points.
223
- << __GREENLETTERS_PROCESS_ENDED__
224
- D, [2010-07-31T07:37:35.890915 #16613] DEBUG -- : read 222 bytes
225
- D, [2010-07-31T07:37:35.891038 #16613] DEBUG -- : checking output against output matching /__GREENLETTERS_PROCESS_ENDED__/
226
- D, [2010-07-31T07:37:35.891156 #16613] DEBUG -- : matching /__GREENLETTERS_PROCESS_ENDED__/ against " now?\r\nyes\r\n\r\nOK\r\n\r\n\r\n\r\nYou scored 32 out of a possible 350 using 4 turns.\r\n\r\nYou are obviously a rank amateur. Better luck next time.\r\nTo achieve the next higher rating, you need 4 more points.\r\n__GREENLETTERS_PROCESS_ENDED__\r\n"
227
- D, [2010-07-31T07:37:35.891252 #16613] DEBUG -- : matched /__GREENLETTERS_PROCESS_ENDED__/
228
- D, [2010-07-31T07:37:35.891340 #16613] DEBUG -- : end marker found
229
- D, [2010-07-31T07:37:35.891468 #16613] DEBUG -- : end marker expunged from output buffer
230
- D, [2010-07-31T07:37:35.891551 #16613] DEBUG -- : acknowledging end marker
231
- D, [2010-07-31T07:37:35.891650 #16613] DEBUG -- : match trigger output matching /__GREENLETTERS_PROCESS_ENDED__/
232
- D, [2010-07-31T07:37:35.891740 #16613] DEBUG -- : checking output against output matching /Would\s+you\s+like\s+instructions\?/
233
- D, [2010-07-31T07:37:35.891846 #16613] DEBUG -- : matching /Would\s+you\s+like\s+instructions\?/ against " now?\r\nyes\r\n\r\nOK\r\n\r\n\r\n\r\nYou scored 32 out of a possible 350 using 4 turns.\r\n\r\nYou are obviously a rank amateur. Better luck next time.\r\nTo achieve the next higher rating, you need 4 more points.\r\n"
234
- D, [2010-07-31T07:37:35.891925 #16613] DEBUG -- : no match
235
- D, [2010-07-31T07:37:35.892007 #16613] DEBUG -- : checking output against output matching /Do\s+you\s+really\s+want\s+to\s+quit/
236
- D, [2010-07-31T07:37:35.892107 #16613] DEBUG -- : matching /Do\s+you\s+really\s+want\s+to\s+quit/ against " now?\r\nyes\r\n\r\nOK\r\n\r\n\r\n\r\nYou scored 32 out of a possible 350 using 4 turns.\r\n\r\nYou are obviously a rank amateur. Better luck next time.\r\nTo achieve the next higher rating, you need 4 more points.\r\n"
237
- D, [2010-07-31T07:37:35.892184 #16613] DEBUG -- : no match
238
- D, [2010-07-31T07:37:35.892267 #16613] DEBUG -- : flushing triggers matching Greenletters::OutputTrigger
239
- D, [2010-07-31T07:37:35.892365 #16613] DEBUG -- : flushing triggers matching Greenletters::BytesTrigger
240
- D, [2010-07-31T07:37:35.892447 #16613] DEBUG -- : select()
241
- D, [2010-07-31T07:37:35.892581 #16613] DEBUG -- : select() on [[#<File:/dev/pts/3>], [#<File:/dev/pts/3>], [#<File:/dev/pts/3>, #<File:/dev/pts/3>], 1.0]
242
- D, [2010-07-31T07:37:35.892692 #16613] DEBUG -- : input ready #<File:/dev/pts/3>
243
- D, [2010-07-31T07:37:35.892827 #16613] DEBUG -- :
244
-
245
- D, [2010-07-31T07:37:35.892911 #16613] DEBUG -- : wrote 1 bytes
246
- D, [2010-07-31T07:37:35.892988 #16613] DEBUG -- : select()
247
- D, [2010-07-31T07:37:35.893100 #16613] DEBUG -- : select() on [[#<File:/dev/pts/3>], [], [#<File:/dev/pts/3>, #<File:/dev/pts/3>], 1.0]
248
- D, [2010-07-31T07:37:35.900995 #16613] DEBUG -- : output ready #<File:/dev/pts/3>
249
- D, [2010-07-31T07:37:35.670905 #16613] DEBUG -- :
250
- <<
251
- D, [2010-07-31T07:37:35.671079 #16613] DEBUG -- : read 2 bytes
252
- D, [2010-07-31T07:37:35.671244 #16613] DEBUG -- : flushing triggers matching Greenletters::OutputTrigger
253
- D, [2010-07-31T07:37:35.671384 #16613] DEBUG -- : flushing triggers matching Greenletters::BytesTrigger
254
- D, [2010-07-31T07:37:35.671509 #16613] DEBUG -- : select()
255
- D, [2010-07-31T07:37:35.671681 #16613] DEBUG -- : select() on [[#<File:/dev/pts/2>], [], [#<File:/dev/pts/2>, #<File:/dev/pts/2>], 1.0]
256
- D, [2010-07-31T07:37:35.671835 #16613] DEBUG -- : output ready #<File:/dev/pts/2>
257
- D, [2010-07-31T07:37:35.672236 #16613] DEBUG -- : Errno::EIO caught
258
- D, [2010-07-31T07:37:35.672378 #16613] DEBUG -- : waiting for child 16615 to die
259
- D, [2010-07-31T07:37:35.723882 #16613] DEBUG -- : caught PTY::ChildExited
260
- D, [2010-07-31T07:37:35.724461 #16613] DEBUG -- : collecting remaining output
261
- D, [2010-07-31T07:37:35.724849 #16613] DEBUG -- : Input/output error - /dev/pts/2
262
- D, [2010-07-31T07:37:35.724989 #16613] DEBUG -- : handling exit of process 16615
263
- D, [2010-07-31T07:37:35.725153 #16613] DEBUG -- : checking exit against exit with status 0
264
- D, [2010-07-31T07:37:35.725323 #16613] DEBUG -- : match trigger exit with status 0
265
- D, [2010-07-31T07:37:35.725445 #16613] DEBUG -- : unblocked
266
- D, [2010-07-31T07:37:35.725571 #16613] DEBUG -- : trigger removed