From 21c08e43f0b9b509b12b20279077633ab6d88a81 Mon Sep 17 00:00:00 2001 From: Don Armstrong Date: Wed, 3 Dec 2008 19:54:23 -0800 Subject: [PATCH] * Ignore stupid (and useless) warnings about using a map for hash elements that are numeric --- cgi/soap.cgi | 15 +++++++++++++-- t/09_soap.t | 19 ++++++++++++++++--- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/cgi/soap.cgi b/cgi/soap.cgi index f6b0d04..2b68ddd 100755 --- a/cgi/soap.cgi +++ b/cgi/soap.cgi @@ -1,4 +1,7 @@ -#!/usr/bin/perl -wT +#!/usr/bin/perl -T + +use warnings; +use strict; #use SOAP::Transport::HTTP; @@ -24,5 +27,13 @@ for my $key (keys %{$typelookup}) { next unless defined $_ and /Month|Day|Year|date|time|duration/i; delete $typelookup->{$key}; } -$soap->handle; +our $warnings = ''; +eval { + # Ignore stupid warning because elements (hashes) can't start with + # numbers + local $SIG{__WARN__} = sub {$warnings .= $_[0] unless $_[0] =~ /Cannot encode unnamed element/}; + $soap->handle; +}; +die $@ if $@; +warn $warnings if length $warnings; diff --git a/t/09_soap.t b/t/09_soap.t index 2a04c60..4967a9c 100644 --- a/t/09_soap.t +++ b/t/09_soap.t @@ -81,20 +81,33 @@ else { eval q( use Debbugs::SOAP::Server; @Debbugs::SOAP::Server::ISA = qw(SOAP::Transport::HTTP::Daemon); - Debbugs::SOAP::Server + our $warnings = ''; + eval { + # Ignore stupid warning because elements (hashes) can't start with + # numbers + local $SIG{__WARN__} = sub {$warnings .= $_[0] unless $_[0] =~ /Cannot encode unnamed element/}; + Debbugs::SOAP::Server ->new(LocalAddr => 'localhost', LocalPort => $port) ->dispatch_to('/','Debbugs::SOAP') ->handle; + }; + die $@ if $@; + warn $warnings if length $warnings; + ); } use SOAP::Lite; my $soap = SOAP::Lite->uri('Debbugs/SOAP')->proxy('http://localhost:'.$port.'/'); #ok($soap->get_soap_version->result == 1,'Version set and got correctly'); -my $bugs = $soap->get_bugs(package => 'foo')->result; +my $bugs_result = $soap->get_bugs(package => 'foo'); +my $bugs = $bugs_result->result; use Data::Dumper; +#print STDERR Dumper($bugs_result); ok(@{$bugs} == 1 && $bugs->[0] == 1, 'get_bugs returns bug number 1') or fail(Dumper($bugs)); -my $status = $soap->get_status(1)->result; +my $status_result = $soap->get_status(1); +#print STDERR Dumper($status_result); +my $status = $status_result->result; ok($status->{1}{package} eq 'foo','get_status thinks that bug 1 belongs in foo') or fail(Dumper($status)); # Test the usertags at some point -- 2.39.2