CGI#out fails new rubypecs, prints results to original stdout rather than to the redefined one ----------------------------------------------------------------------------------------------
Key: JRUBY-2710 URL: http://jira.codehaus.org/browse/JRUBY-2710 Project: JRuby Issue Type: Bug Components: Core Classes/Modules Affects Versions: JRuby 1.1.2 Environment: Latest JRuby Reporter: Vladimir Sizikov Assignee: Vladimir Sizikov Fix For: JRuby 1.1.3 CGI#out prints results to wrong output, thus failing the rubyspecs: {noformat} >mspec -t j 1.8/library/cgi .......................................................................Content-Type: text/html Content-Length: 0 FContent-Type: text/html Content-Length: 5 test!FContent-Type: text/html Content-Length: 10 0123456789FContent-Type: text/html Content-Length: 0 Set-Cookie: multiple Set-Cookie: cookies F......................................................................... 1) CGI#out it writes a HTMl header based on the passed argument to $stdout FAILED Expected "" to equal "Content-Type: text/html\r\nContent-Length: 0\r\n\r\n" /opt/work/mspec.git/lib/mspec/expectations/expectations.rb:10:in `fail_with' /opt/work/mspec.git/lib/mspec/matchers/base.rb:9:in `==' /opt/work/spec/ruby/./1.8/library/cgi/out_spec.rb:16 /opt/work/mspec.git/lib/mspec/runner/mspec.rb:124:in `instance_eval' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:124:in `protect' /opt/work/mspec.git/lib/mspec/runner/state.rb:46:in `each' /opt/work/mspec.git/lib/mspec/runner/state.rb:46:in `protect' /opt/work/mspec.git/lib/mspec/runner/state.rb:60:in `process' /opt/work/mspec.git/lib/mspec/runner/state.rb:56:in `each' /opt/work/mspec.git/lib/mspec/runner/state.rb:56:in `process' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:28:in `describe' /opt/work/mspec.git/lib/mspec/runner/object.rb:11:in `describe' /opt/work/spec/ruby/./1.8/library/cgi/out_spec.rb:4 /opt/work/spec/ruby/./1.8/library/cgi/out_spec.rb:49:in `load' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:49:in `files' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:124:in `instance_eval' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:124:in `protect' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:49:in `files' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:43:in `each' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:43:in `files' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:35:in `process' /opt/work/mspec.git/lib/mspec/commands/mspec-run.rb:76:in `run' /opt/work/mspec.git/lib/mspec/utils/script.rb:85:in `main' /opt/work/mspec.git/bin/mspec-run:8 2) CGI#out appends the block's return value to the HTML header FAILED Expected "" to equal "Content-Type: text/html\r\nContent-Length: 5\r\n\r\ntest!" /opt/work/mspec.git/lib/mspec/expectations/expectations.rb:10:in `fail_with' /opt/work/mspec.git/lib/mspec/matchers/base.rb:9:in `==' /opt/work/spec/ruby/./1.8/library/cgi/out_spec.rb:21 /opt/work/mspec.git/lib/mspec/runner/mspec.rb:124:in `instance_eval' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:124:in `protect' /opt/work/mspec.git/lib/mspec/runner/state.rb:46:in `each' /opt/work/mspec.git/lib/mspec/runner/state.rb:46:in `protect' /opt/work/mspec.git/lib/mspec/runner/state.rb:60:in `process' /opt/work/mspec.git/lib/mspec/runner/state.rb:56:in `each' /opt/work/mspec.git/lib/mspec/runner/state.rb:56:in `process' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:28:in `describe' /opt/work/mspec.git/lib/mspec/runner/object.rb:11:in `describe' /opt/work/spec/ruby/./1.8/library/cgi/out_spec.rb:4 /opt/work/spec/ruby/./1.8/library/cgi/out_spec.rb:49:in `load' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:49:in `files' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:124:in `instance_eval' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:124:in `protect' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:49:in `files' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:43:in `each' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:43:in `files' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:35:in `process' /opt/work/mspec.git/lib/mspec/commands/mspec-run.rb:76:in `run' /opt/work/mspec.git/lib/mspec/utils/script.rb:85:in `main' /opt/work/mspec.git/bin/mspec-run:8 3) CGI#out automatically sets the Content-Length Header based on the block's return value FAILED Expected "" to equal "Content-Type: text/html\r\nContent-Length: 10\r\n\r\n0123456789" /opt/work/mspec.git/lib/mspec/expectations/expectations.rb:10:in `fail_with' /opt/work/mspec.git/lib/mspec/matchers/base.rb:9:in `==' /opt/work/spec/ruby/./1.8/library/cgi/out_spec.rb:26 /opt/work/mspec.git/lib/mspec/runner/mspec.rb:124:in `instance_eval' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:124:in `protect' /opt/work/mspec.git/lib/mspec/runner/state.rb:46:in `each' /opt/work/mspec.git/lib/mspec/runner/state.rb:46:in `protect' /opt/work/mspec.git/lib/mspec/runner/state.rb:60:in `process' /opt/work/mspec.git/lib/mspec/runner/state.rb:56:in `each' /opt/work/mspec.git/lib/mspec/runner/state.rb:56:in `process' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:28:in `describe' /opt/work/mspec.git/lib/mspec/runner/object.rb:11:in `describe' /opt/work/spec/ruby/./1.8/library/cgi/out_spec.rb:4 /opt/work/spec/ruby/./1.8/library/cgi/out_spec.rb:49:in `load' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:49:in `files' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:124:in `instance_eval' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:124:in `protect' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:49:in `files' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:43:in `each' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:43:in `files' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:35:in `process' /opt/work/mspec.git/lib/mspec/commands/mspec-run.rb:76:in `run' /opt/work/mspec.git/lib/mspec/utils/script.rb:85:in `main' /opt/work/mspec.git/bin/mspec-run:8 4) CGI#out includes Cookies in the @output_cookies field FAILED Expected "" to equal "Content-Type: text/html\r\nContent-Length: 0\r\nSet-Cookie: multiple\r\nSet-Cookie: cookies\r\n\r\n" /opt/work/mspec.git/lib/mspec/expectations/expectations.rb:10:in `fail_with' /opt/work/mspec.git/lib/mspec/matchers/base.rb:9:in `==' /opt/work/spec/ruby/./1.8/library/cgi/out_spec.rb:32 /opt/work/mspec.git/lib/mspec/runner/mspec.rb:124:in `instance_eval' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:124:in `protect' /opt/work/mspec.git/lib/mspec/runner/state.rb:46:in `each' /opt/work/mspec.git/lib/mspec/runner/state.rb:46:in `protect' /opt/work/mspec.git/lib/mspec/runner/state.rb:60:in `process' /opt/work/mspec.git/lib/mspec/runner/state.rb:56:in `each' /opt/work/mspec.git/lib/mspec/runner/state.rb:56:in `process' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:28:in `describe' /opt/work/mspec.git/lib/mspec/runner/object.rb:11:in `describe' /opt/work/spec/ruby/./1.8/library/cgi/out_spec.rb:4 /opt/work/spec/ruby/./1.8/library/cgi/out_spec.rb:49:in `load' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:49:in `files' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:124:in `instance_eval' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:124:in `protect' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:49:in `files' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:43:in `each' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:43:in `files' /opt/work/mspec.git/lib/mspec/runner/mspec.rb:35:in `process' /opt/work/mspec.git/lib/mspec/commands/mspec-run.rb:76:in `run' /opt/work/mspec.git/lib/mspec/utils/script.rb:85:in `main' /opt/work/mspec.git/bin/mspec-run:8 Finished in 0.722000 seconds 105 files, 148 examples, 105 expectations, 4 failures, 0 errors {noformat} The issue, it seems that CGI#out used $DEFAULT_OUTPUT from 'English' library, but JRuby doesn't redefine the value of that variable when $stdout is redefined. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email