mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
mruby-bin-mrbc: skip multi-input debug-info bintest when bin-mruby absent
The bintest added in 0d87198c92 runs the compiled output via the
mruby binary and uses Kernel#puts in the script body. In builds
that omit mruby-bin-mruby, the test failed with "sh: bin/mruby:
not found" before reaching the actual assertion.
Skip the assert block when bin/mruby isn't built, and switch the
script's puts to print since Kernel#puts only exists when mruby-io
is loaded (same pattern as #6814).
close #6831
Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -30,12 +30,17 @@ assert('embedded document with invalid terminator') do
|
||||
end
|
||||
|
||||
assert('debug info preserves line/filename across multiple inputs. #1316') do
|
||||
# Verifying mrbc's debug info requires running the compiled output through
|
||||
# the mruby binary; skip when bin-mruby isn't built. Kernel#puts only
|
||||
# exists when mruby-io is loaded, so the script uses print.
|
||||
skip "mruby command not built" unless File.exist?(cmd_bin("mruby"))
|
||||
|
||||
a = Tempfile.new(['a', '.rb'])
|
||||
b = Tempfile.new(['b', '.rb'])
|
||||
out = Tempfile.new(['out', '.mrb'])
|
||||
a.write("# line 1\n# line 2\nputs \"from a\"\n# line 4\nundefined_in_a\n")
|
||||
a.write("# line 1\n# line 2\nprint \"from a\"\n# line 4\nundefined_in_a\n")
|
||||
a.flush
|
||||
b.write("# b line 1\nputs \"from b\"\n")
|
||||
b.write("# b line 1\nprint \"from b\"\n")
|
||||
b.flush
|
||||
`#{cmd('mrbc')} -g -o #{out.path} #{a.path} #{b.path}`
|
||||
assert_equal 0, $?.exitstatus
|
||||
|
||||
Reference in New Issue
Block a user