Sha256: d4423101cda77417a305a6003f7aa2fa159b6492c96a33785e4575e30de847d2

Contents?: true

Size: 1.08 KB

Versions: 145

Compression:

Stored size: 1.08 KB

Contents

#include <nokogiri.h>

static VALUE foreign_error_handler_block = Qnil;

static void
foreign_error_handler(void *user_data, xmlErrorPtr c_error)
{
  rb_funcall(foreign_error_handler_block, rb_intern("call"), 0);
}

/*
 * call-seq:
 *   __foreign_error_handler { ... } -> nil
 *
 * Override libxml2's global error handlers to call the block. This method thus has very little
 * value except to test that Nokogiri is properly setting error handlers elsewhere in the code. See
 * test/helper.rb for how this is being used.
 */
static VALUE
rb_foreign_error_handler(VALUE klass)
{
  rb_need_block();
  foreign_error_handler_block = rb_block_proc();
  xmlSetStructuredErrorFunc(NULL, foreign_error_handler);
  return Qnil;
}

/*
 *  Document-module: Nokogiri::Test
 *
 *  The Nokogiri::Test module should only be used for testing Nokogiri.
 *  Do NOT use this outside of the Nokogiri test suite.
 */
void
noko_init_test_global_handlers(void)
{
  VALUE mNokogiriTest = rb_define_module_under(mNokogiri, "Test");

  rb_define_singleton_method(mNokogiriTest, "__foreign_error_handler", rb_foreign_error_handler, 0);
}

Version data entries

145 entries across 145 versions & 2 rubygems

Version Path
nokogiri-1.15.7-x86-mingw32 ext/nokogiri/test_global_handlers.c
nokogiri-1.15.7-x86-linux ext/nokogiri/test_global_handlers.c
nokogiri-1.15.7-x86_64-linux ext/nokogiri/test_global_handlers.c
nokogiri-1.15.7-x86_64-darwin ext/nokogiri/test_global_handlers.c
nokogiri-1.15.7-x64-mingw-ucrt ext/nokogiri/test_global_handlers.c
nokogiri-1.15.7-x64-mingw32 ext/nokogiri/test_global_handlers.c
nokogiri-1.15.7-java ext/nokogiri/test_global_handlers.c
nokogiri-1.15.7 ext/nokogiri/test_global_handlers.c
nokogiri-1.15.7-arm-linux ext/nokogiri/test_global_handlers.c
nokogiri-1.15.7-arm64-darwin ext/nokogiri/test_global_handlers.c
nokogiri-1.15.7-aarch64-linux ext/nokogiri/test_global_handlers.c
nokogiri-1.15.6 ext/nokogiri/test_global_handlers.c
nokogiri-1.15.6-x86_64-linux ext/nokogiri/test_global_handlers.c
nokogiri-1.15.6-x86_64-darwin ext/nokogiri/test_global_handlers.c
nokogiri-1.15.6-x86-mingw32 ext/nokogiri/test_global_handlers.c
nokogiri-1.15.6-x86-linux ext/nokogiri/test_global_handlers.c
nokogiri-1.15.6-x64-mingw32 ext/nokogiri/test_global_handlers.c
nokogiri-1.15.6-x64-mingw-ucrt ext/nokogiri/test_global_handlers.c
nokogiri-1.15.6-java ext/nokogiri/test_global_handlers.c
nokogiri-1.15.6-arm64-darwin ext/nokogiri/test_global_handlers.c