From b059f3df250688a97b7752411be9b3732520868b Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Sat, 16 May 2026 21:17:41 +0900 Subject: [PATCH] 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 --- mrbgems/mruby-bin-mrbc/bintest/mrbc.rb | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/mrbgems/mruby-bin-mrbc/bintest/mrbc.rb b/mrbgems/mruby-bin-mrbc/bintest/mrbc.rb index b8028eacb..4e3aea168 100644 --- a/mrbgems/mruby-bin-mrbc/bintest/mrbc.rb +++ b/mrbgems/mruby-bin-mrbc/bintest/mrbc.rb @@ -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