From 0767d387ecb9e9dd7ebd34cad46d86cfce13b9f5 Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Mon, 28 Sep 2020 08:28:10 -0700 Subject: [PATCH] Pass ASAN options to child environments I want to work with ASAN, but some child environments are not inheriting the ASAN options I'm using. This commit passes them to child environments if specified --- test/ruby/test_stack.rb | 1 + tool/lib/envutil.rb | 1 + 2 files changed, 2 insertions(+) diff --git a/test/ruby/test_stack.rb b/test/ruby/test_stack.rb index 8a78848322..763aeb6bc2 100644 --- a/test/ruby/test_stack.rb +++ b/test/ruby/test_stack.rb @@ -18,6 +18,7 @@ class TestStack < Test::Unit::TestCase env = {} env['RUBY_FIBER_VM_STACK_SIZE'] = vm_stack_size.to_s if vm_stack_size env['RUBY_FIBER_MACHINE_STACK_SIZE'] = machine_stack_size.to_s if machine_stack_size + env['ASAN_OPTIONS'] = ENV['ASAN_OPTIONS'] if ENV['ASAN_OPTIONS'] stdout, stderr, status = EnvUtil.invoke_ruby([env, '-e', script], '', true, true, timeout: 30) assert(!status.signaled?, FailDesc[status, nil, stderr]) diff --git a/tool/lib/envutil.rb b/tool/lib/envutil.rb index d9350395fe..323d7100de 100644 --- a/tool/lib/envutil.rb +++ b/tool/lib/envutil.rb @@ -150,6 +150,7 @@ module EnvUtil if RUBYLIB and lib = child_env["RUBYLIB"] child_env["RUBYLIB"] = [lib, RUBYLIB].join(File::PATH_SEPARATOR) end + child_env['ASAN_OPTIONS'] = ENV['ASAN_OPTIONS'] if ENV['ASAN_OPTIONS'] args = [args] if args.kind_of?(String) pid = spawn(child_env, *precommand, rubybin, *args, **opt) in_c.close