based on the patch by Eric Wong. [ruby-core:36156]
* vm_core.h (rb_thread_call_with_gvl): don't declare here.
* thread.c: include internal.h.
(rb_thread_execute_interrupts): new function.
* internal.h (rb_thread_execute_interrupts): declared.
(rb_thread_call_with_gvl): declared.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31971 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
test for [ruby-core:35086].
partially forward porting r31402 from ruby_1_9_2 branch.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31966 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
from YAML files.
* ext/psych/lib/psych/visitors/yaml_tree.rb: Hash subclasses can be
dumped to YAML files.
* test/psych/test_hash.rb: corresponding test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31961 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
from YAML files.
* ext/psych/lib/psych/visitors/yaml_tree.rb: Ruby modules can be
dumped to YAML files.
* test/psych/test_class.rb: corresponding test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31960 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
from YAML files.
* ext/psych/lib/psych/visitors/yaml_tree.rb: Ruby classes can be
dumped to YAML files.
* test/psych/test_class.rb: corresponding test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31958 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Windows has been fixed at r29969.
* test/rubygems/test_gem_stream_ui.rb: now can run tests.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31952 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
{test_include_file,test_include_file_encoding_incompatible}): no
need to write such workaround. don't hide the bug of ruby (and the
bug is already fixed).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31937 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/ruby/test_io.rb: Test for File.write, File.binwrite.
* NEWS: News for above.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31902 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
a Float through Rational.
* ext/bigdecimal/bigdecimal.c (BigDecimal_new): ditto.
* test/bigdecimal/test_bigdecimal.rb (test_global_new_float): add a test for
the above changes.
* test/bigdecimal/test_bigdecimal.rb (test_new_with_float): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31870 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Rational. The precision used for instantiate a BigDecimal from the
given Rational is obtained from the receiver BigDecimal.
* test/bigdecimal/test_bigdecimal.rb (test_coerce): add a test for the
above change.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31868 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
coercing from a Rational to stop requiring "bigecimal/util.rb".
[ruby-core:34318]
* ext/bigdecimal/bigdecimal.c (GetVpValue): refactoring.
* ext/bigdecimal/bigdecimal.c (BigDecimal_new): support instantiation from a
Rational.
* test/bigdecimal/test_bigdecimal.rb (test_global_new_with_rationao): add a
test for the above change.
* test/bigdecimal/test_bigdecimal.rb (test_new_with_rationao): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31864 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
BigDecimal object from an Integer.
* test/bigdecimal/test_bigdecimal.rb (test_new_with_integer):
add for testing the above change.
* ext/bigdecimal/bigdecimal.c (BigDecimal_global_new): replace its body
with a BigDecimal_new call.
* test/bigdecimal/test_bigdecimal.rb (test_global_new_with_integer):
add for testing the above change.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31863 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
server returning '100 continue' response befor sending HTTP request
body. See NEWS for more detail. See #3622.
Original patch is made by Eric Hodel <drbrain@segment7.net>.
* test/net/http/test_http.rb: test it.
* NEWS: Add new feature.
On my env (Ubuntu 11.04 64bit),
9510 tests, 2203824 assertions, 0 failures, 0 errors, 29 skips
->
9514 tests, 2203836 assertions, 0 failures, 0 errors, 29 skips
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31860 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
constified some variables.
* test/test_time.rb (TestTime#test_huge_precision): test for #4456.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31858 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
test_wait}: give system some time to process the written data.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31857 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
before calling execve(). Because r31760 reintroduced an issue that
system() may hang up (i.e. [ruby-dev:12261]).
* process.c (save_sigpipe, restore_sigpipe): new.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31761 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Based on a patch by Caius Durling, bug #4179 [ruby-core:33792]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31753 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
dup the string passed in instead of cloning so that it's frozen state is ignored
Signed-off-by: URABE, Shyouhei <shyouhei@ruby-lang.org>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31744 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/xmlrpc/parser.rb: test for the above
Signed-off-by: URABE, Shyouhei <shyouhei@ruby-lang.org>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31736 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
not let current length become negative for infinite length constructed
values. Support constructed values of length zero. Added tests.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31711 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
length. This also prevents a segfault. Added test and improved
documentation.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31701 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Simplified ossl_asn1_decode0 by splitting it into three separate
functions. Add tests.
[Ruby 1.9 - Bug #4374][ruby-core:35123]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31700 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Now __APPLE__ is not CASEFOLD_FILESYSTEM again.
* load.c (loaded_feature_path, rb_feature_p, load_lock): Revert r30508.
See #4255. Make $LOADED_FEATURES scanning case-sensitive again.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31692 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
use spawn. it prevent that other tests inherit renamed $0.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31681 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
because boron chkbuild test result says, An old linux kernel ignore O_CLOEXEC
silently instead of return an error. It may lead to bring new security risk.
So, we have to be pending it until finish to implement proper fallback logic.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31643 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
skip if the platform doesn't have :pgroup capability. (i.e. skip
if mswin32)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31582 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
implicit convertion with #to_str. [ruby-dev:43169] fixes#4362
* test/ruby/test_signal.rb (test_signal_process_group): add a test
for send signal to process group.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31579 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
prevent mark machine stack of GC'ed Thread. root Fiber is not initialized by
fiber_init(). based on a patch by Serge Balyuk [ruby-core:35891] fixes#4612
* test/ruby/test_fiber.rb (test_gc_root_fiber): add test for it.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31577 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
In CRuby's test-all, skip is for something to be fixed.
When some external library is missing, it should silently return;
don't flood the test result with meaningless messages.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31483 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
AF_UNIX, but windows socketpair doesn't support it. we can't
avoid platform check. sigh!
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31472 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
methods defined by Module#define_method with a same block.
[ruby-core:35386] fixes#4606
* eval (method_entry_of_iseq): new helper function. search control
frame stack for a method entry which has given iseq.
* test/ruby/test_method.rb: add tests for #4696
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31436 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/ruby/test_io.rb (TestIO#test_o_cloexec): test for File::CLOEXEC.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31430 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/-ext-/wait_for_single_fd/test_wait_for_single_fd.rb
(TestWaitForSingleFD#test_wait_for_closed_pipe): test for it.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31429 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
rb_wait_for_single_fd() internal function.
The patch was written by Eric Wong. [ruby-core:35991]
* test/-ext-/wait_for_single_fd/test_wait_for_single_fd.rb: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31428 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Skip sticky bit test if the platform is FreeBSD. It doesn't allow to
change sticky bit if a target is regular file.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31415 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
The patch was written by takkanm. [ruby-core:26029][Feature #2190]
* lib/fileutils.rb (FileUtils#fu_mode): new helper function.
* lib/fileutils.rb (FileUtils#symbolic_modes_to_i): ditto.
* lib/fileutils.rb (FileUtils#mode_mask): ditto.
* lib/fileutils.rb (FileUtils#user_mask): ditto.
* test/fileutils/test_fileutils.rb (TestFileUtils#test_chmod_symbol_mode):
new test for the above symbolic mode.
* test/fileutils/test_fileutils.rb (TestFileUtils#test_chmod_R): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31407 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
decorator according to open mode.
* transcode.c (rb_econv_prepare_options): new function, to prepare
econv options with newline flags.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31355 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Random::DEFAULT.rand rather than Kernel#rand.
* random.c (rand_range, random_rand): rand_range function extracted
from random_rand function.
* random.c (rb_f_rand): accept a Range argument as Random#rand
[ruby-dev:43427] #4605
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31340 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
XML-RPC's int is 32bit int, and Fixnum also may be beyond 32bit.
* lib/xmlrpc/create.rb (XMLRPC::Create#conv2value):
XML-RPC doesn't allow Infinity and NaN.
http://www.xmlrpc.com/spec
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31319 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
markings.
* test/psych/test_tainted.rb: test for string taint
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31317 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
and TestIO#test_cross_thread_close_fd.
The patch was written by Eric Wong. [ruby-core:35669]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31260 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Fix exception message and don't raise immediately if block is not given.
Fixes [ruby-dev:43394].
* test/stringio/test_stringio.rb (test_each_line_limit_0):
Fix test for above.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31253 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
limit must not be zero. Fixes [ruby-dev:43392].
* test/stringio/test_stringio.rb: Add tests for above.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31252 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
pop pushed error after each try of reading. fixes#4550
* ext/openssl/ossl_pkey_dsa.c (ossl_dsa_initialize): ditto.
* ext/openssl/ossl_pkey_ec.c (ossl_ec_initialize): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31244 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/webrick/cookie.rb (WEBrick::Cookie.parse): 'white space is
permitted between tokens' according to RFC2965. Though 'Netscape
spec' does not define the syntax clearly, make it tolerant as a
server. As a real-world example, rest-client gem sends
'Cookie: foo=1;bar=2'
* test/webrick/test_cookie.rb (test_parse_non_whitespace): test it.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31228 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
the NODE_FL_CREF_PUSHED_BY_EVAL flag to hide constants from
methods defined by class_eval. [ruby-dev:43365]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31215 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
(WEBrick::TestFileHandler#test_short_filename): the cgi doesn't exist
on current directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31208 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
read real short filename by cmd because smb mounted files
have different naming convention.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31205 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Instead of checking looking at the platform to determine if the tests
relying on LOG_PERROR should be run, look for the definition of the
constant as this will be robust against all platforms as long as the
underlying syslog.c code sets it up correctly.
This specifically addresses failures on Solaris 9.
Signed-off-by: Ben Walton <bwalton@artsci.utoronto.ca>
Signed-off-by: URABE, Shyouhei <shyouhei@ruby-lang.org>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31178 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
LOG_PERROR isn't a POSIX option for syslog, so it fails on platforms
that don't define it. Solaris 9 and 10 are examples of this.
Use LOG_PID instead.
Signed-off-by: Ben Walton <bwalton@artsci.utoronto.ca>
Signed-off-by: URABE, Shyouhei <shyouhei@ruby-lang.org>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31177 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Windows, because this tests a platform specific feature and it'll never be
supported on ruby on Windows.
* test/ruby/test_dir_m17n.rb (TestDir_M17N#test_filename_extutf8_invalid,
TestDir_M17N#test_filename_as_bytes_extutf8): ditto.
* test/open-uri/test_open-uri.rb
(TestOpenURI#test_find_proxy_case_sensitive_env): ditto.
* test/dl/test_handle.rb (DL::TestHandle#test_NEXT,
DL::TestHandle#test_DEFAULT): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31174 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/rubygems/test_case.rb: set Gem::TestCase's @@project_dir only
when it is not defined.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31147 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
strftime. It has some limitations that is same as Time's
one. [experimental]
* ext/date/date_strftime.c: new.
* ext/date/lib/date/format.c: removed ruby version of strftime.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31135 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
to still copy file permissions when :preserve is false (as cp does
this even when -p isn't set).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31123 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
increase path length, because MAXPATHLEN is defined as 4096 on linux.
* test/ruby/test_require.rb (test_require_path_home_1): ditto.
* test/ruby/test_require.rb (test_require_path_home_2): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31106 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
is true. Patch by Masaki Matsushita (Glass_saga). [ruby-dev:43337]
* test/test_pstore.rb: Test for above.
Patch by Masaki Matsushita (Glass_saga) [ruby-dev:43337]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31101 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
and Process#maxgroups= now raise NotImplementedError if the
platform don't support supplementary groups concept.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31090 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Errno::EINVAL on Windows. long path name errors may causes over
about 1024 bytes, then limit it about 4000 bytes.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31083 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
people implement the method method. Thanks Lin Jen-Shin.
[ruby-core:35255]
* test/psych/visitors/test_yaml_tree.rb: test for implementation of
method method.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31075 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
(TestGemSpecFetcher#test_cache_dir_escapes_windows_paths): cache_dir
may have driveletter and `:' for base of cache_dir itself, so need
to skip it for checking.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31062 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
environment variables. based on a patch from funny-falcon at
https://gist.github.com/856296, but honors safe level.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31044 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
release GVL during calling kernel interface.
Suggested by Eric Wong. [ruby-core:35417][Bug #4463]
* test/ruby/test_io.rb (TestIO#test_fcntl_lock): add new test for
IO.fcntl().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31025 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
(test_should_run_all_without_any_leaks): consider that the order of
testcase could change. [ruby-dev:43300] [Bug #4466]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31023 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
ArgumentError if fd >= 3 on Windows because the feature is not
supported.
* test/ruby/test_process.rb (test_execopts_redirect): remove meaningless
argument.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31017 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
>= 3 is not supported on Windows, so should not specify such options
when calling spawn or others.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31016 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
a String which means the name of the encoding.
this partially revert r29646.
* lib/rexml/document.rb: follow above.
* lib/rexml/output.rb: ditto.
* lib/rexml/parsers/baseparser.rb: ditto.
* lib/rexml/source.rb: ditto.
* lib/rexml/xmldecl.rb: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31008 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
remove tests for [bug#4396]. because we decided to reject this
ticket.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30998 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
original encoding. this also fixes the encoding when the result
shares internal string. [ruby-core:35376]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30994 b2dd03c8-39d4-4d8f-98ff-823fe69b080e