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