diff --git a/spec/mspec/lib/mspec/runner/actions/timeout.rb b/spec/mspec/lib/mspec/runner/actions/timeout.rb index c85bf49ad3..fd5578be87 100644 --- a/spec/mspec/lib/mspec/runner/actions/timeout.rb +++ b/spec/mspec/lib/mspec/runner/actions/timeout.rb @@ -36,8 +36,21 @@ class TimeoutAction elapsed = now - @started if elapsed > @timeout STDERR.puts "\n#{@current_state.description}" + STDERR.puts "Example took longer than the configured timeout of #{@timeout}s" STDERR.flush - abort "Example took longer than the configured timeout of #{@timeout}s" + + if RUBY_ENGINE == 'truffleruby' + STDERR.puts 'Java stacktraces:' + Process.kill :SIGQUIT, Process.pid + sleep 1 + + if defined?(Truffle::Debug.show_backtraces) + STDERR.puts "\nRuby backtraces:" + Truffle::Debug.show_backtraces + end + end + + exit 2 end end end diff --git a/spec/mspec/tool/sync/sync-rubyspec.rb b/spec/mspec/tool/sync/sync-rubyspec.rb index b4c79d2afc..13f1d8004d 100644 --- a/spec/mspec/tool/sync/sync-rubyspec.rb +++ b/spec/mspec/tool/sync/sync-rubyspec.rb @@ -20,7 +20,7 @@ IMPLS = { MSPEC = ARGV.delete('--mspec') -CHECK_LAST_MERGE = ENV['CHECK_LAST_MERGE'] != 'false' +CHECK_LAST_MERGE = !MSPEC && ENV['CHECK_LAST_MERGE'] != 'false' TEST_MASTER = ENV['TEST_MASTER'] != 'false' MSPEC_REPO = File.expand_path("../../..", __FILE__)