[前][次][番号順一覧][スレッド一覧]

ruby-changes:28815

From: nobu <ko1@a...>
Date: Tue, 21 May 2013 03:10:46 +0900 (JST)
Subject: [ruby-changes:28815] nobu:r40867 (trunk): test_dir_m17n.rb: assert_separately

nobu	2013-05-21 03:10:34 +0900 (Tue, 21 May 2013)

  New Revision: 40867

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=40867

  Log:
    test_dir_m17n.rb: assert_separately
    
    * test/ruby/test_dir_m17n.rb: prefer assert_separately over
      assert_ruby_status for more descriptive messages.

  Modified files:
    trunk/test/ruby/test_dir_m17n.rb

Index: test/ruby/test_dir_m17n.rb
===================================================================
--- test/ruby/test_dir_m17n.rb	(revision 40866)
+++ test/ruby/test_dir_m17n.rb	(revision 40867)
@@ -13,28 +13,32 @@ class TestDir_M17N < Test::Unit::TestCas https://github.com/ruby/ruby/blob/trunk/test/ruby/test_dir_m17n.rb#L13
 
   def create_and_check_raw_file_name(code, encoding)
     with_tmpdir { |dir|
-      create_file_program = %Q[
+      assert_separately(["-E#{encoding}"], <<-EOS, :chdir=>dir)
         filename = #{code}.chr('UTF-8').force_encoding("#{encoding}")
         File.open(filename, "w") {}
         opts = {:encoding => Encoding.default_external} if /mswin|mingw/ =~ RUBY_PLATFORM
         ents = Dir.entries(".", opts)
-        exit ents.include?(filename)
-      ]
-      assert_ruby_status(["-E#{encoding}"], create_file_program, nil, :chdir=>dir)
+        assert_include(ents, filename)
+      EOS
 
-      test_file_program = %Q[
+      assert_separately(%w[-EASCII-8BIT], <<-EOS, :chdir=>dir)
         filename = #{code}.chr('UTF-8').force_encoding("ASCII-8BIT")
         opts = {:encoding => Encoding.default_external} if /mswin|mingw/ =~ RUBY_PLATFORM
         ents = Dir.entries(".", opts)
         expected_filename = #{code}.chr('UTF-8').encode(Encoding.find("filesystem")) rescue expected_filename = "?"
         expected_filename = expected_filename.force_encoding("ASCII-8BIT")
-        result = ents.include?(filename) || (/mswin|mingw/ =~ RUBY_PLATFORM && ents.include?(expected_filename))
-        if !result && /mswin|mingw/ =~ RUBY_PLATFORM
-          exit Dir.entries(".", {:encoding => Encoding.find("filesystem")}).include?(expected_filename)
-        end
-        exit result
-      ]
-      assert_ruby_status(%w[-EASCII-8BIT], test_file_program, nil, :chdir=>dir)
+        if /mswin|mingw/ =~ RUBY_PLATFORM
+          case
+          when ents.include?(filename)
+          when ents.include?(expected_filename)
+            filename = expected_filename
+          else
+            ents = Dir.entries(".", {:encoding => Encoding.find("filesystem")})
+            filename = expected_filename
+          end
+        end
+        assert_include(ents, filename)
+      EOS
     }
   end
 
@@ -42,69 +46,67 @@ class TestDir_M17N < Test::Unit::TestCas https://github.com/ruby/ruby/blob/trunk/test/ruby/test_dir_m17n.rb#L46
 
   def test_filename_extutf8
     with_tmpdir {|d|
-      assert_ruby_status(%w[-EUTF-8], <<-'EOS', nil, :chdir=>d)
+      assert_separately(%w[-EUTF-8], <<-'EOS', :chdir=>d)
         filename = "\u3042"
         File.open(filename, "w") {}
         opts = {:encoding => Encoding.default_external} if /mswin|mingw/ =~ RUBY_PLATFORM
         ents = Dir.entries(".", opts)
-        exit ents.include?(filename)
+        assert_include(ents, filename)
       EOS
     }
   end
 
   def test_filename_extutf8_invalid
     with_tmpdir {|d|
-      assert_ruby_status(%w[-EASCII-8BIT], <<-'EOS', nil, :chdir=>d)
+      assert_separately(%w[-EASCII-8BIT], <<-'EOS', :chdir=>d)
         filename = "\xff".force_encoding("ASCII-8BIT") # invalid byte sequence as UTF-8
         File.open(filename, "w") {}
         opts = {:encoding => Encoding.default_external} if /mswin|mingw/ =~ RUBY_PLATFORM
         ents = Dir.entries(".", opts)
-        exit ents.include?(filename) || (/darwin/ =~ RUBY_PLATFORM && ents.include?("%FF"))
+        filename = "%FF" if /darwin/ =~ RUBY_PLATFORM && ents.include?("%FF")
+        assert_include(ents, filename)
       EOS
-      assert_ruby_status(%w[-EUTF-8], <<-'EOS', nil, :chdir=>d)
+      assert_separately(%w[-EUTF-8], <<-'EOS', :chdir=>d)
         filename = "\xff".force_encoding("UTF-8") # invalid byte sequence as UTF-8
         File.open(filename, "w") {}
         opts = {:encoding => Encoding.default_external} if /mswin|mingw/ =~ RUBY_PLATFORM
         ents = Dir.entries(".", opts)
-        exit ents.include?(filename) || (/darwin/ =~ RUBY_PLATFORM && ents.include?("%FF"))
+        filename = "%FF" if /darwin/ =~ RUBY_PLATFORM && ents.include?("%FF")
+        assert_include(ents, filename)
       EOS
     }
   end unless /mswin|mingw/ =~ RUBY_PLATFORM
 
   def test_filename_as_bytes_extutf8
     with_tmpdir {|d|
-      assert_ruby_status(%w[-EUTF-8], <<-'EOS', nil, :chdir=>d)
+      assert_separately(%w[-EUTF-8], <<-'EOS', :chdir=>d)
         filename = "\xc2\xa1".force_encoding("utf-8")
         File.open(filename, "w") {}
         opts = {:encoding => Encoding.default_external} if /mswin|mingw/ =~ RUBY_PLATFORM
         ents = Dir.entries(".", opts)
-        exit ents.include?(filename)
+        assert_include(ents, filename)
       EOS
-      assert_ruby_status(%w[-EUTF-8], <<-'EOS', nil, :chdir=>d)
+      assert_separately(%w[-EUTF-8], <<-'EOS', :chdir=>d)
         if /mswin|mingw/ =~ RUBY_PLATFORM
           filename = "\x8f\xa2\xc2".force_encoding("euc-jp")
         else
           filename = "\xc2\xa1".force_encoding("euc-jp")
         end
-        begin
+        assert_nothing_raised(Errno::ENOENT) do
           open(filename) {}
-          exit true
-        rescue Errno::ENOENT
-          exit false
         end
       EOS
       # no meaning test on windows
       unless /mswin|mingw/ =~ RUBY_PLATFORM
-        assert_ruby_status(%w[-EUTF-8], <<-'EOS', nil, :chdir=>d)
+        assert_separately(%W[-EUTF-8], <<-'EOS', :chdir=>d)
           filename1 = "\xc2\xa1".force_encoding("utf-8")
           filename2 = "\xc2\xa1".force_encoding("euc-jp")
           filename3 = filename1.encode("euc-jp")
           filename4 = filename2.encode("utf-8")
-          s1 = File.stat(filename1) rescue nil
-          s2 = File.stat(filename2) rescue nil
-          s3 = File.stat(filename3) rescue nil
-          s4 = File.stat(filename4) rescue nil
-          exit((s1 && s2 && !s3 && !s4) ? true : false)
+          assert_file.stat(filename1)
+          assert_file.stat(filename2)
+          assert_file.not_exist?(filename3)
+          assert_file.not_exist?(filename4)
         EOS
       end
     }
@@ -114,26 +116,23 @@ class TestDir_M17N < Test::Unit::TestCas https://github.com/ruby/ruby/blob/trunk/test/ruby/test_dir_m17n.rb#L116
 
   def test_filename_extutf8_inteucjp_representable
     with_tmpdir {|d|
-      assert_ruby_status(%w[-EUTF-8], <<-'EOS', nil, :chdir=>d)
+      assert_separately(%w[-EUTF-8], <<-'EOS', :chdir=>d)
         filename = "\u3042"
         File.open(filename, "w") {}
         opts = {:encoding => Encoding.default_external} if /mswin|mingw/ =~ RUBY_PLATFORM
         ents = Dir.entries(".", opts)
-        exit ents.include?(filename)
+        assert_include(ents, filename)
       EOS
-      assert_ruby_status(%w[-EUTF-8:EUC-JP], <<-'EOS', nil, :chdir=>d)
+      assert_separately(%w[-EUTF-8:EUC-JP], <<-'EOS', :chdir=>d)
         filename = "\xA4\xA2".force_encoding("euc-jp")
         opts = {:encoding => Encoding.default_external} if /mswin|mingw/ =~ RUBY_PLATFORM
         ents = Dir.entries(".", opts)
-        exit ents.include?(filename)
+        assert_include(ents, filename)
       EOS
-      assert_ruby_status(%w[-EUTF-8:EUC-JP], <<-'EOS', nil, :chdir=>d)
+      assert_separately(%w[-EUTF-8:EUC-JP], <<-'EOS', :chdir=>d)
         filename = "\xA4\xA2".force_encoding("euc-jp")
-        begin
+        assert_nothing_raised(Errno::ENOENT) do
           open(filename) {}
-          exit true
-        rescue Errno::ENOENT
-          exit false
         end
       EOS
     }
@@ -141,30 +140,31 @@ class TestDir_M17N < Test::Unit::TestCas https://github.com/ruby/ruby/blob/trunk/test/ruby/test_dir_m17n.rb#L140
 
   def test_filename_extutf8_inteucjp_unrepresentable
     with_tmpdir {|d|
-      assert_ruby_status(%w[-EUTF-8], <<-'EOS', nil, :chdir=>d)
+      assert_separately(%w[-EUTF-8], <<-'EOS', :chdir=>d)
         filename1 = "\u2661" # WHITE HEART SUIT which is not representable in EUC-JP
         filename2 = "\u3042" # HIRAGANA LETTER A which is representable in EUC-JP
         File.open(filename1, "w") {}
         File.open(filename2, "w") {}
         opts = {:encoding => Encoding.default_external} if /mswin|mingw/ =~ RUBY_PLATFORM
         ents = Dir.entries(".", opts)
-        exit ents.include?(filename1) && ents.include?(filename2)
+        assert_include(ents, filename1)
+        assert_include(ents, filename2)
       EOS
-      assert_ruby_status(%w[-EUTF-8:EUC-JP], <<-'EOS', nil, :chdir=>d)
+      assert_separately(%w[-EUTF-8:EUC-JP], <<-'EOS', :chdir=>d)
         filename1 = "\u2661" # WHITE HEART SUIT which is not representable in EUC-JP
         filename2 = "\xA4\xA2".force_encoding("euc-jp") # HIRAGANA LETTER A in EUC-JP
         opts = {:encoding => Encoding.default_external} if /mswin|mingw/ =~ RUBY_PLATFORM
         ents = Dir.entries(".", opts)
-        exit ents.include?(filename1) && ents.include?(filename2)
+        assert_include(ents, filename1)
+        assert_include(ents, filename2)
       EOS
-      assert_ruby_status(%w[-EUTF-8:EUC-JP], <<-'EOS', nil, :chdir=>d)
+      assert_separately(%w[-EUTF-8:EUC-JP], <<-'EOS', :chdir=>d)
         filename1 = "\u2661" # WHITE HEART SUIT which is not representable in EUC-JP
         filename2 = "\u3042" # HIRAGANA LETTER A which is representable in EUC-JP
         filename3 = "\xA4\xA2".force_encoding("euc-jp") # HIRAGANA LETTER A in EUC-JP
-        s1 = File.stat(filename1) rescue nil
-        s2 = File.stat(filename2) rescue nil
-        s3 = File.stat(filename3) rescue nil
-        exit((s1 && s2 && s3) ? true : false)
+        assert_file.stat(filename1)
+        assert_file.stat(filename2)
+        assert_file.stat(filename3)
       EOS
     }
   end
@@ -173,39 +173,51 @@ class TestDir_M17N < Test::Unit::TestCas https://github.com/ruby/ruby/blob/trunk/test/ruby/test_dir_m17n.rb#L173
 
   def test_filename_bytes_euc_jp
     with_tmpdir {|d|
-      assert_ruby_status(%w[-EEUC-JP], <<-'EOS', nil, :chdir=>d)
+      assert_separately(%w[-EEUC-JP], <<-'EOS', :chdir=>d)
         filename = "\xA4\xA2".force_encoding("euc-jp")
         File.open(filename, "w") {}
         opts = {:encoding => Encoding.default_external} if /mswin|mingw/ =~ RUBY_PLATFORM
         ents = Dir.entries(".", opts)
         ents.each {|e| e.force_encoding("ASCII-8BIT") }
-        exit ents.include?(filename.force_encoding("ASCII-8BIT")) ||
-               (/darwin/ =~ RUBY_PLATFORM && ents.include?("%A4%A2".force_encoding("ASCII-8BIT")))
+        if /darwin/ =~ RUBY_PLATFORM && ents.include?("%A4%A2".force_encoding("ASCII-8BIT"))
+          filename = "%A4%A2"
+        end
+        assert_include(ents, filename.force_encoding("ASCII-8BIT"))
       EOS
     }
   end
 
   def test_filename_euc_jp
     with_tmpdir {|d|
-      assert_ruby_status(%w[-EEUC-JP], <<-'EOS', nil, :chdir=>d)
+      assert_separately(%w[-EEUC-JP], <<-'EOS', :chdir=>d)
         filename = "\xA4\xA2".force_encoding("euc-jp")
         File.open(filename, "w") {}
         opts = {:encoding => Encoding.default_external} if /mswin|mingw/ =~ RUBY_PLATFORM
         ents = Dir.entries(".", opts)
-        exit ents.include?(filename) || (/darwin/ =~ RUBY_PLATFORM && ents.include?("%A4%A2".force_encoding("euc-jp")))
+        if /darwin/ =~ RUBY_PLATFORM && ents.include?(eucjp_filename = "%A4%A2".force_encoding("euc-jp"))
+          filename = eucjp_filename
+        end
+        assert_include(ents, filename)
       EOS
-      assert_ruby_status(%w[-EASCII-8BIT], <<-'EOS', nil, :chdir=>d)
+      assert_separately(%w[-EASCII-8BIT], <<-'EOS', :chdir=>d)
         filename = "\xA4\xA2".force_encoding('ASCII-8BIT')
         win_expected_filename = filename.encode(Encoding.find("filesystem"), "euc-jp") rescue "?"
         opts = {:encoding => Encoding.default_external} if /mswin|mingw/ =~ RUBY_PLATFORM
         ents = Dir.entries(".", opts)
-        result = ents.include?(filename) ||
-               (/darwin/ =~ RUBY_PLATFORM && ents.include?("%A4%A2".force_encoding("ASCII-8BIT"))) ||
-               (/mswin|mingw/ =~ RUBY_PLATFORM && ents.include?(win_expected_filename.force_encoding("ASCII-8BIT")))
-        if !result && /mswin|mingw/ =~ RUBY_PLATFORM
-          exit Dir.entries(".", {:encoding => Encoding.find("filesystem")}).include?(win_expected_filename)
+        unless ents.include?(filename)
+          case RUBY_PLATFORM
+          when /darwin/
+            if ents.include?(asc_filename = "%A4%A2".force_encoding("ASCII-8BIT"))
+              filename = asc_filename
+            end
+          when /mswin|mingw/
+            if ents.include?(win_expected_filename.dup.force_encoding("ASCII-8BIT"))
+              ents = Dir.entries(".", {:encoding => Encoding.find("filesystem")})
+              filename = win_expected_filename
+            end
+          end
         end
-        exit result
+        assert_include(ents, filename)
       EOS
     }
   end
@@ -224,18 +236,24 @@ class TestDir_M17N < Test::Unit::TestCas https://github.com/ruby/ruby/blob/trunk/test/ruby/test_dir_m17n.rb#L236
 
   def test_filename_ext_euc_jp_and_int_utf_8
     with_tmpdir {|d|
-      assert_ruby_status(%w[-EEUC-JP], <<-'EOS', nil, :chdir=>d)
+      assert_separately(%w[-EEUC-JP], <<-'EOS', :chdir=>d)
         filename = "\xA4\xA2".force_encoding("euc-jp")
         File.open(filename, "w") {}
         opts = {:encoding => Encoding.default_external} if /mswin|mingw/ =~ RUBY_PLATFORM
         ents = Dir.entries(".", opts)
-        exit ents.include?(filename) || (/darwin/ =~ RUBY_PLATFORM && ents.include?("%A4%A2".force_encoding("euc-jp")))
+        if /darwin/ =~ RUBY_PLATFORM && ents.include?(eucjp_filename = "%A4%A2".force_encoding("euc-jp"))
+          filename = eucjp_filename
+        end
+        assert_include(ents, filename)
       EOS
-      assert_ruby_status(%w[-EEUC-JP:UTF-8], <<-'EOS', nil, :chdir=>d)
+      assert_separately(%w[-EEUC-JP:UTF-8], <<-'EOS', :chdir=>d)
         filename = "\u3042"
         opts = {:encoding => Encoding.default_external} if /mswin|mingw/ =~ RUBY_PLATFORM
         ents = Dir.entries(".", opts)
-        exit ents.include?(filename) || (/darwin/ =~ RUBY_PLATFORM && ents.include?("%A4%A2"))
+        if /darwin/ =~ RUBY_PLATFORM && ents.include?("%A4%A2")
+          filename = "%A4%A2"
+        end
+        assert_include(ents, filename)
       EOS
     }
   end

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]