Glib

 view release on metacpan or  search on metacpan

t/7.t  view on Meta::CPAN

     my $x = 123;
     my $subr = sub { return $x };

     # handler to suppress the warning message from nosuchsignal
     my $logid = Glib::Log->set_handler ('GLib-GObject', ['warning'], sub { });
     my $sigid = $my->signal_connect ('nosuchsignal' => $subr);
     Glib::Log->remove_handler ('GLib-GObject', $logid);

     ok(! $sigid, 34, "'nosuchsignal' not connected");
     require Scalar::Util;
     Scalar::Util::weaken ($subr);
     ok(! defined $subr, 35, "subr gc'ed after bad signal name");
   }
}

pass(36);




__END__

t/9.t  view on Meta::CPAN

  if ($pid == 0) {
    # child
    require POSIX;
    POSIX::_exit(42); # no END etc cleanups
  }
  # parent
  my $loop = Glib::MainLoop->new;
  my $userdata = [ 'hello' ];
  my $id = Glib::Child->watch_add ($pid, sub { die; }, $userdata);
  require Scalar::Util;
  Scalar::Util::weaken ($userdata);
  print '', (defined $userdata ? 'ok' : 'not ok'),
    " 26 - child userdata kept alive\n";
  print '', (Glib::Source->remove($id) ? 'ok' : 'not ok'),
    " 27 - child source removal\n";
  print '', (! defined $userdata ? 'ok' : 'not ok'),
    " 28 - child userdata now gone\n";

  # No test of $status here, yet, since it may be a raw number on ms-dos,
  # instead of a waitpid() style "code*256".  Believe there's no
  # POSIX::WIFEXITED() etc on dos either to help examining the value.

t/a.t  view on Meta::CPAN

    is ($args[0], 'Another-Unknown-Domain', 'sub2 domain');
    isa_ok ($args[1], 'Glib::LogLevelFlags', 'sub2 flags type');
    ok ($args[1] == ['warning'], 'sub2 flags value');
    is ($args[2], 'a message', 'sub2 message');
    is ($args[3], 'some userdata', 'sub2 userdata');
    return $x
  };
  is (Glib::Log->set_default_handler($sub2,'some userdata'), $sub1,
      'default log handler: install sub2, prev sub1');
  require Scalar::Util;
  Scalar::Util::weaken ($sub1);
  is ($sub1, undef,
      'sub1 garbage collected by weakening');
  Glib->log ('Another-Unknown-Domain', ['warning'], 'a message');

  is (Glib::Log->set_default_handler(undef), $sub2,
      'default log handler: install undef, prev sub2');
  Glib->log ('Another-Unknown-Domain', ['info'], 'this is a test message');

  is (Glib::Log->set_default_handler(undef),
      \&Glib::Log::default_handler,
      'default log handler: install undef, prev default');
  Glib->log ('Another-Unknown-Domain', ['info'], 'this is yet another a test message');



( run in 0.381 second using v1.01-cache-2.11-cpan-1f129e94a17 )