class RubyMemcheck::Configuration
def initialize(
def initialize( binary_name:, ruby: FileUtils::RUBY, valgrind: DEFAULT_VALGRIND, valgrind_options: DEFAULT_VALGRIND_OPTIONS, valgrind_suppressions_dir: DEFAULT_VALGRIND_SUPPRESSIONS_DIR, valgrind_generate_suppressions: false, skipped_ruby_functions: DEFAULT_SKIPPED_RUBY_FUNCTIONS, valgrind_xml_dir: Dir.mktmpdir, output_io: $stderr ) @binary_name = binary_name @ruby = ruby @valgrind = valgrind @valgrind_options = valgrind_options @valgrind_suppressions_dir = File.expand_path(valgrind_suppressions_dir) @valgrind_generate_suppressions = valgrind_generate_suppressions @skipped_ruby_functions = skipped_ruby_functions @output_io = output_io if valgrind_xml_dir valgrind_xml_dir = File.expand_path(valgrind_xml_dir) FileUtils.mkdir_p(valgrind_xml_dir) @valgrind_xml_dir = valgrind_xml_dir @valgrind_options += [ "--xml=yes", # %p will be replaced with the PID # This prevents forking and shelling out from generating a corrupted XML # See --log-file from https://valgrind.org/docs/manual/manual-core.html "--xml-file=#{File.join(valgrind_xml_dir, "%p.out")}", ] end end