Skip Menu |

This queue is for tickets about the SOAP-WSDL CPAN distribution.

Report information
The Basics
Id: 103762
Status: resolved
Priority: 0/
Queue: SOAP-WSDL

People
Owner: Nobody in particular
Requestors: arfreitas [...] cpan.org
Cc: KENTNL [...] cpan.org
AdminCc:

Bug Information
Severity: (no value)
Broken in: v3.002
Fixed in: (no value)



Subject: missing Build.PL in MANIFEST, bug in CGI.t
During install on Windows 7, Strawberry Perl, I got the following error: Configuring S/SW/SWALTERS/SOAP-WSDL-3.003.tar.gz with Makefile.PL Checking if your kit is complete... Warning: the following files are missing in your kit: Build.PL Please inform the author. Generating a dmake-style Makefile Writing Makefile for SOAP::WSDL Writing MYMETA.yml and MYMETA.json SWALTERS/SOAP-WSDL-3.003.tar.gz The CGI.t has a bug because it removes the PATH variable during execution. This is required on Windows to load the XML::Parser::Expat correctly. See https://rt.cpan.org/Public/Bug/Display.html?id=68175 for more details. I attached a fixed version of the test (not a patch).
Em Qua Abr 15 19:09:54 2015, ARFREITAS escreveu: Show quoted text
> During install on Windows 7, Strawberry Perl, I got the following > error: > > Configuring S/SW/SWALTERS/SOAP-WSDL-3.003.tar.gz with Makefile.PL > Checking if your kit is complete... > Warning: the following files are missing in your kit: > Build.PL > Please inform the author. > Generating a dmake-style Makefile > Writing Makefile for SOAP::WSDL > Writing MYMETA.yml and MYMETA.json > SWALTERS/SOAP-WSDL-3.003.tar.gz > > The CGI.t has a bug because it removes the PATH variable during > execution. This is required on Windows to load the XML::Parser::Expat > correctly. See https://rt.cpan.org/Public/Bug/Display.html?id=68175 > for more details. > > I attached a fixed version of the test (not a patch).
Subject: CGI.t
package MyTypemap; sub get_typemap { return {} }; package HandlerClass; sub bar { return "Verdammte Axt"; } package main; use Test::More; eval "require IO::Scalar" or plan skip_all => 'IO::Scalar required for testing...'; plan tests => 12; use_ok(SOAP::WSDL::Server); use_ok(SOAP::WSDL::Server::CGI); my $server = SOAP::WSDL::Server::CGI->new({ class_resolver => 'MyTypemap', }); $server->set_action_map_ref({ 'testaction' => 'testmethod', }); { no warnings qw(once); *IO::Scalar::BINMODE = sub {}; } my $output = q{}; my $fh = IO::Scalar->new(\$output); my $stdout = *STDOUT; my $stdin = *STDIN; # don't try to print() anything from here on - it gets caught in $output, #and does not make it to STDOUT... my $path = $ENV{PATH}; *STDOUT = $fh; { local %ENV; $ENV{PATH} = $path; $server->handle(); like $output, qr{ \A Status: \s 411 \s Length \s Required}x; $output = q{}; $ENV{'CONTENT_LENGTH'} = '0e0'; $server->handle(); like $output, qr{ Error \s deserializing }xsm; $output = q{}; $server->set_action_map_ref({ 'foo' => 'bar', }); $server->set_dispatch_to( 'HandlerClass' ); $server->handle(); like $output, qr{no \s element \s found}xms; $output = q{}; $ENV{REQUEST_METHOD} = 'POST'; $ENV{HTTP_SOAPACTION} = 'test'; $server->handle(); like $output, qr{no \s element \s found}xms; $output = q{}; delete $ENV{HTTP_SOAPACTION}; $ENV{EXPECT} = 'Foo'; $ENV{HTTP_SOAPAction} = 'foo'; $server->handle(); like $output, qr{no \s element \s found}xms; $output = q{}; $ENV{EXPECT} = '100-Continue'; $ENV{HTTP_SOAPAction} = 'foo'; $server->handle(); like $output, qr{100 \s Continue}xms; $output = q{}; delete $ENV{EXPECT}; my $input = 'Foobar'; my $ih = IO::Scalar->new(\$input); $ih->seek(0); *STDIN = $ih; $ENV{HTTP_SOAPAction} = 'bar'; $ENV{CONTENT_LENGTH} = 6; $server->handle(); like $output, qr{ Error \s deserializing \s message}xms; $output = q{}; $ih->seek(0); $input = q{<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" > <SOAP-ENV:Body></SOAP-ENV:Body></SOAP-ENV:Envelope>}; $ENV{HTTP_SOAPAction} = 'bar'; $ENV{CONTENT_LENGTH} = length $input; $server->handle(); like $output, qr{ Not \s found:}xms; $output = q{}; $ih->seek(0); $server->set_dispatch_to( 'HandlerClass' ); $server->set_action_map_ref({ 'bar' => 'bar', }); $input = q{<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" > <SOAP-ENV:Body></SOAP-ENV:Body></SOAP-ENV:Envelope>}; $ENV{HTTP_SOAPAction} = q{"bar"}; $ENV{CONTENT_LENGTH} = length $input; $server->handle(); use Data::Dumper; like $output, qr{ \A Status: \s 200 \s OK}xms; $output = q{}; $ih->seek(0); $server->set_dispatch_to( 'HandlerClass' ); $server->set_action_map_ref({ 'bar' => 'bar', }); $input = q{<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" > <SOAP-ENV:Body></SOAP-ENV:Body></SOAP-ENV:Envelope>}; $ENV{SERVER_SOFTWARE} ='IIS Foobar'; $ENV{HTTP_SOAPAction} = q{"bar"}; $ENV{CONTENT_LENGTH} = length $input; $server->handle(); use Data::Dumper; like $output, qr{ \A HTTP/1.0 \s 200 \s OK}xms; $output = q{}; $ih->seek(0); } # restore handles *STDOUT = $stdout; *STDIN = $stdin;
Both issues seem to be fixed in the code in the GitHub repo: 1) Build.PL is listed in the Manifest 2) t/SOAP/WSDL/Server/CGI.t tests successfully as it is -- Cheers, ZZ [ https://metacpan.org/author/ZOFFIX ]

On 2015-05-29 01:18:08, ZOFFIX wrote:
> Both issues seem to be fixed in the code in the GitHub repo:
>
> 1) Build.PL is listed in the Manifest

 

The problem was never the absence of Build.PL in the MANIFEST.

 

The problem was the opposite: Build.PL is *ALREADY* in the Manifest, but was not present in the Tar.

 

Unfortunately, something got confused when writing the bug.

Build.PL is also mentioned in README

https://github.com/scrottie/SOAP-WSDL/blob/master/README#L30-L34

 

But no Build.PL has been shipped since 3.00.0_2

 

https://metacpan.org/diff/file?target=SWALTERS%2FSOAP-WSDL-3.00.0_2%2F&amp;source=SWALTERS%2FSOAP-WSDL-3.00.0_1%2F


 

I'd give you comaint if I weren't already just comaint. Thank you for the reports and fixes. Updated CGI.t with your version and those changes. Removed references to Build.PL from the docs and MANIFEST. Sorry for the exceedingly long day.