process.c: use uaspawn

* process.c (proc_exec_cmd): use UTF-8 version aspawn.
  [ruby-dev:49838] [Bug #12841]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56424 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2016-10-14 15:54:03 +00:00
parent 0687baaf57
commit 5d4309d068
3 changed files with 32 additions and 0 deletions

View file

@ -1910,6 +1910,27 @@ EOS
end
end if windows?
def test_exec_nonascii
bug12841 = '[ruby-dev:49838] [Bug #12841]'
[
"\u{7d05 7389}",
"zuf\u{00E4}llige_\u{017E}lu\u{0165}ou\u{010D}k\u{00FD}_\u{10D2 10D0 10DB 10D4 10DD 10E0 10D4 10D1}_\u{0440 0430 0437 043B 043E 0433 0430}_\u{548C 65B0 52A0 5761 4EE5 53CA 4E1C}",
"c\u{1EE7}a",
].each do |arg|
begin
arg = arg.encode(Encoding.find("locale"))
rescue
else
assert_in_out_err([], "#{<<-"begin;"}\n#{<<-"end;"}", [arg], [], bug12841)
begin;
arg = "#{arg.b}".force_encoding("#{arg.encoding.name}")
exec(ENV["COMSPEC"]||"cmd.exe", "/c", "echo", arg)
end;
end
end
end if windows?
def test_clock_gettime
t1 = Process.clock_gettime(Process::CLOCK_REALTIME, :nanosecond)
t2 = Time.now; t2 = t2.tv_sec * 1000000000 + t2.tv_nsec