1use Test::More tests => 18; 2use strict; 3use warnings; 4 5use FindBin qw/$Bin/; 6use lib "$Bin/lib"; 7use NAR::Helper; 8 9my $helper = NAR::Helper->new; 10 11ok $helper->connect, "connected"; 12ok $helper->channel_open, "channel_open"; 13ok $helper->exchange_declare, "default exchange declare"; 14ok $helper->queue_declare, "queue declare"; 15ok $helper->queue_bind, "queue bind"; 16ok $helper->drain, "drain queue"; 17 18my $tag_back = $helper->consume; 19is $helper->{consumer_tag}, $tag_back, 'consume returns the tag we gave it'; 20 21#we don't need to publish or anything, as the segfault happens either way 22my $rv = $helper->recv(-1); 23$helper->ack( 1231211 ); 24 25#cancel will fail because the above ack caused an error 26# this used to cause a segfault. but now it shouldn't 27is $helper->cancel, undef, 'cancel fails'; 28is $rv, undef, "recv"; 29 30ok $helper->disconnect, 'disconnect'; 31 32ok $helper->connect, "connected"; 33ok $helper->channel_open, "channel_open"; 34ok $helper->queue_bind, "queue bind"; 35ok $helper->drain, "drain queue"; 36 37$tag_back = $helper->consume; 38is $helper->{consumer_tag}, $tag_back, 'consume returns the tag we gave it'; 39 40#this one shouldn't fail or segfault 41ok $helper->cancel( $tag_back ), 'cancel ok'; 42ok $helper->disconnect, 'disconnect'; 43ok !$helper->cancel, "cancel on disconnected fails"; 44