summaryrefslogtreecommitdiff
path: root/spec/ruby/library
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/library')
-rw-r--r--spec/ruby/library/bigdecimal/limit_spec.rb17
-rw-r--r--spec/ruby/library/date/constants_spec.rb8
-rw-r--r--spec/ruby/library/date/minus_month_spec.rb9
-rw-r--r--spec/ruby/library/datetime/now_spec.rb2
-rw-r--r--spec/ruby/library/datetime/to_time_spec.rb12
-rw-r--r--spec/ruby/library/erb/new_spec.rb6
-rw-r--r--spec/ruby/library/etc/nprocessors_spec.rb10
-rw-r--r--spec/ruby/library/openssl/config/freeze_spec.rb8
-rw-r--r--spec/ruby/library/socket/ipsocket/peeraddr_spec.rb4
-rw-r--r--spec/ruby/library/socket/unixsocket/peeraddr_spec.rb4
-rw-r--r--spec/ruby/library/stringio/printf_spec.rb10
-rw-r--r--spec/ruby/library/syslog/alert_spec.rb3
-rw-r--r--spec/ruby/library/syslog/close_spec.rb3
-rw-r--r--spec/ruby/library/syslog/constants_spec.rb3
-rw-r--r--spec/ruby/library/syslog/crit_spec.rb3
-rw-r--r--spec/ruby/library/syslog/debug_spec.rb3
-rw-r--r--spec/ruby/library/syslog/emerg_spec.rb3
-rw-r--r--spec/ruby/library/syslog/err_spec.rb3
-rw-r--r--spec/ruby/library/syslog/facility_spec.rb3
-rw-r--r--spec/ruby/library/syslog/ident_spec.rb3
-rw-r--r--spec/ruby/library/syslog/info_spec.rb3
-rw-r--r--spec/ruby/library/syslog/inspect_spec.rb3
-rw-r--r--spec/ruby/library/syslog/instance_spec.rb3
-rw-r--r--spec/ruby/library/syslog/log_spec.rb3
-rw-r--r--spec/ruby/library/syslog/mask_spec.rb3
-rw-r--r--spec/ruby/library/syslog/notice_spec.rb3
-rw-r--r--spec/ruby/library/syslog/open_spec.rb12
-rw-r--r--spec/ruby/library/syslog/opened_spec.rb3
-rw-r--r--spec/ruby/library/syslog/options_spec.rb3
-rw-r--r--spec/ruby/library/syslog/reopen_spec.rb3
-rw-r--r--spec/ruby/library/syslog/warning_spec.rb3
-rw-r--r--spec/ruby/library/time/to_datetime_spec.rb27
-rw-r--r--spec/ruby/library/uri/join_spec.rb4
-rw-r--r--spec/ruby/library/uri/shared/join.rb4
-rw-r--r--spec/ruby/library/yaml/load_spec.rb21
35 files changed, 166 insertions, 49 deletions
diff --git a/spec/ruby/library/bigdecimal/limit_spec.rb b/spec/ruby/library/bigdecimal/limit_spec.rb
index 41308abcd8..0c90415aec 100644
--- a/spec/ruby/library/bigdecimal/limit_spec.rb
+++ b/spec/ruby/library/bigdecimal/limit_spec.rb
@@ -11,20 +11,35 @@ describe "BigDecimal.limit" do
BigDecimal.limit(old)
end
- it "use the global limit if no precision is specified" do
+ it "uses the global limit if no precision is specified" do
BigDecimalSpecs.with_limit(0) do
(BigDecimal('0.888') + BigDecimal('0')).should == BigDecimal('0.888')
+ (BigDecimal('0.888') - BigDecimal('0')).should == BigDecimal('0.888')
(BigDecimal('0.888') * BigDecimal('3')).should == BigDecimal('2.664')
+ (BigDecimal('0.888') / BigDecimal('3')).should == BigDecimal('0.296')
end
BigDecimalSpecs.with_limit(1) do
(BigDecimal('0.888') + BigDecimal('0')).should == BigDecimal('0.9')
+ (BigDecimal('0.888') - BigDecimal('0')).should == BigDecimal('0.9')
(BigDecimal('0.888') * BigDecimal('3')).should == BigDecimal('3')
+ (BigDecimal('0.888') / BigDecimal('3')).should == BigDecimal('0.3')
end
BigDecimalSpecs.with_limit(2) do
(BigDecimal('0.888') + BigDecimal('0')).should == BigDecimal('0.89')
+ (BigDecimal('0.888') - BigDecimal('0')).should == BigDecimal('0.89')
(BigDecimal('0.888') * BigDecimal('3')).should == BigDecimal('2.7')
+ (BigDecimal('0.888') / BigDecimal('3')).should == BigDecimal('0.30')
+ end
+ end
+
+ it "picks the specified precision over global limit" do
+ BigDecimalSpecs.with_limit(3) do
+ BigDecimal('0.888').add(BigDecimal('0'), 2).should == BigDecimal('0.89')
+ BigDecimal('0.888').sub(BigDecimal('0'), 2).should == BigDecimal('0.89')
+ BigDecimal('0.888').mult(BigDecimal('3'), 2).should == BigDecimal('2.7')
+ BigDecimal('0.888').div(BigDecimal('3'), 2).should == BigDecimal('0.30')
end
end
end
diff --git a/spec/ruby/library/date/constants_spec.rb b/spec/ruby/library/date/constants_spec.rb
index 8e564fe665..ae343f07ec 100644
--- a/spec/ruby/library/date/constants_spec.rb
+++ b/spec/ruby/library/date/constants_spec.rb
@@ -34,9 +34,13 @@ describe "Date constants" do
it "freezes MONTHNAMES, DAYNAMES, ABBR_MONTHNAMES, ABBR_DAYSNAMES" do
[Date::MONTHNAMES, Date::DAYNAMES, Date::ABBR_MONTHNAMES, Date::ABBR_DAYNAMES].each do |ary|
- lambda { ary << "Unknown" }.should raise_error
+ lambda {
+ ary << "Unknown"
+ }.should raise_error(RuntimeError, /frozen/)
ary.compact.each do |name|
- lambda { name << "modified" }.should raise_error
+ lambda {
+ name << "modified"
+ }.should raise_error(RuntimeError, /frozen/)
end
end
end
diff --git a/spec/ruby/library/date/minus_month_spec.rb b/spec/ruby/library/date/minus_month_spec.rb
index fbe5cb8593..51befcc6d4 100644
--- a/spec/ruby/library/date/minus_month_spec.rb
+++ b/spec/ruby/library/date/minus_month_spec.rb
@@ -13,15 +13,6 @@ describe "Date#<<" do
d.should == Date.civil(2008, 2, 29)
end
- ruby_version_is ""..."2.3" do
- it "raises an error on non numeric parameters" do
- lambda { Date.civil(2007,2,27) << :hello }.should raise_error
- lambda { Date.civil(2007,2,27) << "hello" }.should raise_error
- lambda { Date.civil(2007,2,27) << Date.new }.should raise_error
- lambda { Date.civil(2007,2,27) << Object.new }.should raise_error
- end
- end
-
ruby_version_is "2.3" do
it "raises an error on non numeric parameters" do
lambda { Date.civil(2007,2,27) << :hello }.should raise_error(TypeError)
diff --git a/spec/ruby/library/datetime/now_spec.rb b/spec/ruby/library/datetime/now_spec.rb
index a5bf590aff..9118163533 100644
--- a/spec/ruby/library/datetime/now_spec.rb
+++ b/spec/ruby/library/datetime/now_spec.rb
@@ -7,7 +7,7 @@ describe "DateTime.now" do
end
it "sets the current date" do
- (DateTime.now - Date.today).to_f.should be_close(0.0, 1.0)
+ (DateTime.now - Date.today).to_f.should be_close(0.0, 2.0)
end
it "sets the current time" do
diff --git a/spec/ruby/library/datetime/to_time_spec.rb b/spec/ruby/library/datetime/to_time_spec.rb
index f5b7cb8a23..2a016d1528 100644
--- a/spec/ruby/library/datetime/to_time_spec.rb
+++ b/spec/ruby/library/datetime/to_time_spec.rb
@@ -6,6 +6,18 @@ describe "DateTime#to_time" do
DateTime.now.to_time.should be_kind_of(Time)
end
+ it "returns a Time representing the same instant" do
+ datetime = DateTime.civil(3, 12, 31, 23, 58, 59)
+ time = datetime.to_time.utc
+
+ time.year.should == 3
+ time.month.should == 12
+ time.day.should == 31
+ time.hour.should == 23
+ time.min.should == 58
+ time.sec.should == 59
+ end
+
ruby_version_is "2.4" do
it "preserves the same time regardless of local time or zone" do
date = DateTime.new(2012, 12, 24, 12, 23, 00, '+03:00')
diff --git a/spec/ruby/library/erb/new_spec.rb b/spec/ruby/library/erb/new_spec.rb
index 917fd470b7..f141f1c00e 100644
--- a/spec/ruby/library/erb/new_spec.rb
+++ b/spec/ruby/library/erb/new_spec.rb
@@ -65,7 +65,7 @@ END
end
- it "not support '<%-= expr %> even when trim_mode is '-'" do
+ it "does not support '<%-= expr %> even when trim_mode is '-'" do
input = <<'END'
<p>
@@ -74,7 +74,9 @@ END
</p>
END
- lambda { ERB.new(input, nil, '-').result }.should raise_error
+ lambda {
+ ERB.new(input, nil, '-').result
+ }.should raise_error(SyntaxError)
end
it "regards lines starting with '%' as '<% ... %>' when trim_mode is '%'" do
diff --git a/spec/ruby/library/etc/nprocessors_spec.rb b/spec/ruby/library/etc/nprocessors_spec.rb
index bce11d06c5..2a22aaafdf 100644
--- a/spec/ruby/library/etc/nprocessors_spec.rb
+++ b/spec/ruby/library/etc/nprocessors_spec.rb
@@ -1,11 +1,9 @@
require File.expand_path('../../../spec_helper', __FILE__)
require 'etc'
-ruby_version_is "2.2" do
- describe "Etc.nprocessors" do
- it "returns the number of online processors" do
- Etc.nprocessors.should be_kind_of(Integer)
- Etc.nprocessors.should >= 1
- end
+describe "Etc.nprocessors" do
+ it "returns the number of online processors" do
+ Etc.nprocessors.should be_kind_of(Integer)
+ Etc.nprocessors.should >= 1
end
end
diff --git a/spec/ruby/library/openssl/config/freeze_spec.rb b/spec/ruby/library/openssl/config/freeze_spec.rb
index 2ed48ae629..b764df4f45 100644
--- a/spec/ruby/library/openssl/config/freeze_spec.rb
+++ b/spec/ruby/library/openssl/config/freeze_spec.rb
@@ -8,9 +8,13 @@ describe "OpenSSL::Config#freeze" do
it "freezes" do
c = OpenSSL::Config.new
- lambda{c['foo'] = [ ['key', 'value'] ]}.should_not raise_error
+ lambda {
+ c['foo'] = [ ['key', 'value'] ]
+ }.should_not raise_error
c.freeze
c.frozen?.should be_true
- lambda{c['foo'] = [ ['key', 'value'] ]}.should raise_error
+ lambda {
+ c['foo'] = [ ['key', 'value'] ]
+ }.should raise_error(TypeError)
end
end
diff --git a/spec/ruby/library/socket/ipsocket/peeraddr_spec.rb b/spec/ruby/library/socket/ipsocket/peeraddr_spec.rb
index dfd4e050ce..27529c3d1c 100644
--- a/spec/ruby/library/socket/ipsocket/peeraddr_spec.rb
+++ b/spec/ruby/library/socket/ipsocket/peeraddr_spec.rb
@@ -16,7 +16,9 @@ describe "Socket::IPSocket#peeraddr" do
end
it "raises error if socket is not connected" do
- lambda { @server.peeraddr }.should raise_error
+ lambda {
+ @server.peeraddr
+ }.should raise_error(Errno::ENOTCONN)
end
it "returns an array of information on the peer" do
diff --git a/spec/ruby/library/socket/unixsocket/peeraddr_spec.rb b/spec/ruby/library/socket/unixsocket/peeraddr_spec.rb
index 14dccf7917..dc5a319f4d 100644
--- a/spec/ruby/library/socket/unixsocket/peeraddr_spec.rb
+++ b/spec/ruby/library/socket/unixsocket/peeraddr_spec.rb
@@ -21,7 +21,9 @@ describe "UNIXSocket#peeraddr" do
end
it "raises an error in server sockets" do
- lambda { @server.peeraddr }.should raise_error
+ lambda {
+ @server.peeraddr
+ }.should raise_error(Errno::ENOTCONN)
end
end
diff --git a/spec/ruby/library/stringio/printf_spec.rb b/spec/ruby/library/stringio/printf_spec.rb
index 5f811547bc..a2094bf52d 100644
--- a/spec/ruby/library/stringio/printf_spec.rb
+++ b/spec/ruby/library/stringio/printf_spec.rb
@@ -1,5 +1,6 @@
require File.expand_path('../../../spec_helper', __FILE__)
require File.expand_path('../fixtures/classes', __FILE__)
+require File.expand_path('../../../core/kernel/shared/sprintf', __FILE__)
describe "StringIO#printf" do
before :each do
@@ -28,6 +29,14 @@ describe "StringIO#printf" do
@io.printf("%d %04x", 123, 123)
@io.pos.should eql(16)
end
+
+ describe "formatting" do
+ it_behaves_like :kernel_sprintf, -> (format, *args) {
+ io = StringIO.new
+ io.printf(format, *args)
+ io.string
+ }
+ end
end
describe "StringIO#printf when in append mode" do
@@ -59,3 +68,4 @@ describe "StringIO#printf when self is not writable" do
lambda { io.printf("test") }.should raise_error(IOError)
end
end
+
diff --git a/spec/ruby/library/syslog/alert_spec.rb b/spec/ruby/library/syslog/alert_spec.rb
index 4653fa8636..e61b3d6ef3 100644
--- a/spec/ruby/library/syslog/alert_spec.rb
+++ b/spec/ruby/library/syslog/alert_spec.rb
@@ -1,5 +1,6 @@
+require File.expand_path('../../../spec_helper', __FILE__)
+
platform_is_not :windows do
- require File.expand_path('../../../spec_helper', __FILE__)
require File.expand_path('../shared/log', __FILE__)
require 'syslog'
diff --git a/spec/ruby/library/syslog/close_spec.rb b/spec/ruby/library/syslog/close_spec.rb
index f7bc4ac6e9..d7aadb2198 100644
--- a/spec/ruby/library/syslog/close_spec.rb
+++ b/spec/ruby/library/syslog/close_spec.rb
@@ -1,5 +1,6 @@
+require File.expand_path('../../../spec_helper', __FILE__)
+
platform_is_not :windows do
- require File.expand_path('../../../spec_helper', __FILE__)
require 'syslog'
describe "Syslog.close" do
diff --git a/spec/ruby/library/syslog/constants_spec.rb b/spec/ruby/library/syslog/constants_spec.rb
index c335ff46e6..1ce82be883 100644
--- a/spec/ruby/library/syslog/constants_spec.rb
+++ b/spec/ruby/library/syslog/constants_spec.rb
@@ -1,5 +1,6 @@
+require File.expand_path('../../../spec_helper', __FILE__)
+
platform_is_not :windows do
- require File.expand_path('../../../spec_helper', __FILE__)
require 'syslog'
describe "Syslog::Constants" do
diff --git a/spec/ruby/library/syslog/crit_spec.rb b/spec/ruby/library/syslog/crit_spec.rb
index 28e3af67cc..cf2cc71abc 100644
--- a/spec/ruby/library/syslog/crit_spec.rb
+++ b/spec/ruby/library/syslog/crit_spec.rb
@@ -1,5 +1,6 @@
+require File.expand_path('../../../spec_helper', __FILE__)
+
platform_is_not :windows do
- require File.expand_path('../../../spec_helper', __FILE__)
require File.expand_path('../shared/log', __FILE__)
require 'syslog'
diff --git a/spec/ruby/library/syslog/debug_spec.rb b/spec/ruby/library/syslog/debug_spec.rb
index ff9fc5d97e..09ba9997a2 100644
--- a/spec/ruby/library/syslog/debug_spec.rb
+++ b/spec/ruby/library/syslog/debug_spec.rb
@@ -1,5 +1,6 @@
+require File.expand_path('../../../spec_helper', __FILE__)
+
platform_is_not :windows do
- require File.expand_path('../../../spec_helper', __FILE__)
require File.expand_path('../shared/log', __FILE__)
require 'syslog'
diff --git a/spec/ruby/library/syslog/emerg_spec.rb b/spec/ruby/library/syslog/emerg_spec.rb
index 15cc49be32..d416ee57c6 100644
--- a/spec/ruby/library/syslog/emerg_spec.rb
+++ b/spec/ruby/library/syslog/emerg_spec.rb
@@ -1,5 +1,6 @@
+require File.expand_path('../../../spec_helper', __FILE__)
+
platform_is_not :windows do
- require File.expand_path('../../../spec_helper', __FILE__)
require File.expand_path('../shared/log', __FILE__)
require 'syslog'
diff --git a/spec/ruby/library/syslog/err_spec.rb b/spec/ruby/library/syslog/err_spec.rb
index fdadd49e09..ad65f6c276 100644
--- a/spec/ruby/library/syslog/err_spec.rb
+++ b/spec/ruby/library/syslog/err_spec.rb
@@ -1,5 +1,6 @@
+require File.expand_path('../../../spec_helper', __FILE__)
+
platform_is_not :windows do
- require File.expand_path('../../../spec_helper', __FILE__)
require File.expand_path('../shared/log', __FILE__)
require 'syslog'
diff --git a/spec/ruby/library/syslog/facility_spec.rb b/spec/ruby/library/syslog/facility_spec.rb
index 02ea754b6b..fdcabfa0dd 100644
--- a/spec/ruby/library/syslog/facility_spec.rb
+++ b/spec/ruby/library/syslog/facility_spec.rb
@@ -1,5 +1,6 @@
+require File.expand_path('../../../spec_helper', __FILE__)
+
platform_is_not :windows do
- require File.expand_path('../../../spec_helper', __FILE__)
require 'syslog'
describe "Syslog.facility" do
diff --git a/spec/ruby/library/syslog/ident_spec.rb b/spec/ruby/library/syslog/ident_spec.rb
index a685dfa927..ef1144f12e 100644
--- a/spec/ruby/library/syslog/ident_spec.rb
+++ b/spec/ruby/library/syslog/ident_spec.rb
@@ -1,5 +1,6 @@
+require File.expand_path('../../../spec_helper', __FILE__)
+
platform_is_not :windows do
- require File.expand_path('../../../spec_helper', __FILE__)
require 'syslog'
describe "Syslog.ident" do
diff --git a/spec/ruby/library/syslog/info_spec.rb b/spec/ruby/library/syslog/info_spec.rb
index 88ff81994d..b2abe7c04a 100644
--- a/spec/ruby/library/syslog/info_spec.rb
+++ b/spec/ruby/library/syslog/info_spec.rb
@@ -1,5 +1,6 @@
+require File.expand_path('../../../spec_helper', __FILE__)
+
platform_is_not :windows do
- require File.expand_path('../../../spec_helper', __FILE__)
require File.expand_path('../shared/log', __FILE__)
require 'syslog'
diff --git a/spec/ruby/library/syslog/inspect_spec.rb b/spec/ruby/library/syslog/inspect_spec.rb
index 5fd7793c22..c22a053286 100644
--- a/spec/ruby/library/syslog/inspect_spec.rb
+++ b/spec/ruby/library/syslog/inspect_spec.rb
@@ -1,5 +1,6 @@
+require File.expand_path('../../../spec_helper', __FILE__)
+
platform_is_not :windows do
- require File.expand_path('../../../spec_helper', __FILE__)
require 'syslog'
describe "Syslog.inspect" do
diff --git a/spec/ruby/library/syslog/instance_spec.rb b/spec/ruby/library/syslog/instance_spec.rb
index 60f43dbdea..65d97a5d50 100644
--- a/spec/ruby/library/syslog/instance_spec.rb
+++ b/spec/ruby/library/syslog/instance_spec.rb
@@ -1,5 +1,6 @@
+require File.expand_path('../../../spec_helper', __FILE__)
+
platform_is_not :windows do
- require File.expand_path('../../../spec_helper', __FILE__)
require 'syslog'
describe "Syslog.instance" do
diff --git a/spec/ruby/library/syslog/log_spec.rb b/spec/ruby/library/syslog/log_spec.rb
index 2403943cfc..eac6be8b01 100644
--- a/spec/ruby/library/syslog/log_spec.rb
+++ b/spec/ruby/library/syslog/log_spec.rb
@@ -1,5 +1,6 @@
+require File.expand_path('../../../spec_helper', __FILE__)
+
platform_is_not :windows do
- require File.expand_path('../../../spec_helper', __FILE__)
require 'syslog'
describe "Syslog.log" do
diff --git a/spec/ruby/library/syslog/mask_spec.rb b/spec/ruby/library/syslog/mask_spec.rb
index 49be56d304..7a11d1e88c 100644
--- a/spec/ruby/library/syslog/mask_spec.rb
+++ b/spec/ruby/library/syslog/mask_spec.rb
@@ -1,5 +1,6 @@
+require File.expand_path('../../../spec_helper', __FILE__)
+
platform_is_not :windows do
- require File.expand_path('../../../spec_helper', __FILE__)
require 'syslog'
describe "Syslog.mask" do
diff --git a/spec/ruby/library/syslog/notice_spec.rb b/spec/ruby/library/syslog/notice_spec.rb
index 7a27e23729..f31074f3f6 100644
--- a/spec/ruby/library/syslog/notice_spec.rb
+++ b/spec/ruby/library/syslog/notice_spec.rb
@@ -1,5 +1,6 @@
+require File.expand_path('../../../spec_helper', __FILE__)
+
platform_is_not :windows do
- require File.expand_path('../../../spec_helper', __FILE__)
require File.expand_path('../shared/log', __FILE__)
require 'syslog'
diff --git a/spec/ruby/library/syslog/open_spec.rb b/spec/ruby/library/syslog/open_spec.rb
index 18e7f0c80e..424b48d831 100644
--- a/spec/ruby/library/syslog/open_spec.rb
+++ b/spec/ruby/library/syslog/open_spec.rb
@@ -1,5 +1,6 @@
+require File.expand_path('../../../spec_helper', __FILE__)
+
platform_is_not :windows do
- require File.expand_path('../../../spec_helper', __FILE__)
require File.expand_path('../shared/reopen', __FILE__)
require 'syslog'
@@ -73,8 +74,13 @@ platform_is_not :windows do
it "raises an error if the log is opened" do
Syslog.open
- lambda { Syslog.open}.should raise_error
- lambda { Syslog.close; Syslog.open }.should_not raise_error
+ lambda {
+ Syslog.open
+ }.should raise_error(RuntimeError, /syslog already open/)
+ lambda {
+ Syslog.close
+ Syslog.open
+ }.should_not raise_error
Syslog.close
end
end
diff --git a/spec/ruby/library/syslog/opened_spec.rb b/spec/ruby/library/syslog/opened_spec.rb
index 82b8ba45f7..1db388fa61 100644
--- a/spec/ruby/library/syslog/opened_spec.rb
+++ b/spec/ruby/library/syslog/opened_spec.rb
@@ -1,5 +1,6 @@
+require File.expand_path('../../../spec_helper', __FILE__)
+
platform_is_not :windows do
- require File.expand_path('../../../spec_helper', __FILE__)
require 'syslog'
describe "Syslog.opened?" do
diff --git a/spec/ruby/library/syslog/options_spec.rb b/spec/ruby/library/syslog/options_spec.rb
index 4a3914531a..145d11a2fb 100644
--- a/spec/ruby/library/syslog/options_spec.rb
+++ b/spec/ruby/library/syslog/options_spec.rb
@@ -1,5 +1,6 @@
+require File.expand_path('../../../spec_helper', __FILE__)
+
platform_is_not :windows do
- require File.expand_path('../../../spec_helper', __FILE__)
require 'syslog'
describe "Syslog.options" do
diff --git a/spec/ruby/library/syslog/reopen_spec.rb b/spec/ruby/library/syslog/reopen_spec.rb
index de1ce2c255..49704784e5 100644
--- a/spec/ruby/library/syslog/reopen_spec.rb
+++ b/spec/ruby/library/syslog/reopen_spec.rb
@@ -1,5 +1,6 @@
+require File.expand_path('../../../spec_helper', __FILE__)
+
platform_is_not :windows do
- require File.expand_path('../../../spec_helper', __FILE__)
require File.expand_path('../shared/reopen', __FILE__)
require 'syslog'
diff --git a/spec/ruby/library/syslog/warning_spec.rb b/spec/ruby/library/syslog/warning_spec.rb
index 85fcb3a355..31fa9524f7 100644
--- a/spec/ruby/library/syslog/warning_spec.rb
+++ b/spec/ruby/library/syslog/warning_spec.rb
@@ -1,5 +1,6 @@
+require File.expand_path('../../../spec_helper', __FILE__)
+
platform_is_not :windows do
- require File.expand_path('../../../spec_helper', __FILE__)
require File.expand_path('../shared/log', __FILE__)
require 'syslog'
diff --git a/spec/ruby/library/time/to_datetime_spec.rb b/spec/ruby/library/time/to_datetime_spec.rb
new file mode 100644
index 0000000000..54655963c6
--- /dev/null
+++ b/spec/ruby/library/time/to_datetime_spec.rb
@@ -0,0 +1,27 @@
+require File.expand_path('../../../spec_helper', __FILE__)
+require 'time'
+
+describe "Time#to_datetime" do
+ it "returns a DateTime representing the same instant" do
+ time = Time.utc(3, 12, 31, 23, 58, 59)
+ datetime = time.to_datetime
+ datetime.year.should == 3
+ datetime.month.should == 12
+ datetime.day.should == 31
+ datetime.hour.should == 23
+ datetime.min.should == 58
+ datetime.sec.should == 59
+ end
+
+ it "roundtrips" do
+ time = Time.utc(3, 12, 31, 23, 58, 59)
+ datetime = time.to_datetime
+ datetime.to_time.utc.should == time
+ end
+
+ it "yields a DateTime with the default Calendar reform day" do
+ Time.utc(1582, 10, 4, 1, 2, 3).to_datetime.start.should == Date::ITALY
+ Time.utc(1582, 10, 14, 1, 2, 3).to_datetime.start.should == Date::ITALY
+ Time.utc(1582, 10, 15, 1, 2, 3).to_datetime.start.should == Date::ITALY
+ end
+end
diff --git a/spec/ruby/library/uri/join_spec.rb b/spec/ruby/library/uri/join_spec.rb
index 681ba45cc7..3e0dbe7f2b 100644
--- a/spec/ruby/library/uri/join_spec.rb
+++ b/spec/ruby/library/uri/join_spec.rb
@@ -21,7 +21,9 @@ describe "URI.join" do
end
it "raises an error if given no argument" do
- lambda{ URI.join }.should raise_error
+ lambda {
+ URI.join
+ }.should raise_error(ArgumentError)
end
it "doesn't create redundant '/'s" do
diff --git a/spec/ruby/library/uri/shared/join.rb b/spec/ruby/library/uri/shared/join.rb
index dfe44e9be2..ff85b57a80 100644
--- a/spec/ruby/library/uri/shared/join.rb
+++ b/spec/ruby/library/uri/shared/join.rb
@@ -18,7 +18,9 @@ describe :uri_join, shared: true do
end
it "raises an error if given no argument" do
- lambda{ @object.join }.should raise_error
+ lambda {
+ @object.join
+ }.should raise_error(ArgumentError)
end
it "doesn't create redundant '/'s" do
diff --git a/spec/ruby/library/yaml/load_spec.rb b/spec/ruby/library/yaml/load_spec.rb
index 7c5a33d52f..6a2ab65b65 100644
--- a/spec/ruby/library/yaml/load_spec.rb
+++ b/spec/ruby/library/yaml/load_spec.rb
@@ -34,6 +34,27 @@ describe "YAML.load" do
end
end
+ it "loads strings with chars from non-base Unicode plane" do
+ # We add these strings as bytes and force the encoding for safety
+ # as bugs in parsing unicode characters can obscure bugs in this
+ # area.
+
+ yaml_and_strings = {
+ # "--- 🌵" => "🌵"
+ [45, 45, 45, 32, 240, 159, 140, 181] =>
+ [240, 159, 140, 181],
+ # "--- 🌵 and some text" => "🌵 and some text"
+ [45, 45, 45, 32, 240, 159, 140, 181, 32, 97, 110, 100, 32, 115, 111, 109, 101, 32, 116, 101, 120, 116] =>
+ [240, 159, 140, 181, 32, 97, 110, 100, 32, 115, 111, 109, 101, 32, 116, 101, 120, 116],
+ # "--- Some text 🌵 and some text" => "Some text 🌵 and some text"
+ [45, 45, 45, 32, 83, 111, 109, 101, 32, 116, 101, 120, 116, 32, 240, 159, 140, 181, 32, 97, 110, 100, 32, 115, 111, 109, 101, 32, 116, 101, 120, 116] =>
+ [83, 111, 109, 101, 32, 116, 101, 120, 116, 32, 240, 159, 140, 181, 32, 97, 110, 100, 32, 115, 111, 109, 101, 32, 116, 101, 120, 116]
+ }
+ yaml_and_strings.each do |yaml, str|
+ YAML.load(yaml.pack("C*").force_encoding("UTF-8")).should == str.pack("C*").force_encoding("UTF-8")
+ end
+ end
+
it "fails on invalid keys" do
if YAML.to_s == "Psych"
error = Psych::SyntaxError