r72761 - in /trunk/libzeromq-perl: ./ debian/ inc/Devel/ inc/Module/Install/ lib/ lib/ZeroMQ/ t/ tools/ xs/ xt/
gregoa at users.alioth.debian.org
gregoa at users.alioth.debian.org
Mon Apr 18 20:09:31 UTC 2011
Author: gregoa
Date: Mon Apr 18 20:09:19 2011
New Revision: 72761
URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=72761
Log:
New upstream release.
Added:
trunk/libzeromq-perl/inc/Module/Install/CheckLib.pm
- copied unchanged from r72760, branches/upstream/libzeromq-perl/current/inc/Module/Install/CheckLib.pm
trunk/libzeromq-perl/lib/ZeroMQ/Poller.pm
- copied unchanged from r72760, branches/upstream/libzeromq-perl/current/lib/ZeroMQ/Poller.pm
trunk/libzeromq-perl/t/105_poll.t
- copied unchanged from r72760, branches/upstream/libzeromq-perl/current/t/105_poll.t
trunk/libzeromq-perl/t/cover.sh
- copied unchanged from r72760, branches/upstream/libzeromq-perl/current/t/cover.sh
trunk/libzeromq-perl/tools/detect_zmq.pl
- copied unchanged from r72760, branches/upstream/libzeromq-perl/current/tools/detect_zmq.pl
trunk/libzeromq-perl/xt/pubsub_stress.t
- copied unchanged from r72760, branches/upstream/libzeromq-perl/current/xt/pubsub_stress.t
Modified:
trunk/libzeromq-perl/Changes
trunk/libzeromq-perl/MANIFEST
trunk/libzeromq-perl/META.yml
trunk/libzeromq-perl/Makefile.PL
trunk/libzeromq-perl/README
trunk/libzeromq-perl/debian/changelog
trunk/libzeromq-perl/inc/Devel/CheckLib.pm
trunk/libzeromq-perl/inc/Module/Install/TestTarget.pm
trunk/libzeromq-perl/lib/ZeroMQ.pm
trunk/libzeromq-perl/lib/ZeroMQ/Raw.pm
trunk/libzeromq-perl/lib/ZeroMQ/Socket.pm
trunk/libzeromq-perl/t/002_socket.t
trunk/libzeromq-perl/t/100_basic.t
trunk/libzeromq-perl/t/101_threads.t
trunk/libzeromq-perl/t/103_json.t
trunk/libzeromq-perl/tools/check_mi_mods.pl
trunk/libzeromq-perl/xs/perl_zeromq.h
trunk/libzeromq-perl/xs/perl_zeromq.xs
Modified: trunk/libzeromq-perl/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libzeromq-perl/Changes?rev=72761&op=diff
==============================================================================
--- trunk/libzeromq-perl/Changes (original)
+++ trunk/libzeromq-perl/Changes Mon Apr 18 20:09:19 2011
@@ -1,10 +1,31 @@
Changelog for Perl module ZeroMQ.
+
+0.12 Fri Apr 15 2011 15:35 JST
+ - Add missing tools/detect_zmq.pl which implemented the detection
+ scheme introduced in 0.11
+
+0.11 Fri Apr 15 2011 15:30 JST
+ - Make header, incpath, lib detection smarter.
+ * Now supports pkg-config!
+ * Environment variables ZMQ_HOME, ZMQ_INCLUDES, ZMQ_LIBS are
+ honored. Please see POD for how to configure ZeroMQ.pm
+ - Include a section on how to install in the POD.
+ - Remove usage of DOWNSTREAM/UPSTREAM, and connect inproc
+ sockets using PAIR
+
+0.10 Wed Apr 13 2011 10:30 JST
+ - Use Module::Instsall::CheckLib
+ - Silence test failures [https://github.com/lestrrat/ZeroMQ-Perl/issues/11]
+ (reported by oyvindsk)
+
+0.09_01 Fri Mar 11 2011 08:00 JST
+ - Add ZeroMQ::Poller (https://github.com/lestrrat/ZeroMQ-Perl/pull/8)
0.09 Wed Feb 16 2011 22:30 JST
- Only run silly Module::Install hoopla if you're an author
- Tweak Makefile.PL
- Smarter zmq.h detection
- - Include Devel::CheckLig in requires
+ - Include Devel::CheckLib in requires
0.08 Sun Jan 23 2011 14:45 JST
- Fixed many memory leaks (rt #64944) reported by Jason Ball
Modified: trunk/libzeromq-perl/MANIFEST
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libzeromq-perl/MANIFEST?rev=72761&op=diff
==============================================================================
--- trunk/libzeromq-perl/MANIFEST (original)
+++ trunk/libzeromq-perl/MANIFEST Mon Apr 18 20:09:19 2011
@@ -1,4 +1,3 @@
-inc/Devel/CheckLib.pm
Changes
eg/hello_client.pl
eg/hello_server.pl
@@ -11,10 +10,12 @@
eg/thread_0mq.pl
eg/threaded_client.pl
eg/threaded_server.pl
+inc/Devel/CheckLib.pm
inc/Module/Install.pm
inc/Module/Install/AuthorTests.pm
inc/Module/Install/Base.pm
inc/Module/Install/Can.pm
+inc/Module/Install/CheckLib.pm
inc/Module/Install/Fetch.pm
inc/Module/Install/Makefile.pm
inc/Module/Install/Metadata.pm
@@ -27,6 +28,7 @@
lib/ZeroMQ/Constants.pm
lib/ZeroMQ/Context.pm
lib/ZeroMQ/Message.pm
+lib/ZeroMQ/Poller.pm
lib/ZeroMQ/Raw.pm
lib/ZeroMQ/Socket.pm
Makefile.PL
@@ -45,9 +47,12 @@
t/101_threads.t
t/103_json.t
t/104_ipc.t
+t/105_poll.t
+t/cover.sh
t/rt64944.t
tools/check_mi_mods.pl
tools/genfiles.pl
+tools/detect_zmq.pl
xs/perl_zeromq.h
xs/perl_zeromq.xs
xt/100_eg_hello_world.t
@@ -57,6 +62,7 @@
xt/999_leak.t
xt/999_pod-coverage.t
xt/999_pod.t
+xt/pubsub_stress.t
xt/rt64836.t
xt/rt64836_lowlevel.t
xt/rt64944.t
Modified: trunk/libzeromq-perl/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libzeromq-perl/META.yml?rev=72761&op=diff
==============================================================================
--- trunk/libzeromq-perl/META.yml (original)
+++ trunk/libzeromq-perl/META.yml Mon Apr 18 20:09:19 2011
@@ -9,6 +9,7 @@
ExtUtils::MakeMaker: 6.42
ExtUtils::ParseXS: 2.21
Test::Exception: 0.29
+ Test::More: 0.98
Test::Requires: 0
Test::TCP: 0
configure_requires:
@@ -31,9 +32,10 @@
recommends:
JSON: 2.00
requires:
+ Task::Weaken: 0
XSLoader: 0.1
perl: 5.8.0
resources:
license: http://dev.perl.org/licenses/
repository: http://github.com/lestrrat/ZeroMQ-Perl
-version: 0.09
+version: 0.12
Modified: trunk/libzeromq-perl/Makefile.PL
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libzeromq-perl/Makefile.PL?rev=72761&op=diff
==============================================================================
--- trunk/libzeromq-perl/Makefile.PL (original)
+++ trunk/libzeromq-perl/Makefile.PL Mon Apr 18 20:09:19 2011
@@ -3,7 +3,6 @@
do 'tools/check_mi_mods.pl';
} else {
unshift @INC, 'inc';
- require Devel::CheckLib;
require inc::Module::Install;
Module::Install->import;
}
@@ -25,7 +24,18 @@
}
}
+checklibs lib => 'zmq', header => 'zmq.h';
+
+do 'tools/detect_zmq.pl';
+print "Detected the following ZMQ settings:\n";
+foreach my $env (qw(ZMQ_HOME ZMQ_H ZMQ_INCLUDES ZMQ_LIBS ZMQ_TRACE)) {
+ printf " + %s = %s\n", $env, exists $ENV{$env} ? $ENV{$env} : "(null)";
+}
+
+
repository 'http://github.com/lestrrat/ZeroMQ-Perl';
+requires 'Task::Weaken';
+test_requires 'Test::More', '0.98';
test_requires 'Test::TCP';
test_requires 'Test::Requires';
test_requires 'Test::Exception' => '0.29';
@@ -34,15 +44,15 @@
use_ppport;
cc_warnings;
-if ($ENV{INCLUDES}) {
- cc_include_paths split/\s+/, $ENV{INCLUDES};
-}
-if ($ENV{LIBS}) {
- cc_libs $ENV{LIBS};
-}
+cc_include_paths split/\s+/, $ENV{ZMQ_INCLUDES};
+cc_libs $ENV{ZMQ_LIBS};
+cc_include_paths 'xs';
cc_src_paths 'xs';
cc_assert_lib 'zmq';
cc_libs 'zmq', 'uuid'; # uuid for cygwin, but can't hurt
+if ($ENV{ZMQ_TRACE}) {
+ cc_define qq|-DPERLZMQ_TRACE=$ENV{ZMQ_TRACE}|;
+}
default_test_target
env => {
@@ -50,6 +60,7 @@
}
;
author_tests 'xt';
+clean_files "xs/*.inc";
do 'tools/genfiles.pl';
WriteAll;
Modified: trunk/libzeromq-perl/README
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libzeromq-perl/README?rev=72761&op=diff
==============================================================================
--- trunk/libzeromq-perl/README (original)
+++ trunk/libzeromq-perl/README Mon Apr 18 20:09:19 2011
@@ -49,6 +49,37 @@
my $rv = zmq_send( $sock, $msg, $flags );
my $msg = zmq_recv( $sock, $flags );
+INSTALLATION
+ If you have want to use libzmq registered with pkg-config:
+
+ perl Makefile.PL
+ make
+ make test
+ make install
+
+ If you don't have pkg-config, and libzmq is installed under
+ /usr/local/libzmq:
+
+ ZMQ_HOME=/usr/local/libzmq \
+ perl Makefile.PL
+ make
+ make test
+ make install
+
+ If you want to customize include directories and such:
+
+ ZMQ_INCLUDES=/path/to/libzmq/include \
+ ZMQ_LIBS=/path/to/libzmq/lib \
+ ZMQ_H=/path/to/libzmq/include/zmq.h \
+ perl Makefile.PL
+ make
+ make test
+ make install
+
+ If you want to compile with debugging on:
+
+ perl Makefile.PL -g
+
DESCRIPTION
The "ZeroMQ" module is a wrapper of the 0MQ message passing library for
Perl. It's a thin wrapper around the C API. Please read
@@ -159,8 +190,8 @@
ASYNCHRONOUS I/O WITH ZEROMQ
By default ZeroMQ comes with its own zmq_poll() mechanism that can
- handle non-blocking sockets. You can use this by creating calling
- zmq_poll with a list of hashrefs:
+ handle non-blocking sockets. You can use this by calling zmq_poll with a
+ list of hashrefs:
zmq_poll([
{
@@ -221,12 +252,18 @@
CAVEATS
This is an early release. Proceed with caution, please report (or better
- yet: fix) bugs you encounter. Tested againt 0MQ 2.1.0.
+ yet: fix) bugs you encounter.
+
+ This module has been tested againt zeromq 2.1.4. Semantics of this
+ module rely heavily on the underlying zeromq version. Make sure you know
+ which version of zeromq you're working with.
SEE ALSO
- ZeroMQ::Context, ZeroMQ::Socket, ZeroMQ::Message
+ ZeroMQ::Raw, ZeroMQ::Context, ZeroMQ::Socket, ZeroMQ::Message
<http://zeromq.org>
+
+ <http://github.com/lestrrat/ZoroMQ-Perl>
AUTHOR
Daisuke Maki "<daisuke at endeworks.jp>"
Modified: trunk/libzeromq-perl/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libzeromq-perl/debian/changelog?rev=72761&op=diff
==============================================================================
--- trunk/libzeromq-perl/debian/changelog (original)
+++ trunk/libzeromq-perl/debian/changelog Mon Apr 18 20:09:19 2011
@@ -1,4 +1,4 @@
-libzeromq-perl (0.09-1) UNRELEASED; urgency=low
+libzeromq-perl (0.12-1) UNRELEASED; urgency=low
NOTE: currently FTBFS due to undefined symbols -- maybe the version
of ZeroMQ in Debian is too old?
Modified: trunk/libzeromq-perl/inc/Devel/CheckLib.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libzeromq-perl/inc/Devel/CheckLib.pm?rev=72761&op=diff
==============================================================================
--- trunk/libzeromq-perl/inc/Devel/CheckLib.pm (original)
+++ trunk/libzeromq-perl/inc/Devel/CheckLib.pm Mon Apr 18 20:09:19 2011
@@ -6,7 +6,7 @@
use 5.00405; #postfix foreach
use strict;
use vars qw($VERSION @ISA @EXPORT);
-$VERSION = '0.92';
+$VERSION = '0.93';
use Config qw(%Config);
use Text::ParseWords 'quotewords';
@@ -256,7 +256,7 @@
}
warn "# @sys_cmd\n" if $args{debug};
my $rv = $args{debug} ? system(@sys_cmd) : _quiet_system(@sys_cmd);
- push @missing, $header if $rv != 0 || ! -x $exefile;
+ push @missing, $header if $rv != 0 || ! -x $exefile;
_cleanup_exe($exefile);
unlink $cfile;
}
@@ -309,7 +309,9 @@
warn "# @sys_cmd\n" if $args{debug};
my $rv = $args{debug} ? system(@sys_cmd) : _quiet_system(@sys_cmd);
push @missing, $lib if $rv != 0 || ! -x $exefile;
- push @wrongresult, $lib if $rv == 0 && -x $exefile && system(File::Spec->rel2abs($exefile)) != 0;
+ my $absexefile = File::Spec->rel2abs($exefile);
+ $absexefile = '"'.$absexefile.'"' if $absexefile =~ m/\s/;
+ push @wrongresult, $lib if $rv == 0 && -x $exefile && system($absexefile) != 0;
_cleanup_exe($exefile);
}
unlink $cfile;
Modified: trunk/libzeromq-perl/inc/Module/Install/TestTarget.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libzeromq-perl/inc/Module/Install/TestTarget.pm?rev=72761&op=diff
==============================================================================
--- trunk/libzeromq-perl/inc/Module/Install/TestTarget.pm (original)
+++ trunk/libzeromq-perl/inc/Module/Install/TestTarget.pm Mon Apr 18 20:09:19 2011
@@ -3,7 +3,7 @@
use 5.006_002;
use strict;
#use warnings; # XXX: warnings.pm produces a lot of 'redefine' warnings!
-our $VERSION = '0.16';
+our $VERSION = '0.18';
use base qw(Module::Install::Base);
use Config;
@@ -108,7 +108,7 @@
$code =~ s/\n/ /g;
if ($^O eq 'MSWin32') {
$code =~ s/\\\$\$/\$\$/g;
- if ($Config{make} eq 'dmake') {
+ if ($Config{make} =~ /dmake/i) {
$code =~ s/{/{{/g;
$code =~ s/}/}}/g;
}
Modified: trunk/libzeromq-perl/lib/ZeroMQ.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libzeromq-perl/lib/ZeroMQ.pm?rev=72761&op=diff
==============================================================================
--- trunk/libzeromq-perl/lib/ZeroMQ.pm (original)
+++ trunk/libzeromq-perl/lib/ZeroMQ.pm Mon Apr 18 20:09:19 2011
@@ -1,13 +1,14 @@
package ZeroMQ;
use strict;
BEGIN {
- our $VERSION = '0.09';
+ our $VERSION = '0.12';
our @ISA = qw(Exporter);
}
use ZeroMQ::Raw ();
use ZeroMQ::Context;
use ZeroMQ::Socket;
use ZeroMQ::Message;
+use ZeroMQ::Poller;
use ZeroMQ::Constants;
use 5.008;
use Carp ();
@@ -92,6 +93,37 @@
my $rv = zmq_send( $sock, $msg, $flags );
my $msg = zmq_recv( $sock, $flags );
+=head1 INSTALLATION
+
+If you have want to use libzmq registered with pkg-config:
+
+ perl Makefile.PL
+ make
+ make test
+ make install
+
+If you don't have pkg-config, and libzmq is installed under /usr/local/libzmq:
+
+ ZMQ_HOME=/usr/local/libzmq \
+ perl Makefile.PL
+ make
+ make test
+ make install
+
+If you want to customize include directories and such:
+
+ ZMQ_INCLUDES=/path/to/libzmq/include \
+ ZMQ_LIBS=/path/to/libzmq/lib \
+ ZMQ_H=/path/to/libzmq/include/zmq.h \
+ perl Makefile.PL
+ make
+ make test
+ make install
+
+If you want to compile with debugging on:
+
+ perl Makefile.PL -g
+
=head1 DESCRIPTION
The C<ZeroMQ> module is a wrapper of the 0MQ message passing library for Perl.
@@ -202,8 +234,8 @@
=head1 ASYNCHRONOUS I/O WITH ZEROMQ
By default ZeroMQ comes with its own zmq_poll() mechanism that can handle
-non-blocking sockets. You can use this by creating calling zmq_poll with a list
-of hashrefs:
+non-blocking sockets. You can use this by calling zmq_poll with a list of
+hashrefs:
zmq_poll([
{
@@ -270,13 +302,19 @@
=head1 CAVEATS
This is an early release. Proceed with caution, please report
-(or better yet: fix) bugs you encounter. Tested againt 0MQ 2.1.0.
+(or better yet: fix) bugs you encounter.
+
+This module has been tested againt B<zeromq 2.1.4>. Semantics of this
+module rely heavily on the underlying zeromq version. Make sure
+you know which version of zeromq you're working with.
=head1 SEE ALSO
-L<ZeroMQ::Context>, L<ZeroMQ::Socket>, L<ZeroMQ::Message>
+L<ZeroMQ::Raw>, L<ZeroMQ::Context>, L<ZeroMQ::Socket>, L<ZeroMQ::Message>
L<http://zeromq.org>
+
+L<http://github.com/lestrrat/ZoroMQ-Perl>
=head1 AUTHOR
Modified: trunk/libzeromq-perl/lib/ZeroMQ/Raw.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libzeromq-perl/lib/ZeroMQ/Raw.pm?rev=72761&op=diff
==============================================================================
--- trunk/libzeromq-perl/lib/ZeroMQ/Raw.pm (original)
+++ trunk/libzeromq-perl/lib/ZeroMQ/Raw.pm Mon Apr 18 20:09:19 2011
@@ -7,7 +7,7 @@
# XXX it's a hassle, but keep it in sync with ZeroMQ.pm
# by loading this here, we can make ZeroMQ::Raw independent
# of ZeroMQ while keeping the dist name as ZeroMQ
- XSLoader::load('ZeroMQ', '0.09');
+ XSLoader::load('ZeroMQ', '0.12');
}
our @EXPORT = qw(
Modified: trunk/libzeromq-perl/lib/ZeroMQ/Socket.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libzeromq-perl/lib/ZeroMQ/Socket.pm?rev=72761&op=diff
==============================================================================
--- trunk/libzeromq-perl/lib/ZeroMQ/Socket.pm (original)
+++ trunk/libzeromq-perl/lib/ZeroMQ/Socket.pm Mon Apr 18 20:09:19 2011
@@ -2,6 +2,8 @@
use strict;
use Carp();
use ZeroMQ ();
+
+use Scalar::Util qw(blessed);
BEGIN {
my @map = qw(
@@ -12,7 +14,7 @@
close
);
foreach my $method (@map) {
- my $code = sprintf <<EOSUB, $method, $method;
+ my $code = << "EOSUB";
sub $method {
my \$self = shift;
ZeroMQ::Raw::zmq_$method( \$self->socket, \@_ );
@@ -53,7 +55,7 @@
sub send {
my ($self, $msg, $flags) = @_;
- if (eval { $msg->isa( 'ZeroMQ::Message' ) } ) {
+ if (blessed $msg and $msg->isa( 'ZeroMQ::Message' ) ) {
$msg = $msg->message;
}
@@ -222,7 +224,7 @@
=head2 send
The C<send($msg, $flags)> method queues the given message to be sent to the
-socket. The flags argument is a combination of the flags defined below:
+socket. The flags argument is a combination of the flags defined below.
=head2 send_as( $type, $message, $flags )
@@ -248,7 +250,7 @@
the socket and returns it as a new C<ZeroMQ::Message> object.
If there are no messages available on the specified socket
the C<recv()> method blocks until the request can be satisfied.
-The flags argument is a combination of the flags defined below:
+The flags argument is a combination of the flags defined below.
=head2 recv_as( $type, $flags )
@@ -258,7 +260,8 @@
Specifies that the operation should be performed in non-blocking mode.
If there are no messages available on the specified socket, the
-C<$sock-E<gt>recv(ZMQ_NOBLOCK)> method call shall fail with errno set to EAGAIN.
+C<$sock-E<gt>recv(ZMQ_NOBLOCK)> method call returns C<undef> and sets C<$ERRNO>
+to C<EAGAIN>.
=back
@@ -296,7 +299,7 @@
=head2 setsockopt
-The C<$sock-E>gt>setsockopt(ZMQ_SOME_OPTION, $value)> method call
+The C<$sock-E<gt>setsockopt(ZMQ_SOME_OPTION, $value)> method call
sets the specified option to the given value.
The following socket options can be set. For details, please
@@ -333,7 +336,7 @@
C<ZeroMQ::Socket> objects aren't thread safe due to the
underlying library. Therefore, they are currently not cloned when
a new Perl ithread is spawned. The variables in the new thread
-that contained the context in the parent thread will be a
+that contained the socket in the parent thread will be a
scalar reference to C<undef> in the new thread.
This makes the Perl wrapper thread safe (i.e. no segmentation faults).
Modified: trunk/libzeromq-perl/t/002_socket.t
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libzeromq-perl/t/002_socket.t?rev=72761&op=diff
==============================================================================
--- trunk/libzeromq-perl/t/002_socket.t (original)
+++ trunk/libzeromq-perl/t/002_socket.t Mon Apr 18 20:09:19 2011
@@ -4,7 +4,7 @@
BEGIN {
use_ok "ZeroMQ::Constants", qw(
- ZMQ_DOWNSTREAM
+ ZMQ_PUSH
ZMQ_REP
ZMQ_REQ
);
@@ -34,7 +34,7 @@
subtest 'connect to a non-existent addr' => sub {
lives_ok {
my $context = zmq_init(1);
- my $socket = zmq_socket( $context, ZMQ_DOWNSTREAM );
+ my $socket = zmq_socket( $context, ZMQ_PUSH );
TODO: {
todo_skip "I get 'Assertion failed: rc == 0 (zmq_connecter.cpp:46)'", 2;
Modified: trunk/libzeromq-perl/t/100_basic.t
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libzeromq-perl/t/100_basic.t?rev=72761&op=diff
==============================================================================
--- trunk/libzeromq-perl/t/100_basic.t (original)
+++ trunk/libzeromq-perl/t/100_basic.t Mon Apr 18 20:09:19 2011
@@ -8,34 +8,41 @@
subtest 'connect before server socket is bound (should fail)' => sub {
my $cxt = ZeroMQ::Context->new;
- my $sock = $cxt->socket(ZMQ_UPSTREAM); # Receiver
+ my $sock = $cxt->socket(ZMQ_PAIR); # Receiver
# too early, server socket not created:
- my $client = $cxt->socket(ZMQ_DOWNSTREAM);
+ my $client = $cxt->socket(ZMQ_PAIR);
eval { $client->connect("inproc://myPrivateSocket"); };
ok($@ && "$@" =~ /Connection refused/);
};
subtest 'basic inproc communication' => sub {
my $cxt = ZeroMQ::Context->new;
- my $sock = $cxt->socket(ZMQ_UPSTREAM); # Receiver
+ my $sock = $cxt->socket(ZMQ_PAIR); # Receiver
eval {
$sock->bind("inproc://myPrivateSocket");
};
ok !$@, "bind to inproc socket";
- my $client = $cxt->socket(ZMQ_DOWNSTREAM); # sender
+ my $client = $cxt->socket(ZMQ_PAIR); # sender
eval {
$client->connect("inproc://myPrivateSocket");
};
ok !$@, "connect to inproc socket";
- ok(!defined($sock->recv(ZMQ_NOBLOCK)), "recv before sending anything should return nothing");
+ ok(!defined($sock->recv(ZMQ_NOBLOCK())), "recv before sending anything should return nothing");
ok($client->send( ZeroMQ::Message->new("Talk to me") ) == 0);
-
- ok(!$sock->getsockopt(ZMQ_RCVMORE), "no ZMQ_RCVMORE set");
- ok($sock->getsockopt(ZMQ_AFFINITY) == 0, "no ZMQ_AFFINITY");
- ok($sock->getsockopt(ZMQ_RATE) == 100, "ZMQ_RATE is at default 100");
+
+ # These tests are potentially dangerous when upgrades happen....
+ # I thought of plain removing, but I'll leave it for now
+ my ($major, $minor, $micro) = ZeroMQ::version();
+ SKIP: {
+ skip( "Need to be exactly zeromq 2.1.0", 3 )
+ if ($major != 2 || $minor != 1 || $micro != 0);
+ ok(!$sock->getsockopt(ZMQ_RCVMORE), "no ZMQ_RCVMORE set");
+ ok($sock->getsockopt(ZMQ_AFFINITY) == 0, "no ZMQ_AFFINITY");
+ ok($sock->getsockopt(ZMQ_RATE) == 100, "ZMQ_RATE is at default 100");
+ }
my $msg = $sock->recv();
ok(defined $msg, "received defined msg");
Modified: trunk/libzeromq-perl/t/101_threads.t
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libzeromq-perl/t/101_threads.t?rev=72761&op=diff
==============================================================================
--- trunk/libzeromq-perl/t/101_threads.t (original)
+++ trunk/libzeromq-perl/t/101_threads.t Mon Apr 18 20:09:19 2011
@@ -17,18 +17,19 @@
my $cxt = ZeroMQ::Context->new(1);
isa_ok($cxt, 'ZeroMQ::Context');
- my $main_socket = $cxt->socket(ZMQ_UPSTREAM);
+ my $main_socket = $cxt->socket(ZMQ_PUSH);
isa_ok($main_socket, "ZeroMQ::Socket");
$main_socket->close;
+
my $t = threads->new(sub {
note "created thread " . threads->tid;
- my $sock = $cxt->socket( ZMQ_UPSTREAM );
+ my $sock = $cxt->socket( ZMQ_PAIR );
ok $sock, "created server socket";
lives_ok {
$sock->bind("inproc://myPrivateSocket");
} "bound server socket";
- my $client = $cxt->socket(ZMQ_DOWNSTREAM); # sender
+ my $client = $cxt->socket(ZMQ_PAIR); # sender
ok $client, "created client socket";
lives_ok {
$client->connect("inproc://myPrivateSocket");
@@ -36,7 +37,10 @@
$client->send( "Wee Woo" );
my $data = $sock->recv();
- my $ok = is $data->data, "Wee Woo", "got same message";
+ my $ok = 0;
+ if (ok $data) {
+ $ok = is $data->data, "Wee Woo", "got same message";
+ }
return $ok;
});
Modified: trunk/libzeromq-perl/t/103_json.t
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libzeromq-perl/t/103_json.t?rev=72761&op=diff
==============================================================================
--- trunk/libzeromq-perl/t/103_json.t (original)
+++ trunk/libzeromq-perl/t/103_json.t Mon Apr 18 20:09:19 2011
@@ -3,7 +3,7 @@
use Test::Requires 'JSON';
BEGIN {
- use_ok 'ZeroMQ', qw(ZMQ_UPSTREAM ZMQ_DOWNSTREAM ZMQ_NOBLOCK);
+ use_ok 'ZeroMQ', qw(ZMQ_PAIR ZMQ_NOBLOCK);
}
{
@@ -11,15 +11,15 @@
my $cxt = ZeroMQ::Context->new;
isa_ok($cxt, 'ZeroMQ::Context');
- my $sock = $cxt->socket(ZMQ_UPSTREAM); # Receiver
+ my $sock = $cxt->socket(ZMQ_PAIR); # Receiver
isa_ok($sock, 'ZeroMQ::Socket');
$sock->bind("inproc://myPrivateSocket");
- my $client = $cxt->socket(ZMQ_DOWNSTREAM); # sender
+ my $client = $cxt->socket(ZMQ_PAIR); # sender
$client->connect("inproc://myPrivateSocket");
- ok(!defined($sock->recv(ZMQ_NOBLOCK)));
+ ok(!defined($sock->recv(ZMQ_NOBLOCK())));
ok($client->send_as( json => $structure ) == 0);
my $msg = $sock->recv_as( 'json' );
@@ -32,11 +32,11 @@
isa_ok($cxt, 'ZeroMQ::Context');
can_ok($cxt, 'socket');
- my $sock = $cxt->socket(ZMQ_UPSTREAM); # Receiver
+ my $sock = $cxt->socket(ZMQ_PAIR); # Receiver
isa_ok($sock, 'ZeroMQ::Socket');
$sock->bind("inproc://myPrivateSocket");
- my $client = $cxt->socket(ZMQ_DOWNSTREAM); # sender
+ my $client = $cxt->socket(ZMQ_PAIR); # sender
$client->connect("inproc://myPrivateSocket");
my $structure = {some => 'data', structure => [qw/that is json friendly/]};
Modified: trunk/libzeromq-perl/tools/check_mi_mods.pl
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libzeromq-perl/tools/check_mi_mods.pl?rev=72761&op=diff
==============================================================================
--- trunk/libzeromq-perl/tools/check_mi_mods.pl (original)
+++ trunk/libzeromq-perl/tools/check_mi_mods.pl Mon Apr 18 20:09:19 2011
@@ -4,6 +4,7 @@
my @modules = qw(
inc::Module::Install
Module::Install::AuthorTests
+ Module::Install::CheckLib
Module::Install::ReadmeFromPod
Module::Install::TestTarget
Module::Install::XSUtil
Modified: trunk/libzeromq-perl/xs/perl_zeromq.h
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libzeromq-perl/xs/perl_zeromq.h?rev=72761&op=diff
==============================================================================
--- trunk/libzeromq-perl/xs/perl_zeromq.h (original)
+++ trunk/libzeromq-perl/xs/perl_zeromq.h Mon Apr 18 20:09:19 2011
@@ -7,7 +7,9 @@
#include <zmq.h>
#include <errno.h>
+#ifndef PERLZMQ_TRACE
#define PERLZMQ_TRACE 0
+#endif
#define _ERRNO errno
#define SET_BANG PerlZMQ_set_bang(aTHX_ _ERRNO)
Modified: trunk/libzeromq-perl/xs/perl_zeromq.xs
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libzeromq-perl/xs/perl_zeromq.xs?rev=72761&op=diff
==============================================================================
--- trunk/libzeromq-perl/xs/perl_zeromq.xs (original)
+++ trunk/libzeromq-perl/xs/perl_zeromq.xs Mon Apr 18 20:09:19 2011
@@ -1,13 +1,17 @@
#include "perl_zeromq.h"
#include "xshelper.h"
+
+#if (PERLZMQ_TRACE > 0)
+#define PerlZMQ_trace(...) warn(__VA_ARGS__)
+#else
+#define PerlZMQ_trace(...)
+#endif
STATIC_INLINE void
PerlZMQ_set_bang(pTHX_ int err) {
SV *errsv = get_sv("!", GV_ADD);
-#if (PERLZMQ_TRACE > 0)
- warn("Set ERRSV ($!) to %d", err);
-#endif
+ PerlZMQ_trace("Set ERRSV ($!) to %d", err);
sv_setiv(errsv, err);
}
@@ -16,9 +20,7 @@
PerlZMQ_Raw_Message *const src = (PerlZMQ_Raw_Message *) mg->mg_ptr;
PerlZMQ_Raw_Message *dest;
-#if (PERLZMQ_TRACE > 0)
- warn("Message_dup");
-#endif
+ PerlZMQ_trace("Message -> dup");
PERL_UNUSED_VAR( param );
Newxz( dest, 1, PerlZMQ_Raw_Message );
@@ -31,9 +33,7 @@
STATIC_INLINE int
PerlZMQ_Raw_Message_mg_free( pTHX_ SV * const sv, MAGIC *const mg ) {
PerlZMQ_Raw_Message* const msg = (PerlZMQ_Raw_Message *) mg->mg_ptr;
-#if (PERLZMQ_TRACE > 0)
- warn("Message_mg_free for SV = %p, zmq_msg_t = %p", sv, msg);
-#endif
+ PerlZMQ_trace("Message_mg_free for SV = %p, zmq_msg_t = %p", sv, msg);
PERL_UNUSED_VAR(sv);
if ( msg != NULL ) {
zmq_msg_close( msg );
@@ -66,17 +66,13 @@
if (ctxt != NULL) {
#ifdef USE_ITHREADS
if ( ctxt->interp == aTHX ) { /* is where I came from */
-#if (PERLZMQ_TRACE > 0)
- warn("Context_free for context wrapper %p with zmq context %p for thread %p", ctxt, ctxt->ctxt, aTHX);
-#endif
+ PerlZMQ_trace("Context_free for context wrapper %p with zmq context %p for thread %p", ctxt, ctxt->ctxt, aTHX);
zmq_term( ctxt->ctxt );
mg->mg_ptr = NULL;
Safefree(ctxt);
}
#else
-#if (PERLZMQ_TRACE > 0)
- warn("Context_free for zmq context %p", ctxt);
-#endif
+ PerlZMQ_trace("Context_free for zmq context %p", ctxt);
zmq_term( ctxt );
mg->mg_ptr = NULL;
#endif
@@ -115,9 +111,7 @@
PerlZMQ_Raw_Socket* const sock = (PerlZMQ_Raw_Socket *) mg->mg_ptr;
PERL_UNUSED_VAR(sv);
if (sock) {
-#if (PERLZMQ_TRACE > 0)
- warn("Socket_free %p", sock);
-#endif
+ PerlZMQ_trace("Socket_free %p", sock);
zmq_close( sock );
}
return 1;
@@ -206,9 +200,7 @@
Newxz( RETVAL, 1, PerlZMQ_Raw_Context );
RETVAL->interp = aTHX;
RETVAL->ctxt = zmq_init( nthreads );
-#if (PERLZMQ_TRACE > 0)
- warn("context create context wrapper %p with zmq context %p for thread %p", RETVAL, RETVAL->ctxt, aTHX);
-#endif
+ PerlZMQ_trace("context create context wrapper %p with zmq context %p for thread %p", RETVAL, RETVAL->ctxt, aTHX);
#else
RETVAL = zmq_init( nthreads );
#endif
@@ -289,11 +281,9 @@
zmq_msg_close( RETVAL );
RETVAL = NULL;
}
-#if (PERLZMQ_TRACE > 0)
else {
- warn("zmq_msg_init_data created message %p", RETVAL);
- }
-#endif
+ PerlZMQ_trace("zmq_msg_init_data created message %p", RETVAL);
+ }
OUTPUT:
RETVAL
@@ -352,9 +342,7 @@
#else
RETVAL = zmq_socket( ctxt, type );
#endif
-#if (PERLZMQ_TRACE > 0)
- warn( "created socket %p", RETVAL );
-#endif
+ PerlZMQ_trace( "created socket %p", RETVAL );
OUTPUT:
RETVAL
@@ -408,24 +396,18 @@
RETVAL = NULL;
zmq_msg_init(&msg);
rv = zmq_recv(socket, &msg, flags);
-#if (PERLZMQ_TRACE > 0)
- warn("zmq recv with flags %d", flags);
- warn("zmq_recv returned with rv '%d'", rv);
-#endif
+ PerlZMQ_trace("zmq recv with flags %d", flags);
+ PerlZMQ_trace("zmq_recv returned with rv '%d'", rv);
if (rv != 0) {
SET_BANG;
zmq_msg_close(&msg);
-#if (PERLZMQ_TRACE > 0)
- warn("zmq_recv got bad status, closing temporary message");
-#endif
+ PerlZMQ_trace("zmq_recv got bad status, closing temporary message");
} else {
Newxz(RETVAL, 1, PerlZMQ_Raw_Message);
zmq_msg_init(RETVAL);
zmq_msg_copy( RETVAL, &msg );
zmq_msg_close(&msg);
-#if (PERLZMQ_TRACE > 0)
- warn("zmq_recv created message %p", RETVAL );
-#endif
+ PerlZMQ_trace("zmq_recv created message %p", RETVAL );
}
OUTPUT:
RETVAL
More information about the Pkg-perl-cvs-commits
mailing list