aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorduerst <duerst@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-06-06 08:29:38 +0000
committerduerst <duerst@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-06-06 08:29:38 +0000
commit5f5ddf67487709d4ebfc2f68301b6404c9062d36 (patch)
treeb167ca27b973daa5d3d312e7fad0b300e6598938
parent2280fa3c67950f4deac56a6709038be6ace25c7d (diff)
downloadruby-5f5ddf67487709d4ebfc2f68301b6404c9062d36.tar.gz
* test/ruby/enc/test_case_comprehensive.rb: Speed up testing for small
encodings by preselecting codepoints. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55295 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--test/ruby/enc/test_case_comprehensive.rb12
2 files changed, 16 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 40f8edfff7..43ce833f06 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Mon Jun 6 17:29:35 2016 Martin Duerst <duerst@it.aoyama.ac.jp>
+
+ * test/ruby/enc/test_case_comprehensive.rb: Speed up testing for small
+ encodings by preselecting codepoints.
+
Mon Jun 6 17:10:50 2016 Kazuki Yamaguchi <k@rhe.jp>
* ext/openssl/ossl_cipher.c (ossl_cipher_free): Use EVP_CIPHER_CTX_free()
diff --git a/test/ruby/enc/test_case_comprehensive.rb b/test/ruby/enc/test_case_comprehensive.rb
index b0618eb663..3c15084cfb 100644
--- a/test/ruby/enc/test_case_comprehensive.rb
+++ b/test/ruby/enc/test_case_comprehensive.rb
@@ -99,11 +99,21 @@ class TestComprehensiveCaseFold < Test::Unit::TestCase
end
def self.generate_casefold_tests (encoding)
+ all_tests
+ # preselect codepoints to speed up testing for small encodings
+ codepoints = @@codepoints.select do |code|
+ begin
+ code.encode(encoding)
+ true
+ rescue Encoding::UndefinedConversionError
+ false
+ end
+ end
all_tests.each do |test|
attributes = test.attributes.map(&:to_s).join '-'
attributes.prepend '_' unless attributes.empty?
define_method "test_#{encoding}_#{test.method_name}#{attributes}" do
- @@codepoints.each do |code|
+ codepoints.each do |code|
begin
source = code.encode(encoding) * 5
target = test.first_data[code].encode(encoding) + test.follow_data[code].encode(encoding) * 4