From b3a256d14219301c9a8b393aedba8331ff1ce2f8 Mon Sep 17 00:00:00 2001 From: Jean Boussier Date: Fri, 28 Jul 2023 13:36:17 +0200 Subject: [PATCH] Setup CI and fix some small errors --- .github/workflows/ci.yml | 26 ++++++++++++++++++++++++++ ext/rbtrace.c | 5 +---- lib/rbtrace/cli.rb | 3 +-- rbtrace.gemspec | 2 +- server.rb | 2 +- test.sh | 9 +++++---- 6 files changed, 35 insertions(+), 12 deletions(-) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..db586d1 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,26 @@ +--- +name: Test +on: [push, pull_request] + +jobs: + ruby: + name: Ruby ${{ matrix.ruby }} + timeout-minutes: 15 + strategy: + fail-fast: false + matrix: + os: ["ubuntu-latest"] + ruby: ["3.2", "3.1", "3.0", "2.7", "2.6"] + runs-on: ubuntu-latest + steps: + - name: Check out code + uses: actions/checkout@v3 + + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby }} + bundler-cache: true + + - name: Tests + run: ./test.sh diff --git a/ext/rbtrace.c b/ext/rbtrace.c index bce73b1..a516170 100644 --- a/ext/rbtrace.c +++ b/ext/rbtrace.c @@ -876,9 +876,7 @@ eval_inspect(VALUE rb_code) { } static VALUE -rescue_inspect(VALUE arg) { - VALUE exception = rb_errinfo(); /* get last exception */ - rb_set_errinfo(Qnil); +rescue_inspect(VALUE arg, VALUE exception) { return rb_funcall(exception, rb_intern("inspect"), 0); } @@ -891,7 +889,6 @@ rbtrace__process_event(msgpack_object cmd) static int last_tracer_id = -1; // hax char query[BUF_SIZE]; - char code[BUF_SIZE+150]; VALUE val = Qnil; msgpack_object_array ary; diff --git a/lib/rbtrace/cli.rb b/lib/rbtrace/cli.rb index d54de18..247f6ed 100644 --- a/lib/rbtrace/cli.rb +++ b/lib/rbtrace/cli.rb @@ -227,8 +227,7 @@ def self.run opt :shapesdump, "generate a shapes dump for the process in FILENAME", - :default => "AUTO", - + :default => "AUTO" end opts = Optimist.with_standard_exception_handling(parser) do diff --git a/rbtrace.gemspec b/rbtrace.gemspec index c155c3d..d255700 100644 --- a/rbtrace.gemspec +++ b/rbtrace.gemspec @@ -23,7 +23,7 @@ Gem::Specification.new do |s| s.add_dependency 'optimist', '>= 3.0.0' s.add_dependency 'msgpack', '>= 0.4.3' - s.add_development_dependency "rake", "~> 10.0" + s.add_development_dependency "rake" s.license = "MIT" s.summary = 'rbtrace: like strace but for ruby code' diff --git a/server.rb b/server.rb index af86940..20b5314 100644 --- a/server.rb +++ b/server.rb @@ -1,4 +1,4 @@ -require 'ext/rbtrace' +require 'rbtrace' require 'tmpdir' class String diff --git a/test.sh b/test.sh index 77e97a5..4edc983 100755 --- a/test.sh +++ b/test.sh @@ -12,7 +12,7 @@ cd .. bundle check export RUBYOPT="-I.:lib" -ruby server.rb & +bundle exec ruby server.rb & export PID=$! trap cleanup INT TERM @@ -23,11 +23,11 @@ cleanup() { trace() { echo ------------------------------------------ - echo ./bin/rbtrace -p $PID $* + echo ./bin/rbtrace -p $PID "$@" echo ------------------------------------------ - ./bin/rbtrace -p $PID $* & + bundle exec ./bin/rbtrace -p $PID "$@" & sleep 2 - kill $! + kill $! || true wait $! || true echo } @@ -37,6 +37,7 @@ trace -m sleep trace -m sleep Dir.chdir Dir.pwd Process.pid "String#gsub" "String#*" trace -m "Kernel#" trace -m "String#gsub(self,@test)" "String#*(self,__source__)" "String#multiply_vowels(self,self.length,num)" +trace -e 'p(1 + 1)' trace --gc --slow=200 trace --gc -m Dir. trace --slow=250