aboutsummaryrefslogtreecommitdiffstats
path: root/spec/ruby/library/scanf/io/scanf_spec.rb
diff options
context:
space:
mode:
authorBenoit Daloze <eregontp@gmail.com>2019-09-29 16:03:58 +0200
committerBenoit Daloze <eregontp@gmail.com>2019-09-29 16:03:58 +0200
commit1c938a72aa9378f982dbc55327e86150c47b8707 (patch)
tree34a0bb0a45396c26eed111877a810c3aa793bff5 /spec/ruby/library/scanf/io/scanf_spec.rb
parent31bb66a19df26409c9d47afcf37919c9a065516a (diff)
downloadruby-1c938a72aa9378f982dbc55327e86150c47b8707.tar.gz
Update to ruby/spec@519df35
Diffstat (limited to 'spec/ruby/library/scanf/io/scanf_spec.rb')
-rw-r--r--spec/ruby/library/scanf/io/scanf_spec.rb38
1 files changed, 38 insertions, 0 deletions
diff --git a/spec/ruby/library/scanf/io/scanf_spec.rb b/spec/ruby/library/scanf/io/scanf_spec.rb
new file mode 100644
index 0000000000..6a1fd66780
--- /dev/null
+++ b/spec/ruby/library/scanf/io/scanf_spec.rb
@@ -0,0 +1,38 @@
+require_relative '../../../spec_helper'
+
+ruby_version_is ''...'2.7' do
+ require_relative 'shared/block_scanf'
+ require 'scanf'
+
+ describe "IO#scanf" do
+ before :each do
+ @hw = File.open(fixture(__FILE__, 'helloworld.txt'), 'r')
+ @data = File.open(fixture(__FILE__, 'date.txt'), 'r')
+ end
+
+ after :each do
+ @hw.close unless @hw.closed?
+ @data.close unless @data.closed?
+ end
+
+ it "returns an array containing the input converted in the specified type" do
+ @hw.scanf("%s%s").should == ["hello", "world"]
+ @data.scanf("%s%d").should == ["Beethoven", 1770]
+ end
+
+ it "returns an array containing the input converted in the specified type with given maximum field width" do
+ @hw.scanf("%2s").should == ["he"]
+ @data.scanf("%2c").should == ["Be"]
+ end
+
+ it "returns an empty array when a wrong specifier is passed" do
+ @hw.scanf("%a").should == []
+ @hw.scanf("%1").should == []
+ @data.scanf("abc").should == []
+ end
+ end
+
+ describe "IO#scanf with block" do
+ it_behaves_like :scanf_io_block_scanf, :scanf
+ end
+end