diff options
author | Paul Yang <TeBoring@users.noreply.github.com> | 2017-10-03 17:28:49 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-10-03 17:28:49 -0700 |
commit | cd5f49d0942e19a5854a325941918fca02fdb409 (patch) | |
tree | e4fde8a62907668dbada9c3332f181faf375c645 /ruby/Rakefile | |
parent | d6c32a818fd8590e1758d1ed86107a967468d1b6 (diff) | |
download | protobuf-cd5f49d0942e19a5854a325941918fca02fdb409.tar.gz protobuf-cd5f49d0942e19a5854a325941918fca02fdb409.tar.bz2 protobuf-cd5f49d0942e19a5854a325941918fca02fdb409.zip |
Fix ruby segment fault (#3708)
* Fix ruby segment fault
1) rb_ary_new cannot be called during allocate function. During allocate
fucntion, the containing object hasn't been marked and rb_ary_new may
invoke gc to collect containing object.
2) The global map should be marked before allocating it. Otherwise it
may be garbage collected.
* Add test
* Remove commented code
* Fix grammer error
Diffstat (limited to 'ruby/Rakefile')
-rw-r--r-- | ruby/Rakefile | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/ruby/Rakefile b/ruby/Rakefile index a329a777..e30a75a3 100644 --- a/ruby/Rakefile +++ b/ruby/Rakefile @@ -99,7 +99,13 @@ Gem::PackageTask.new(spec) do |pkg| end Rake::TestTask.new(:test => :build) do |t| - t.test_files = FileList["tests/*.rb"] + t.test_files = FileList["tests/*.rb"].exclude("tests/gc_test.rb") +end + +# gc_test needs to be split out to ensure the generated file hasn't been +# imported by other tests. +Rake::TestTask.new(:gc_test => :build) do |t| + t.test_files = FileList["tests/gc_test.rb"] end task :build => [:clean, :compile, :genproto] |