From 2c146a85489ace6f2f240401318f6e3d6c26595d Mon Sep 17 00:00:00 2001 From: zah Date: Wed, 28 May 2025 13:18:16 +0300 Subject: [PATCH] feat(tracer): add debug smoke test and pp require --- .gitignore | 6 +++++- .../codetracer-pure-ruby-recorder/lib/recorder.rb | 1 + test/test_tracer.rb | 15 +++++++++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index b6da956..4980dd5 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,11 @@ !test/benchmarks/fixtures/*.json test/tmp/ .direnv/ -pkg/ +pkg/ + +# Built ruby gems + +**/*.gem # Offline dependency sources .codex/deps_src/ diff --git a/gems/codetracer-pure-ruby-recorder/lib/recorder.rb b/gems/codetracer-pure-ruby-recorder/lib/recorder.rb index 747b63a..70268e0 100644 --- a/gems/codetracer-pure-ruby-recorder/lib/recorder.rb +++ b/gems/codetracer-pure-ruby-recorder/lib/recorder.rb @@ -5,6 +5,7 @@ require 'fileutils' require 'set' require 'ostruct' +require 'pp' CallRecord = Struct.new(:function_id, :args) do def to_data_for_json diff --git a/test/test_tracer.rb b/test/test_tracer.rb index 1c86a55..2f5c99b 100644 --- a/test/test_tracer.rb +++ b/test/test_tracer.rb @@ -126,4 +126,19 @@ def test_gem_installation def test_pure_gem_installation run_gem_installation_test('codetracer-pure-ruby-recorder', 'codetracer_pure_ruby_recorder') end + + def test_pure_debug_smoke + Dir.chdir(File.expand_path('..', __dir__)) do + env = { 'CODETRACER_RUBY_RECORDER_DEBUG' => '1' } + out_dir = File.join('test', 'tmp', 'debug_smoke') + FileUtils.rm_rf(out_dir) + stdout, stderr, status = Open3.capture3(env, 'ruby', 'gems/codetracer-pure-ruby-recorder/lib/trace.rb', '--out-dir', out_dir, File.join('test', 'programs', 'addition.rb')) + raise "trace failed: #{stderr}" unless status.success? + + lines = stdout.lines.map(&:chomp) + assert lines.any? { |l| l.start_with?('call ') }, 'missing debug output' + assert lines.include?('3'), 'missing program output' + assert File.exist?(File.join(out_dir, 'trace.json')) + end + end end