Skip valgrind tests on MacOS github runners

This commit is contained in:
Josh Holtrop 2026-07-08 20:01:29 -04:00
parent 64383cb0f4
commit 2c8ce0a359

View File

@ -95,13 +95,17 @@ EOF
File.binwrite("spec/run/.stdout", stdout) File.binwrite("spec/run/.stdout", stdout)
stderr.sub!(/^.*modules passed unittests\n/, "") stderr.sub!(/^.*modules passed unittests\n/, "")
results = Results.new(stdout, stderr, status) results = Results.new(stdout, stderr, status)
stdout, stderr, status = Open3.capture3("valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes --verbose spec/run/testparser") # Valgrind is only reliably available on Linux, so limit the leak check to
vgout = stdout + stderr # Linux platforms.
File.binwrite("spec/run/.vgout", vgout) if RUBY_PLATFORM =~ /linux/
vgout.scan(/(?:definitely|indirectly) lost: (\d+) bytes/) do |match| stdout, stderr, status = Open3.capture3("valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes --verbose spec/run/testparser")
bytes = $1.to_i vgout = stdout + stderr
if bytes > 0 File.binwrite("spec/run/.vgout", vgout)
raise "Valgrind detected memory leak" vgout.scan(/(?:definitely|indirectly) lost: (\d+) bytes/) do |match|
bytes = $1.to_i
if bytes > 0
raise "Valgrind detected memory leak"
end
end end
end end
results results