diff --git a/suppressions/nokogiri_ruby-2.5.supp b/suppressions/nokogiri_ruby-2.5.supp deleted file mode 100644 index b5f6f32bbe..0000000000 --- a/suppressions/nokogiri_ruby-2.5.supp +++ /dev/null @@ -1,52 +0,0 @@ -{ - - Memcheck:Addr8 - fun:mark_locations_array - fun:gc_mark_locations - fun:rb_gc_mark_locations - fun:gc_mark_stacked_objects - fun:gc_mark_stacked_objects_* - fun:gc_marks_rest - ... - fun:ruby_finalize_? - fun:ruby_cleanup - ... -} -{ - - Memcheck:Addr8 - fun:mark_locations_array - fun:gc_mark_locations - fun:rb_gc_mark_locations - fun:gc_marks_wb_unprotected_objects - fun:gc_marks_finish - fun:gc_marks_rest - ... - fun:ruby_finalize_? - fun:ruby_cleanup - ... -} -{ - https://ci.nokogiri.org/teams/nokogiri-core/pipelines/nokogiri-pr/jobs/ruby-2.5-valgrind/builds/66 - Memcheck:Addr8 - fun:mark_locations_array - fun:gc_mark_locations - fun:gc_mark_locations - fun:rb_gc_mark_locations - fun:gc_mark_stacked_objects - ... - fun:ruby_cleanup - ... -} -{ - https://ci.nokogiri.org/teams/nokogiri-core/pipelines/nokogiri-pr/jobs/ruby-2.5-valgrind/builds/71 - Memcheck:Addr8 - fun:mark_locations_array - fun:gc_mark_locations - fun:gc_mark_locations - fun:rb_gc_mark_locations - fun:gc_marks_wb_unprotected_objects - ... - fun:ruby_cleanup - ... -} diff --git a/suppressions/nokogiri_ruby-2.6.supp b/suppressions/nokogiri_ruby-2.6.supp deleted file mode 100644 index 4ba574a1c5..0000000000 --- a/suppressions/nokogiri_ruby-2.6.supp +++ /dev/null @@ -1,34 +0,0 @@ -{ - https://ci.nokogiri.org/teams/nokogiri-core/pipelines/nokogiri/jobs/ruby-2.6-valgrind/builds/1,https://ci.nokogiri.org/teams/nokogiri-core/pipelines/nokogiri-pr/jobs/ruby-2.6-valgrind/builds/11 - Memcheck:Addr8 - fun:mark_locations_array - fun:gc_marks_wb_unprotected_objects - fun:gc_marks_finish - ... - fun:ruby_finalize_? - fun:ruby_cleanup - ... -} -{ - https://ci.nokogiri.org/teams/nokogiri-core/pipelines/nokogiri/jobs/ruby-2.6-valgrind/builds/1,https://ci.nokogiri.org/teams/nokogiri-core/pipelines/nokogiri-v1.10.x/jobs/ruby-2.6-valgrind/builds/3 - Memcheck:Addr8 - fun:mark_locations_array - fun:gc_mark_stacked_objects - fun:gc_mark_stacked_objects_incremental - ... - fun:ruby_finalize_? - fun:ruby_cleanup - ... -} -{ - https://ci.nokogiri.org/teams/nokogiri-core/pipelines/nokogiri/jobs/ruby-libxmlruby-valgrind/builds/116,https://ci.nokogiri.org/teams/nokogiri-core/pipelines/nokogiri-pr/jobs/ruby-libxmlruby-valgrind/builds/13 - Memcheck:Addr8 - fun:mark_locations_array - fun:gc_mark_stacked_objects - fun:gc_mark_stacked_objects_all - fun:gc_marks_rest - ... - fun:ruby_finalize_? - fun:ruby_cleanup - ... -} diff --git a/suppressions/nokogiri_ruby-2.7.supp b/suppressions/nokogiri_ruby-2.7.supp index a93cbdd62c..3f39d32611 100644 --- a/suppressions/nokogiri_ruby-2.7.supp +++ b/suppressions/nokogiri_ruby-2.7.supp @@ -1,42 +1,76 @@ { - https://ci.nokogiri.org/teams/nokogiri-core/pipelines/nokogiri/jobs/ruby-2.7-rc-valgrind/builds/1 - Memcheck:Addr8 - fun:mark_locations_array - fun:gc_mark_stacked_objects - fun:gc_mark_stacked_objects_incremental - fun:gc_marks_rest - ... - fun:rb_ec_cleanup - ... -} -{ - https://ci.nokogiri.org/teams/nokogiri-core/pipelines/nokogiri/jobs/ruby-2.7-rc-valgrind/builds/1 - Memcheck:Addr8 - fun:mark_locations_array - fun:gc_marks_wb_unprotected_objects - fun:gc_marks_finish - ... - fun:rb_ec_cleanup - ... -} -{ - https://ci.nokogiri.org/teams/nokogiri-core/pipelines/nokogiri/jobs/ruby-2.7-rc-valgrind/builds/3 - Memcheck:Addr8 - fun:mark_locations_array - fun:gc_mark_stacked_objects - fun:gc_mark_stacked_objects_all - fun:gc_marks_rest - ... - fun:rb_ec_cleanup - ... -} -{ - https://ci.nokogiri.org/teams/nokogiri-core/pipelines/nokogiri/jobs/ruby-2.7-valgrind/builds/1 + ruby 2.7 startup Memcheck:Addr4 fun:iseq_peephole_optimize fun:iseq_optimize - ... + fun:iseq_setup_insn + fun:iseq_setup_insn fun:rb_iseq_compile_node fun:rb_iseq_new_with_opt + fun:new_child_iseq ... + # fun:iseq_compile_each0 + # fun:iseq_compile_each0 + # fun:rb_iseq_compile_node + # fun:rb_iseq_new_with_opt + # fun:new_child_iseq + # fun:iseq_compile_each0 + # fun:iseq_compile_each0 + # fun:rb_iseq_compile_node + # fun:rb_iseq_new_with_opt + # fun:new_child_iseq + # fun:iseq_compile_each0 + # fun:iseq_compile_each0 + # fun:rb_iseq_compile_node + # fun:rb_iseq_new_with_opt + # fun:rb_iseq_new_top + # fun:load_iseq_eval + # fun:require_internal + # fun:rb_require_string + # fun:vm_call_cfunc_with_frame + # fun:vm_call_cfunc + # fun:vm_call_method_each_type.part.410 + # fun:vm_call_method_each_type + # fun:vm_call_method + # fun:vm_sendish + # fun:vm_exec_core + # fun:rb_vm_exec + # fun:load_iseq_eval + # fun:require_internal + # fun:rb_require_string + # fun:vm_call_cfunc_with_frame + # fun:vm_call_cfunc + # fun:vm_call_method_each_type.part.410 + # fun:vm_call_method_each_type + # fun:vm_call_method + # fun:vm_sendish + # fun:vm_exec_core + # fun:rb_vm_exec + # fun:load_iseq_eval + # fun:require_internal + # fun:rb_require_string + # fun:vm_call_cfunc_with_frame + # fun:vm_call_cfunc + # fun:vm_call_method_each_type.part.410 + # fun:vm_call_method_each_type + # fun:vm_call_method + # fun:vm_sendish + # fun:vm_exec_core + # fun:rb_vm_exec + # fun:load_iseq_eval + # fun:require_internal + # fun:rb_require_string + # fun:vm_call_cfunc_with_frame + # fun:vm_call_cfunc + # fun:vm_call_method_each_type.part.410 + # fun:vm_call_method_each_type + # fun:vm_call_method + # fun:vm_sendish + # fun:vm_exec_core + # fun:rb_vm_exec + # fun:load_iseq_eval + # fun:require_internal + # fun:rb_require_string + # fun:vm_call_cfunc_with_frame + # fun:vm_call_cfunc } diff --git a/suppressions/nokogiri_ruby-2.supp b/suppressions/nokogiri_ruby-2.supp deleted file mode 100644 index 5a4bc757a7..0000000000 --- a/suppressions/nokogiri_ruby-2.supp +++ /dev/null @@ -1,10 +0,0 @@ -{ - - Memcheck:Free - fun:free - fun:__libc_freeres - fun:_vgnU_freeres - fun:__run_exit_handlers - fun:exit - fun:(below main) -} diff --git a/suppressions/nokogiri_ruby-3.0.supp b/suppressions/nokogiri_ruby-3.0.supp index 664c87df0a..b776436cb7 100644 --- a/suppressions/nokogiri_ruby-3.0.supp +++ b/suppressions/nokogiri_ruby-3.0.supp @@ -1,81 +1,8 @@ { - generated on dev machine via "valgrind --gen-suppressions=all ruby -Ilib:test test/test_gem_platform.rb" - Memcheck:Cond - fun:iseq_peephole_optimize - fun:iseq_optimize - fun:iseq_setup_insn - fun:iseq_setup_insn - fun:rb_iseq_compile_node - fun:rb_iseq_new_with_opt - fun:new_child_iseq - ... - # fun:compile_iter - # fun:iseq_compile_each0 - # fun:iseq_compile_each - # fun:iseq_compile_each0 - # fun:iseq_compile_each - # fun:rb_iseq_compile_node - # fun:rb_iseq_new_with_opt - # fun:new_child_iseq - # fun:iseq_compile_each0 - # fun:iseq_compile_each - # fun:iseq_compile_each0 - # fun:iseq_compile_each - # fun:rb_iseq_compile_node - # fun:rb_iseq_new_with_opt - # fun:new_child_iseq - # fun:iseq_compile_each0 - # fun:iseq_compile_each - # fun:iseq_compile_each0 - # fun:iseq_compile_each - # fun:rb_iseq_compile_node - # fun:rb_iseq_new_with_opt - # fun:rb_iseq_new_top - # fun:load_iseq_eval - # fun:require_internal - # fun:rb_require_string - # fun:vm_call_cfunc_with_frame - # fun:vm_call_method_each_type - # fun:vm_call_alias - # fun:vm_sendish - # fun:vm_exec_core - # fun:rb_vm_exec - # fun:load_iseq_eval - # fun:require_internal - # fun:rb_require_string - # fun:vm_call_cfunc_with_frame - # fun:vm_call_method_each_type - # fun:vm_call_alias - # fun:vm_sendish - # fun:vm_exec_core - # fun:rb_vm_exec - # fun:load_iseq_eval - # fun:require_internal - # fun:rb_require_string - # fun:vm_call_cfunc_with_frame - # fun:vm_call_method_each_type - # fun:vm_call_alias - # fun:vm_sendish - # fun:vm_exec_core - # fun:rb_vm_exec - # fun:load_iseq_eval - # fun:require_internal - # fun:rb_require_string - # fun:vm_call_cfunc_with_frame - # fun:vm_call_method_each_type - # fun:vm_call_alias - # fun:vm_sendish - # fun:vm_exec_core - # fun:rb_vm_exec - # fun:rb_ec_exec_node - # fun:ruby_run_node - # fun:main -} -{ - generated manually in alpine 3.13.1 image on dev machine + ruby 3.0 startup Memcheck:Addr4 fun:iseq_peephole_optimize - fun:iseq_optimize.isra.0 + fun:iseq_optimize* fun:iseq_setup_insn fun:iseq_setup_insn fun:rb_iseq_compile_node @@ -83,21 +10,12 @@ fun:new_child_iseq ... # fun:iseq_compile_each0 - # fun:iseq_compile_each # fun:iseq_compile_each0 - # fun:iseq_compile_each # fun:rb_iseq_compile_node # fun:rb_iseq_new_with_opt # fun:new_child_iseq # fun:iseq_compile_each0 - # fun:iseq_compile_each - # fun:iseq_compile_each0 - # fun:iseq_compile_each - # fun:rb_iseq_compile_node - # fun:rb_iseq_new_with_opt - # fun:new_child_iseq # fun:iseq_compile_each0 - # fun:iseq_compile_each # fun:rb_iseq_compile_node # fun:rb_iseq_new_with_opt # fun:rb_iseq_new_top @@ -105,78 +23,16 @@ # fun:require_internal # fun:rb_require_string # fun:vm_call_cfunc_with_frame - # fun:vm_call_alias - # fun:vm_sendish - # fun:vm_exec_core - # fun:rb_vm_exec - # fun:load_iseq_eval - # fun:require_internal - # fun:rb_require_string - # fun:vm_call_cfunc_with_frame - # fun:vm_call_alias - # fun:vm_sendish - # fun:vm_exec_core - # fun:rb_vm_exec - # fun:vm_call0_body - # fun:rb_vm_call0 - # fun:rb_call0 - # fun:rb_call - # fun:rb_funcallv - # fun:autoload_require - # fun:rb_ensure - # fun:rb_autoload_load - # fun:vm_get_ev_const - # fun:vm_get_ev_const + # fun:vm_sendish.constprop.531 # fun:vm_exec_core # fun:rb_vm_exec # fun:load_iseq_eval # fun:require_internal # fun:rb_require_string # fun:vm_call_cfunc_with_frame + # fun:vm_call_method_each_type # fun:vm_call_alias - # fun:vm_sendish - # fun:vm_exec_core - # fun:rb_vm_exec - # fun:vm_call0_body - # fun:rb_vm_call0 - # fun:rb_call0 - # fun:rb_call - # fun:rb_funcallv - # fun:autoload_require - # fun:rb_ensure - # fun:rb_autoload_load - # fun:rb_const_search_from -} -{ - generated on dev machine via "valgrind --gen-suppressions=all ruby -Ilib:test test/test_gem_platform.rb" - Memcheck:Addr4 - fun:iseq_peephole_optimize - fun:iseq_optimize - fun:iseq_setup_insn - fun:iseq_setup_insn - fun:rb_iseq_compile_node - fun:rb_iseq_new_with_opt - fun:new_child_iseq - ... - # fun:iseq_compile_each0 - # fun:iseq_compile_each - # fun:iseq_compile_each0 - # fun:iseq_compile_each - # fun:rb_iseq_compile_node - # fun:rb_iseq_new_with_opt - # fun:new_child_iseq - # fun:iseq_compile_each0 - # fun:iseq_compile_each - # fun:iseq_compile_each0 - # fun:iseq_compile_each - # fun:rb_iseq_compile_node - # fun:rb_iseq_new_with_opt - # fun:rb_iseq_new_top - # fun:load_iseq_eval - # fun:require_internal - # fun:rb_require_string - # fun:vm_call_cfunc_with_frame - # fun:vm_sendish + # fun:vm_sendish.constprop.531 # fun:vm_exec_core # fun:rb_vm_exec # fun:load_iseq_eval @@ -185,7 +41,7 @@ # fun:vm_call_cfunc_with_frame # fun:vm_call_method_each_type # fun:vm_call_alias - # fun:vm_sendish + # fun:vm_sendish.constprop.531 # fun:vm_exec_core # fun:rb_vm_exec # fun:load_iseq_eval @@ -194,7 +50,7 @@ # fun:vm_call_cfunc_with_frame # fun:vm_call_method_each_type # fun:vm_call_alias - # fun:vm_sendish + # fun:vm_sendish.constprop.531 # fun:vm_exec_core # fun:rb_vm_exec # fun:load_iseq_eval @@ -203,289 +59,4 @@ # fun:vm_call_cfunc_with_frame # fun:vm_call_method_each_type # fun:vm_call_alias - # fun:vm_sendish - # fun:vm_exec_core - # fun:rb_vm_exec - # fun:rb_ec_exec_node - # fun:ruby_run_node - # fun:main -} -{ - generated in flavorjones/nokogiri-test:mri-3.0 OCI container - Memcheck:Addr8 - fun:mark_locations_array - fun:gc_mark_children - fun:gc_mark_stacked_objects - ... - # fun:gc_mark_stacked_objects_incremental - fun:gc_marks_rest - ... - # fun:gc_rest.part.136 - # fun:gc_rest - fun:garbage_collect - ... - # fun:newobj_slowpath - # fun:newobj_slowpath_wb_protected - # fun:newobj_of0 - # fun:newobj_of - # fun:rb_wb_protected_newobj_of - # fun:str_alloc - # fun:str_duplicate - # fun:rb_str_resurrect - # fun:vm_exec_core - # fun:rb_vm_exec - # fun:invoke_block - # fun:invoke_iseq_block_from_c - # fun:invoke_block_from_c_bh - # fun:vm_yield - # fun:rb_yield_0 - # fun:rb_yield_1 - # fun:rb_yield - # fun:rb_ary_each - # fun:vm_call_cfunc_with_frame - # fun:vm_sendish.constprop.531 - # fun:vm_exec_core - # fun:rb_vm_exec - # fun:invoke_block - # fun:invoke_iseq_block_from_c - # fun:invoke_block_from_c_bh - # fun:vm_yield - # fun:rb_yield_0 - # fun:rb_yield_1 - # fun:rb_yield - # fun:rb_ary_collect - # fun:vm_call_cfunc_with_frame - # fun:vm_sendish.constprop.531 - # fun:vm_exec_core - # fun:rb_vm_exec - # fun:rb_vm_invoke_proc - # fun:rb_proc_call - # fun:exec_end_procs_chain - # fun:rb_ec_exec_end_proc - # fun:rb_ec_teardown - # fun:rb_ec_cleanup - # fun:ruby_run_node - # fun:main -} -{ - https://ci.nokogiri.org/teams/nokogiri-core/pipelines/nokogiri-pr/jobs/cruby-3.0-rc/builds/83#L5fc5a950:645 - Memcheck:Addr8 - fun:mark_locations_array - fun:gc_mark_children - fun:gc_mark_stacked_objects - ... - # fun:gc_mark_stacked_objects_all - fun:gc_marks_rest - ... - # fun:gc_marks - # fun:gc_start - fun:garbage_collect - ... - # fun:gc_start_internal - # fun:invoke_bf - # fun:vm_invoke_builtin - # fun:vm_exec_core - # fun:rb_vm_exec - # fun:invoke_block - # fun:invoke_iseq_block_from_c - # fun:invoke_block_from_c_bh - # fun:vm_yield - # fun:rb_yield_0 - # fun:rb_yield_1 - # fun:rb_yield - # fun:rb_ary_each - # fun:vm_call_cfunc_with_frame - # fun:vm_sendish.constprop.530 - # fun:vm_exec_core - # fun:rb_vm_exec - # fun:invoke_block - # fun:invoke_iseq_block_from_c - # fun:invoke_block_from_c_bh - # fun:vm_yield - # fun:rb_yield_0 - # fun:rb_yield_1 - # fun:rb_yield - # fun:rb_ary_collect - # fun:vm_call_cfunc_with_frame - # fun:vm_sendish.constprop.530 - # fun:vm_exec_core - # fun:rb_vm_exec - # fun:rb_vm_invoke_proc - # fun:rb_proc_call - # fun:exec_end_procs_chain - # fun:rb_ec_exec_end_proc - # fun:rb_ec_teardown - # fun:rb_ec_cleanup - # fun:ruby_run_node - # fun:main -} -{ - https://ci.nokogiri.org/teams/nokogiri-core/pipelines/nokogiri/jobs/cruby-3.0/builds/5#L5fc5adad:473 - Memcheck:Addr8 - fun:mark_locations_array - fun:gc_mark_children - fun:gc_marks_wb_unprotected_objects - ... - # fun:gc_marks_finish - # fun:gc_marks_rest - # fun:gc_rest.part.136 - fun:gc_rest - fun:garbage_collect - ... - # fun:gc_start_internal - # fun:invoke_bf - # fun:vm_invoke_builtin - # fun:vm_exec_core - # fun:rb_vm_exec - # fun:invoke_block - # fun:invoke_iseq_block_from_c - # fun:invoke_block_from_c_bh - # fun:vm_yield - # fun:rb_yield_0 - # fun:rb_yield_1 - # fun:rb_yield - # fun:rb_ary_each - # fun:vm_call_cfunc_with_frame - # fun:vm_sendish.constprop.531 - # fun:vm_exec_core - # fun:rb_vm_exec - # fun:invoke_block - # fun:invoke_iseq_block_from_c - # fun:invoke_block_from_c_bh - # fun:vm_yield - # fun:rb_yield_0 - # fun:rb_yield_1 - # fun:rb_yield - # fun:rb_ary_collect - # fun:vm_call_cfunc_with_frame - # fun:vm_sendish.constprop.531 - # fun:vm_exec_core - # fun:rb_vm_exec - # fun:rb_vm_invoke_proc - # fun:rb_proc_call - # fun:exec_end_procs_chain - # fun:rb_ec_exec_end_proc - # fun:rb_ec_teardown - # fun:rb_ec_cleanup - # fun:ruby_run_node - # fun:main -} -{ - https://ci.nokogiri.org/teams/nokogiri-core/pipelines/nokogiri-pr/jobs/cruby-3.0/builds/11#L5fc5b89c:471 - Memcheck:Addr8 - fun:mark_locations_array - fun:gc_mark_children - fun:gc_mark_stacked_objects - ... - # fun:gc_mark_stacked_objects_incremental - # fun:gc_marks_rest - # fun:gc_rest.part.136 - # fun:gc_rest - # fun:objspace_each_objects - # fun:rb_objspace_each_objects - fun:rb_reset_coverages - fun:rb_coverage_result - ... - # fun:vm_call_cfunc_with_frame - # fun:vm_call_method_each_type - # fun:vm_call_method - # fun:vm_sendish.constprop.531 - # fun:vm_exec_core - # fun:rb_vm_exec - # fun:rb_vm_invoke_proc - # fun:rb_proc_call - # fun:exec_end_procs_chain - # fun:rb_ec_exec_end_proc - # fun:rb_ec_teardown - # fun:rb_ec_cleanup - # fun:ruby_run_node - # fun:main -} -{ - https://ci.nokogiri.org/teams/nokogiri-core/pipelines/nokogiri-pr/jobs/cruby-3.0/builds/11#L5fc5b89c:529 - Memcheck:Addr8 - fun:mark_locations_array - fun:gc_mark_children - fun:gc_marks_wb_unprotected_objects - fun:gc_marks_finish - fun:gc_marks_rest - ... - # fun:gc_rest.part.136 - # fun:gc_rest - # fun:objspace_each_objects - # fun:rb_objspace_each_objects - fun:rb_reset_coverages - fun:rb_coverage_result - ... - # fun:vm_call_cfunc_with_frame - # fun:vm_call_method_each_type - # fun:vm_call_method - # fun:vm_sendish.constprop.531 - # fun:vm_exec_core - # fun:rb_vm_exec - # fun:rb_vm_invoke_proc - # fun:rb_proc_call - # fun:exec_end_procs_chain - # fun:rb_ec_exec_end_proc - # fun:rb_ec_teardown - # fun:rb_ec_cleanup - # fun:ruby_run_node - # fun:main -} -{ - https://ci.nokogiri.org/builds/14555#L5fc5c6b0:492 - Memcheck:Addr8 - fun:mark_locations_array - fun:gc_mark_children - fun:gc_mark_stacked_objects - fun:gc_mark_stacked_objects_incremental - fun:gc_marks_rest - fun:gc_marks_continue - fun:heap_prepare - fun:heap_next_freepage - ... - # fun:ractor_cache_slots - # fun:newobj_slowpath - # fun:newobj_slowpath_wb_protected - # fun:newobj_of0 - # fun:newobj_of - # fun:rb_wb_protected_newobj_of - # fun:hash_alloc_flags - # fun:hash_alloc - # fun:rb_hash_new - # fun:rb_hash_new_with_size - # fun:vm_exec_core - # fun:rb_vm_exec - # fun:invoke_block - # fun:invoke_iseq_block_from_c - # fun:invoke_block_from_c_bh - # fun:vm_yield - # fun:rb_yield_0 - # fun:rb_yield_1 - # fun:rb_yield - # fun:rb_ary_each - # fun:vm_call_cfunc_with_frame - # fun:vm_sendish.constprop.531 - # fun:vm_exec_core - # fun:rb_vm_exec - # fun:invoke_block - # fun:invoke_iseq_block_from_c - # fun:invoke_block_from_c_bh - # fun:vm_yield - # fun:rb_yield_0 - # fun:rb_yield_1 - # fun:rb_yield - # fun:rb_ary_collect - # fun:vm_call_cfunc_with_frame - # fun:vm_sendish.constprop.531 - # fun:vm_exec_core - # fun:rb_vm_exec - # fun:rb_vm_invoke_proc - # fun:rb_proc_call - # fun:exec_end_procs_chain - # fun:rb_ec_exec_end_proc - # fun:rb_ec_teardown - # fun:rb_ec_cleanup - # fun:ruby_run_node - # fun:main } diff --git a/test/helper.rb b/test/helper.rb index dea1e73fde..413df4f93f 100644 --- a/test/helper.rb +++ b/test/helper.rb @@ -174,6 +174,11 @@ def i_am_ruby_matching(gem_version_requirement_string) def i_am_in_a_systemd_container File.exist?("/proc/self/cgroup") && File.read("/proc/self/cgroup") =~ %r(/docker/|/garden/) end + + def i_am_running_in_valgrind + # https://stackoverflow.com/questions/365458/how-can-i-detect-if-a-program-is-running-from-within-valgrind/62364698#62364698 + ENV["LD_PRELOAD"] =~ /valgrind|vgpreload/ + end end module SAX diff --git a/test/xml/test_node_set.rb b/test/xml/test_node_set.rb index 6911f447c3..31af44efb5 100644 --- a/test/xml/test_node_set.rb +++ b/test/xml/test_node_set.rb @@ -739,6 +739,8 @@ def awesome(ns) # So let's skip this test if we think that's where we are. skip("cannot use Ruby 2.5 Enumerator#each in a systemd container") end + skip("enumerators confuse valgrind") if i_am_running_in_valgrind + employees = xml.search("//employee") enum = employees.each assert_instance_of(Enumerator, enum)