1
0
mirror of https://github.com/moparisthebest/wget synced 2024-07-03 16:38:41 -04:00

Automated merge.

This commit is contained in:
Saint Xavier 2008-06-14 17:46:53 +02:00
commit 1a33947ca0
54 changed files with 478 additions and 130 deletions

View File

@ -1,3 +1,10 @@
2008-06-13 Micah Cowan <micah@cowan.name>
* wget.texi (Mailing List): The wget-notify mailing list no longer
receives commit notifications from the source repository.
(Internet Relay Chat): Activity isn't quite so low any more,
remove notice to that effect.
2008-05-17 Steven Schubiger <stsc@members.fsf.org> 2008-05-17 Steven Schubiger <stsc@members.fsf.org>
* wget.texi (Download Options): Change documentation to reflect * wget.texi (Download Options): Change documentation to reflect

View File

@ -3405,11 +3405,9 @@ The mailing list is archived at
@url{http://news.gmane.org/gmane.comp.web.wget.patches}. @url{http://news.gmane.org/gmane.comp.web.wget.patches}.
Finally, there is the @email{wget-notify@@addictivecode.org} mailing Finally, there is the @email{wget-notify@@addictivecode.org} mailing
list. This is a non-discussion list that receives commit notifications list. This is a non-discussion list that receives bug report-change
from the source repository, and also bug report-change notifications. notifications from the bug-tracker. Unlike for the other mailing lists,
This is the highest-traffic list for Wget, and is recommended only for subscription is through the @code{mailman} interface at
people who are seriously interested in ongoing Wget development.
Subscription is through the @code{mailman} interface at
@url{http://addictivecode.org/mailman/listinfo/wget-notify}. @url{http://addictivecode.org/mailman/listinfo/wget-notify}.
@node Internet Relay Chat @node Internet Relay Chat
@ -3418,9 +3416,8 @@ Subscription is through the @code{mailman} interface at
@cindex IRC @cindex IRC
@cindex #wget @cindex #wget
While, at the time of this writing, there is very low activity, we do In addition to the mailinglists, we also have a support channel set up
have a support channel set up via IRC at @code{irc.freenode.org}, via IRC at @code{irc.freenode.org}, @code{#wget}. Come check it out!
@code{#wget}. Come check it out!
@node Reporting Bugs @node Reporting Bugs
@section Reporting Bugs @section Reporting Bugs

View File

@ -1,3 +1,13 @@
2008-06-13 Micah Cowan <micah@cowan.name>
* build_info.c: ENABLE_NTLM, not HAVE_NTLM.
2008-06-13 Madhusudan Hosaagrahara <com.gmail.hrmadhu>
* Makefile.am, main.c, init.c, init.h, build_info.c: Adds build
information to the --version command line option. Fixes bug
#20636.
2008-06-01 Micah Cowan <micah@cowan.name> 2008-06-01 Micah Cowan <micah@cowan.name>
* main.c [WINDOWS]: Reopen stdout in binary mode, when -O - is * main.c [WINDOWS]: Reopen stdout in binary mode, when -O - is

View File

@ -35,25 +35,32 @@ DEFS = @DEFS@ -DSYSTEM_WGETRC=\"$(sysconfdir)/wgetrc\" -DLOCALEDIR=\"$(local
LIBS = @LIBSSL@ @LIBGNUTLS@ @LIBINTL@ @LIBS@ LIBS = @LIBSSL@ @LIBGNUTLS@ @LIBINTL@ @LIBS@
bin_PROGRAMS = wget bin_PROGRAMS = wget
wget_SOURCES = cmpt.c connect.c convert.c cookies.c ftp.c ftp-basic.c \ wget_SOURCES = build_info.c cmpt.c connect.c convert.c cookies.c ftp.c \
ftp-ls.c hash.c host.c html-parse.c html-url.c http.c \ ftp-basic.c ftp-ls.c hash.c host.c html-parse.c html-url.c \
init.c log.c main.c netrc.c progress.c ptimer.c recur.c \ http.c init.c log.c main.c netrc.c progress.c ptimer.c \
res.c retr.c snprintf.c spider.c url.c \ recur.c res.c retr.c snprintf.c spider.c url.c \
utils.c \ utils.c \
connect.h convert.h cookies.h \ connect.h convert.h cookies.h \
ftp.h gen-md5.h hash.h host.h html-parse.h \ ftp.h gen-md5.h hash.h host.h html-parse.h \
http.h http-ntlm.h init.h log.h mswindows.h netrc.h \ http.h http-ntlm.h init.h log.h mswindows.h netrc.h \
options.h progress.h ptimer.h recur.h res.h retr.h \ options.h progress.h ptimer.h recur.h res.h retr.h \
spider.h ssl.h sysdep.h url.h utils.h wget.h spider.h ssl.h sysdep.h url.h utils.h wget.h
nodist_wget_SOURCES = version.c nodist_wget_SOURCES = version.c
EXTRA_wget_SOURCES = mswindows.c EXTRA_wget_SOURCES = mswindows.c
LDADD = $(LIBOBJS) ../lib/libgnu.a @MD5_LDADD@ LDADD = $(LIBOBJS) ../lib/libgnu.a @MD5_LDADD@
AM_CPPFLAGS = -I$(top_srcdir)/lib @MD5_CPPFLAGS@ AM_CPPFLAGS = -I$(top_srcdir)/lib @MD5_CPPFLAGS@
ESCAPEQUOTE = sed -e 's/[\\"]/\\&/g' -e 's/\\"/"/' -e 's/\\";$$/";/'
version.c: $(wget_SOURCES) $(LDADD) $(srcdir)/Makefile.am version.c: $(wget_SOURCES) $(LDADD) $(srcdir)/Makefile.am
echo 'const char *version_string = "@VERSION@"' > $@ echo '/* version.c */' > $@
-hg log -r . --template='" ({node|short})"\n' 2>/dev/null >> $@ echo '/* Autogenerated by Makefile - DO NOT EDIT */' >> $@
echo '' >> $@
echo -n 'char* version_string = "@VERSION@ ' >> $@
-hg log -r . --template=' ({node|short})"\n' 2>/dev/null >> $@
echo ';' >> $@ echo ';' >> $@
echo 'char* compilation_string = "'$(COMPILE)'";' | $(ESCAPEQUOTE) >> $@
echo 'char* link_string = "'$(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(AM_LDFLAGS) $(LDFLAGS) $(LIBS) $(wget_LDADD)'";' | $(ESCAPEQUOTE) >> $@
check_LIBRARIES = libunittest.a check_LIBRARIES = libunittest.a
libunittest_a_SOURCES = $(wget_SOURCES) test.c test.h libunittest_a_SOURCES = $(wget_SOURCES) test.c test.h

107
src/build_info.c Normal file
View File

@ -0,0 +1,107 @@
/* This stores global variables that are initialized with
preprocessor declarations for output with the --version flag.
Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
This file is part of GNU Wget.
GNU Wget is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
GNU Wget is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Wget. If not, see <http://www.gnu.org/licenses/>.
Additional permission under GNU GPL version 3 section 7
If you modify this program, or any covered work, by linking or
combining it with the OpenSSL project's OpenSSL library (or a
modified version of that library), containing parts covered by the
terms of the OpenSSL or SSLeay licenses, the Free Software Foundation
grants you additional permission to convey the resulting work.
Corresponding Source for a non-source form of such a combination
shall include the source code for the parts of OpenSSL used as well
as that of the covered work. */
#include "config.h"
#include <stdio.h>
char *system_wgetrc = SYSTEM_WGETRC;
char *locale_dir = LOCALEDIR;
const char* (compiled_features[]) =
{
#ifdef ENABLE_DIGEST
"+digest",
#else
"-digest",
#endif
#ifdef ENABLE_IPV6
"+ipv6",
#else
"-ipv6",
#endif
#ifdef ENABLE_NLS
"+nls",
#else
"-nls",
#endif
#ifdef ENABLE_NTLM
"+ntlm",
#else
"-ntlm",
#endif
#ifdef ENABLE_OPIE
"+opie",
#else
"-opie",
#endif
#ifdef HAVE_MD5
#ifdef HAVE_BUILTIN_MD5
"+md5/builtin",
#elif HAVE_OPENSSL_MD5
"+md5/openssl",
#elif HAVE_SOLARIS_MD5
"+md5/solaris",
#else
#error "md5 set, but no library found!",
#endif
#else
"-md5",
#endif
#ifdef HAVE_LIBGNUTLS
"+gnutls",
#else
"-gnutls",
#endif
#ifdef HAVE_LIBSSL
"+ssl",
#else
"-ssl",
#endif
#ifdef HAVE_GETTEXT
"+gettext",
#else
"-gettext",
#endif
/* sentinel value */
NULL
};

View File

@ -380,19 +380,14 @@ home_dir (void)
return home ? xstrdup (home) : NULL; return home ? xstrdup (home) : NULL;
} }
/* Return the path to the user's .wgetrc. This is either the value of /* Check the 'WGETRC' environment variable and return the file name
`WGETRC' environment variable, or `$HOME/.wgetrc'. if 'WGETRC' is set and is a valid file.
If the `WGETRC' variable exists but the file does not exist, the If the `WGETRC' variable exists but the file does not exist, the
function will exit(). */ function will exit(). */
static char * char *
wgetrc_file_name (void) wgetrc_env_file_name (void)
{ {
char *env, *home; char *env = getenv ("WGETRC");
char *file = NULL;
/* Try the environment. */
env = getenv ("WGETRC");
if (env && *env) if (env && *env)
{ {
if (!file_exists_p (env)) if (!file_exists_p (env))
@ -403,12 +398,40 @@ wgetrc_file_name (void)
} }
return xstrdup (env); return xstrdup (env);
} }
return NULL;
/* If that failed, try $HOME/.wgetrc. */ }
home = home_dir (); /* Check for the existance of '$HOME/.wgetrc' and return it's path
if it exists and is set. */
char *
wgetrc_user_file_name (void)
{
char *home = home_dir();
char *file = NULL;
if (home) if (home)
file = aprintf ("%s/.wgetrc", home); file = aprintf ("%s/.wgetrc", home);
xfree_null (home); xfree_null (home);
if (!file)
return NULL;
if (!file_exists_p (file))
{
xfree (file);
return NULL;
}
return file;
}
/* Return the path to the user's .wgetrc. This is either the value of
`WGETRC' environment variable, or `$HOME/.wgetrc'.
Additionally, for windows, look in the directory where wget.exe
resides. */
char *
wgetrc_file_name (void)
{
char *file = wgetrc_env_file_name ();
if (file && *file)
return file;
file = wgetrc_user_file_name ();
#ifdef WINDOWS #ifdef WINDOWS
/* Under Windows, if we still haven't found .wgetrc, look for the file /* Under Windows, if we still haven't found .wgetrc, look for the file
@ -549,7 +572,7 @@ initialize (void)
xfree (file); xfree (file);
return; return;
} }
/* Remove dashes and underscores from S, modifying S in the /* Remove dashes and underscores from S, modifying S in the
process. */ process. */

View File

@ -31,6 +31,9 @@ as that of the covered work. */
#ifndef INIT_H #ifndef INIT_H
#define INIT_H #define INIT_H
char *wgetrc_env_file_name (void);
char *wgetrc_user_file_name (void);
char *wgetrc_file_name (void);
void initialize (void); void initialize (void);
void run_command (const char *); void run_command (const char *);
void setoptval (const char *, const char *, const char *); void setoptval (const char *, const char *, const char *);

View File

@ -68,7 +68,17 @@ as that of the covered work. */
struct options opt; struct options opt;
/* defined in version.c */
extern char *version_string; extern char *version_string;
extern char *compilation_string;
extern char *system_getrc;
extern char *link_string;
/* defined in build_info.c */
extern char *compiled_features[];
extern char *system_wgetrc;
extern char *locale_dir;
/* Used for --version output in print_version */
static const int max_chars_per_line = 72;
#if defined(SIGHUP) || defined(SIGUSR1) #if defined(SIGHUP) || defined(SIGUSR1)
static void redirect_output_signal (int); static void redirect_output_signal (int);
@ -700,10 +710,111 @@ prompt_for_password (void)
return getpass(""); return getpass("");
} }
/* Function that prints the line argument while limiting it
to at most line_length. prefix is printed on the first line
and an appropriate number of spaces are added on subsequent
lines.*/
static void
format_and_print_line (char* prefix, char* line,
int line_length)
{
assert (prefix != NULL);
assert (line != NULL);
if (line_length <= 0)
line_length = max_chars_per_line;
const int leading_spaces = strlen (prefix);
printf ("%s", prefix);
int remaining_chars = line_length - leading_spaces;
/* We break on spaces. */
char* token = strtok (line, " ");
while (token != NULL)
{
/* If however a token is much larger than the maximum
line length, all bets are off and we simply print the
token on the next line. */
if (remaining_chars <= strlen (token))
{
printf ("\n");
int j = 0;
for (j = 0; j < leading_spaces; j++)
{
printf (" ");
}
remaining_chars = line_length - leading_spaces;
}
printf ("%s ", token);
remaining_chars -= strlen (token) + 1; // account for " "
token = strtok (NULL, " ");
}
printf ("\n");
xfree (prefix);
xfree (line);
}
static void static void
print_version (void) print_version (void)
{ {
printf ("GNU Wget %s\n\n", version_string); const char *options_title = "Options : ";
const char *wgetrc_title = "Wgetrc : ";
const char *locale_title = "Locale : ";
const char *compile_title = "Compile : ";
const char *link_title = "Link : ";
const char *prefix_spaces = " ";
const int prefix_space_length = strlen (prefix_spaces);
printf ("GNU Wget %s\n", version_string);
printf (options_title);
/* compiled_features is a char*[]. We limit the characters per
line to max_chars_per_line and prefix each line with a constant
number of spaces for proper alignment. */
int i =0;
for (i = 0; compiled_features[i] != NULL; )
{
int line_length = max_chars_per_line - prefix_space_length;
while ((line_length > 0) && (compiled_features[i] != NULL))
{
printf ("%s ", compiled_features[i]);
line_length -= strlen (compiled_features[i]) + 2;
i++;
}
printf ("\n");
if (compiled_features[i] != NULL)
{
printf (prefix_spaces);
}
}
/* Handle the case when $WGETRC is unset and $HOME/.wgetrc is
absent. */
printf (wgetrc_title);
char *env_wgetrc = wgetrc_env_file_name ();
if (env_wgetrc && *env_wgetrc)
{
printf ("%s (env)\n%s", env_wgetrc, prefix_spaces);
xfree (env_wgetrc);
}
char *user_wgetrc = wgetrc_user_file_name ();
if (user_wgetrc)
{
printf ("%s (user)\n%s", user_wgetrc, prefix_spaces);
xfree (user_wgetrc);
}
printf ("%s (system)\n", system_wgetrc);
format_and_print_line (strdup (locale_title),
strdup (locale_dir),
max_chars_per_line);
format_and_print_line (strdup (compile_title),
strdup (compilation_string),
max_chars_per_line);
format_and_print_line (strdup (link_title),
strdup (link_string),
max_chars_per_line);
printf ("\n");
/* TRANSLATORS: When available, an actual copyright character /* TRANSLATORS: When available, an actual copyright character
(cirle-c) should be used in preference to "(C)". */ (cirle-c) should be used in preference to "(C)". */
fputs (_("\ fputs (_("\
@ -721,7 +832,6 @@ There is NO WARRANTY, to the extent permitted by law.\n"), stdout);
stdout); stdout);
exit (0); exit (0);
} }
int int
main (int argc, char **argv) main (int argc, char **argv)

View File

@ -1,3 +1,41 @@
2008-06-12 Micah Cowan <micah@cowan.name>
* FTPServer.pm, FTPTest.pm, HTTPServer.pm, HTTPTest.pm,
Test--no-content-disposition-trivial.px,
Test--no-content-disposition.px, Test--spider-fail.px,
Test--spider-r--no-content-disposition-trivial.px,
Test--spider-r--no-content-disposition.px,
Test--spider-r-HTTP-Content-Disposition.px, Test--spider-r.px,
Test--spider.px, Test-E-k-K.px, Test-E-k.px,
Test-HTTP-Content-Disposition-1.px,
Test-HTTP-Content-Disposition-2.px,
Test-HTTP-Content-Disposition.px,
Test-N--no-content-disposition-trivial.px,
Test-N--no-content-disposition.px,
Test-N-HTTP-Content-Disposition.px, Test-N-current.px,
Test-N-no-info.px, Test-N-old.px, Test-N-smaller.px, Test-N.px,
Test-O--no-content-disposition-trivial.px,
Test-O--no-content-disposition.px,
Test-O-HTTP-Content-Disposition.px, Test-O-nonexisting.px,
Test-O.px, Test-Restrict-Lowercase.px,
Test-Restrict-Uppercase.px, Test-auth-basic.px, Test-c-full.px,
Test-c-partial.px, Test-c.px, Test-ftp.px,
Test-nonexisting-quiet.px, Test-noop.px, Test-np.px,
Test-proxied-https-auth.px, Test-proxy-auth-basic.px,
WgetTest.pm.in: Use whatever ports are available, rather than
hard-coded ones.
* run-px: More summary info, explicit exit code.
* Makefile.am: Reinstate "run-px-tests" as a dependency for the
"check" target.
* WgetTest.pm.in: Draw more attention to the fact that
WgetTest.pm is a generated file.
* Test-proxied-https-auth.px: Better cleanup, so next test can
open the port.
2008-05-31 Micah Cowan <micah@cowan.name> 2008-05-31 Micah Cowan <micah@cowan.name>
* Test-N-current.px: Ensure we catch failures. * Test-N-current.px: Ensure we catch failures.

View File

@ -748,7 +748,7 @@ sub __wildcard_to_regex
{ {
my %_attr_data = ( # DEFAULT my %_attr_data = ( # DEFAULT
_localAddr => 'localhost', _localAddr => 'localhost',
_localPort => 8021, _localPort => undef,
_reuseAddr => 1, _reuseAddr => 1,
_rootDir => Cwd::getcwd(), _rootDir => Cwd::getcwd(),
); );
@ -781,6 +781,16 @@ sub new {
$self->{$attrname} = $self->_default_for($attrname); $self->{$attrname} = $self->_default_for($attrname);
} }
} }
# create server socket
"0" =~ /(0)/; # Perl 5.7 / IO::Socket::INET bug workaround.
$self->{_server_sock}
= IO::Socket::INET->new (LocalHost => $self->{_localAddr},
LocalPort => $self->{_localPort},
Listen => 1,
Reuse => $self->{_reuseAddr},
Proto => 'tcp',
Type => SOCK_STREAM)
or die "bind: $!";
return $self; return $self;
} }
@ -803,21 +813,13 @@ sub run
my $old_ils = $/; my $old_ils = $/;
$/ = "\r\n"; $/ = "\r\n";
# create server socket
"0" =~ /(0)/; # Perl 5.7 / IO::Socket::INET bug workaround.
my $server_sock = IO::Socket::INET->new (LocalHost => $self->{_localAddr},
LocalPort => $self->{_localPort},
Listen => 1,
Reuse => $self->{_reuseAddr},
Proto => 'tcp',
Type => SOCK_STREAM) or die "bind: $!";
if (!$initialized) { if (!$initialized) {
$synch_callback->(); $synch_callback->();
$initialized = 1; $initialized = 1;
} }
$SIG{CHLD} = sub { wait }; $SIG{CHLD} = sub { wait };
my $server_sock = $self->{_server_sock};
# the accept loop # the accept loop
while (my $client_addr = accept (my $socket, $server_sock)) while (my $client_addr = accept (my $socket, $server_sock))
@ -929,6 +931,11 @@ sub run
$/ = $old_ils; $/ = $old_ils;
} }
sub sockport {
my $self = shift;
return $self->{_server_sock}->sockport;
}
1; 1;
# vim: et ts=4 sw=4 # vim: et ts=4 sw=4

View File

@ -44,18 +44,24 @@ sub _setup_server {
close (FILE); close (FILE);
} }
$self->{_server} = FTPServer->new (LocalAddr => 'localhost',
ReuseAddr => 1,
rootDir => "$self->{_workdir}/$self->{_name}/input") or die "Cannot create server!!!";
} }
sub _launch_server { sub _launch_server {
my $self = shift; my $self = shift;
my $synch_func = shift; my $synch_func = shift;
$self->{_server}->run ($synch_func);
}
my $server = FTPServer->new (LocalAddr => 'localhost', sub _substitute_port {
LocalPort => '8021', my $self = shift;
ReuseAddr => 1, my $ret = shift;
rootDir => "$self->{_workdir}/$self->{_name}/input") or die "Cannot create server!!!"; $ret =~ s/{{port}}/$self->{_server}->sockport/eg;
$server->run ($synch_func); return $ret;
} }
1; 1;

View File

@ -120,6 +120,7 @@ sub send_response {
next; next;
} }
# fill in content # fill in content
$content = $self->_substitute_port($content);
$resp->content($content); $resp->content($content);
print STDERR "HTTP::Response with content: \n", $resp->as_string if $log; print STDERR "HTTP::Response with content: \n", $resp->as_string if $log;
} }
@ -207,6 +208,13 @@ sub verify_auth_basic {
} }
} }
sub _substitute_port {
my $self = shift;
my $ret = shift;
$ret =~ s/{{port}}/$self->sockport/eg;
return $ret;
}
1; 1;
# vim: et ts=4 sw=4 # vim: et ts=4 sw=4

View File

@ -30,17 +30,26 @@ my $VERSION = 0.01;
} }
sub _setup_server {} sub _setup_server {
my $self = shift;
$self->{_server} = HTTPServer->new (LocalAddr => 'localhost',
ReuseAddr => 1)
or die "Cannot create server!!!";
}
sub _launch_server { sub _launch_server {
my $self = shift; my $self = shift;
my $synch_func = shift; my $synch_func = shift;
my $server = HTTPServer->new (LocalAddr => 'localhost', $self->{_server}->run ($self->{_input}, $synch_func);
LocalPort => '8080', }
ReuseAddr => 1) or die "Cannot create server!!!";
$server->run ($self->{_input}, $synch_func); sub _substitute_port {
my $self = shift;
my $ret = shift;
$ret =~ s/{{port}}/$self->{_server}->sockport/eg;
return $ret;
} }
1; 1;

View File

@ -37,7 +37,7 @@ PERLRUN = $(PERL) -I$(srcdir)
check-local: test check-local: test
test: ../src/wget$(EXEEXT) run-unit-tests #run-px-tests test: ../src/wget$(EXEEXT) run-unit-tests run-px-tests
../src/wget$(EXEEXT): ../src/wget$(EXEEXT):
cd ../src && $(MAKE) $(AM_MAKEFLAGS) cd ../src && $(MAKE) $(AM_MAKEFLAGS)

View File

@ -32,7 +32,7 @@ my %urls = (
}, },
); );
my $cmdline = $WgetTest::WGETPATH . " --no-content-disposition http://localhost:8080/dummy.html"; my $cmdline = $WgetTest::WGETPATH . " --no-content-disposition http://localhost:{{port}}/dummy.html";
my $expected_error_code = 0; my $expected_error_code = 0;

View File

@ -33,7 +33,7 @@ my %urls = (
}, },
); );
my $cmdline = $WgetTest::WGETPATH . " --no-content-disposition http://localhost:8080/dummy.html"; my $cmdline = $WgetTest::WGETPATH . " --no-content-disposition http://localhost:{{port}}/dummy.html";
my $expected_error_code = 0; my $expected_error_code = 0;

View File

@ -32,7 +32,7 @@ my %urls = (
}, },
); );
my $cmdline = $WgetTest::WGETPATH . " --spider http://localhost:8080/nonexistent"; my $cmdline = $WgetTest::WGETPATH . " --spider http://localhost:{{port}}/nonexistent";
my $expected_error_code = 256; my $expected_error_code = 256;

View File

@ -14,8 +14,8 @@ my $mainpage = <<EOF;
</head> </head>
<body> <body>
<p> <p>
Some text and a link to a <a href="http://localhost:8080/secondpage.html">second page</a>. Some text and a link to a <a href="http://localhost:{{port}}/secondpage.html">second page</a>.
Also, a <a href="http://localhost:8080/nonexistent">broken link</a>. Also, a <a href="http://localhost:{{port}}/nonexistent">broken link</a>.
</p> </p>
</body> </body>
</html> </html>
@ -28,8 +28,8 @@ my $secondpage = <<EOF;
</head> </head>
<body> <body>
<p> <p>
Some text and a link to a <a href="http://localhost:8080/thirdpage.html">third page</a>. Some text and a link to a <a href="http://localhost:{{port}}/thirdpage.html">third page</a>.
Also, a <a href="http://localhost:8080/nonexistent">broken link</a>. Also, a <a href="http://localhost:{{port}}/nonexistent">broken link</a>.
</p> </p>
</body> </body>
</html> </html>
@ -42,8 +42,8 @@ my $thirdpage = <<EOF;
</head> </head>
<body> <body>
<p> <p>
Some text and a link to a <a href="http://localhost:8080/dummy.txt">text file</a>. Some text and a link to a <a href="http://localhost:{{port}}/dummy.txt">text file</a>.
Also, another <a href="http://localhost:8080/againnonexistent">broken link</a>. Also, another <a href="http://localhost:{{port}}/againnonexistent">broken link</a>.
</p> </p>
</body> </body>
</html> </html>
@ -89,7 +89,7 @@ my %urls = (
}, },
); );
my $cmdline = $WgetTest::WGETPATH . " --spider -r --no-content-disposition http://localhost:8080/"; my $cmdline = $WgetTest::WGETPATH . " --spider -r --no-content-disposition http://localhost:{{port}}/";
my $expected_error_code = 0; my $expected_error_code = 0;

View File

@ -14,8 +14,8 @@ my $mainpage = <<EOF;
</head> </head>
<body> <body>
<p> <p>
Some text and a link to a <a href="http://localhost:8080/secondpage.html">second page</a>. Some text and a link to a <a href="http://localhost:{{port}}/secondpage.html">second page</a>.
Also, a <a href="http://localhost:8080/nonexistent">broken link</a>. Also, a <a href="http://localhost:{{port}}/nonexistent">broken link</a>.
</p> </p>
</body> </body>
</html> </html>
@ -28,8 +28,8 @@ my $secondpage = <<EOF;
</head> </head>
<body> <body>
<p> <p>
Some text and a link to a <a href="http://localhost:8080/thirdpage.html">third page</a>. Some text and a link to a <a href="http://localhost:{{port}}/thirdpage.html">third page</a>.
Also, a <a href="http://localhost:8080/nonexistent">broken link</a>. Also, a <a href="http://localhost:{{port}}/nonexistent">broken link</a>.
</p> </p>
</body> </body>
</html> </html>
@ -42,8 +42,8 @@ my $thirdpage = <<EOF;
</head> </head>
<body> <body>
<p> <p>
Some text and a link to a <a href="http://localhost:8080/dummy.txt">text file</a>. Some text and a link to a <a href="http://localhost:{{port}}/dummy.txt">text file</a>.
Also, another <a href="http://localhost:8080/againnonexistent">broken link</a>. Also, another <a href="http://localhost:{{port}}/againnonexistent">broken link</a>.
</p> </p>
</body> </body>
</html> </html>
@ -90,7 +90,7 @@ my %urls = (
}, },
); );
my $cmdline = $WgetTest::WGETPATH . " --spider -r --no-content-disposition http://localhost:8080/"; my $cmdline = $WgetTest::WGETPATH . " --spider -r --no-content-disposition http://localhost:{{port}}/";
my $expected_error_code = 0; my $expected_error_code = 0;

View File

@ -14,8 +14,8 @@ my $mainpage = <<EOF;
</head> </head>
<body> <body>
<p> <p>
Some text and a link to a <a href="http://localhost:8080/secondpage.html">second page</a>. Some text and a link to a <a href="http://localhost:{{port}}/secondpage.html">second page</a>.
Also, a <a href="http://localhost:8080/nonexistent">broken link</a>. Also, a <a href="http://localhost:{{port}}/nonexistent">broken link</a>.
</p> </p>
</body> </body>
</html> </html>
@ -28,8 +28,8 @@ my $secondpage = <<EOF;
</head> </head>
<body> <body>
<p> <p>
Some text and a link to a <a href="http://localhost:8080/thirdpage.html">third page</a>. Some text and a link to a <a href="http://localhost:{{port}}/thirdpage.html">third page</a>.
Also, a <a href="http://localhost:8080/nonexistent">broken link</a>. Also, a <a href="http://localhost:{{port}}/nonexistent">broken link</a>.
</p> </p>
</body> </body>
</html> </html>
@ -42,8 +42,8 @@ my $thirdpage = <<EOF;
</head> </head>
<body> <body>
<p> <p>
Some text and a link to a <a href="http://localhost:8080/dummy.txt">text file</a>. Some text and a link to a <a href="http://localhost:{{port}}/dummy.txt">text file</a>.
Also, another <a href="http://localhost:8080/againnonexistent">broken link</a>. Also, another <a href="http://localhost:{{port}}/againnonexistent">broken link</a>.
</p> </p>
</body> </body>
</html> </html>
@ -90,7 +90,7 @@ my %urls = (
}, },
); );
my $cmdline = $WgetTest::WGETPATH . " --spider -r http://localhost:8080/"; my $cmdline = $WgetTest::WGETPATH . " --spider -r http://localhost:{{port}}/";
my $expected_error_code = 0; my $expected_error_code = 0;

View File

@ -14,8 +14,8 @@ my $mainpage = <<EOF;
</head> </head>
<body> <body>
<p> <p>
Some text and a link to a <a href="http://localhost:8080/secondpage.html">second page</a>. Some text and a link to a <a href="http://localhost:{{port}}/secondpage.html">second page</a>.
Also, a <a href="http://localhost:8080/nonexistent">broken link</a>. Also, a <a href="http://localhost:{{port}}/nonexistent">broken link</a>.
</p> </p>
</body> </body>
</html> </html>
@ -28,8 +28,8 @@ my $secondpage = <<EOF;
</head> </head>
<body> <body>
<p> <p>
Some text and a link to a <a href="http://localhost:8080/thirdpage.html">third page</a>. Some text and a link to a <a href="http://localhost:{{port}}/thirdpage.html">third page</a>.
Also, a <a href="http://localhost:8080/nonexistent">broken link</a>. Also, a <a href="http://localhost:{{port}}/nonexistent">broken link</a>.
</p> </p>
</body> </body>
</html> </html>
@ -42,8 +42,8 @@ my $thirdpage = <<EOF;
</head> </head>
<body> <body>
<p> <p>
Some text and a link to a <a href="http://localhost:8080/dummy.txt">text file</a>. Some text and a link to a <a href="http://localhost:{{port}}/dummy.txt">text file</a>.
Also, another <a href="http://localhost:8080/againnonexistent">broken link</a>. Also, another <a href="http://localhost:{{port}}/againnonexistent">broken link</a>.
</p> </p>
</body> </body>
</html> </html>
@ -89,7 +89,7 @@ my %urls = (
}, },
); );
my $cmdline = $WgetTest::WGETPATH . " --spider -r http://localhost:8080/"; my $cmdline = $WgetTest::WGETPATH . " --spider -r http://localhost:{{port}}/";
my $expected_error_code = 0; my $expected_error_code = 0;

View File

@ -32,7 +32,7 @@ my %urls = (
}, },
); );
my $cmdline = $WgetTest::WGETPATH . " --spider http://localhost:8080/index.html"; my $cmdline = $WgetTest::WGETPATH . " --spider http://localhost:{{port}}/index.html";
my $expected_error_code = 0; my $expected_error_code = 0;

View File

@ -13,7 +13,7 @@ my $mainpage = <<EOF;
<title>Main Page Title</title> <title>Main Page Title</title>
</head> </head>
<body> <body>
<a href="http://localhost:8080/subpage.php">Secondary Page</a> <a href="http://localhost:{{port}}/subpage.php">Secondary Page</a>
</body> </body>
</html> </html>
EOF EOF
@ -60,7 +60,7 @@ my %urls = (
}, },
); );
my $cmdline = $WgetTest::WGETPATH . " -d -r -nd -E -k -K http://localhost:8080/index.php"; my $cmdline = $WgetTest::WGETPATH . " -d -r -nd -E -k -K http://localhost:{{port}}/index.php";
my $expected_error_code = 0; my $expected_error_code = 0;

View File

@ -13,7 +13,7 @@ my $mainpage = <<EOF;
<title>Main Page Title</title> <title>Main Page Title</title>
</head> </head>
<body> <body>
<a href="http://localhost:8080/subpage.php">Secondary Page</a> <a href="http://localhost:{{port}}/subpage.php">Secondary Page</a>
</body> </body>
</html> </html>
EOF EOF
@ -60,7 +60,7 @@ my %urls = (
}, },
); );
my $cmdline = $WgetTest::WGETPATH . " -r -nd -E -k http://localhost:8080/index.php"; my $cmdline = $WgetTest::WGETPATH . " -r -nd -E -k http://localhost:{{port}}/index.php";
my $expected_error_code = 0; my $expected_error_code = 0;

View File

@ -37,7 +37,7 @@ my %urls = (
}, },
); );
my $cmdline = $WgetTest::WGETPATH . " -e contentdisposition=on http://localhost:8080/dummy.html"; my $cmdline = $WgetTest::WGETPATH . " -e contentdisposition=on http://localhost:{{port}}/dummy.html";
my $expected_error_code = 0; my $expected_error_code = 0;

View File

@ -37,7 +37,7 @@ my %urls = (
}, },
); );
my $cmdline = $WgetTest::WGETPATH . " --no-content-disposition http://localhost:8080/dummy.html"; my $cmdline = $WgetTest::WGETPATH . " --no-content-disposition http://localhost:{{port}}/dummy.html";
my $expected_error_code = 0; my $expected_error_code = 0;

View File

@ -33,7 +33,7 @@ my %urls = (
}, },
); );
my $cmdline = $WgetTest::WGETPATH . " -e contentdisposition=on http://localhost:8080/dummy.html"; my $cmdline = $WgetTest::WGETPATH . " -e contentdisposition=on http://localhost:{{port}}/dummy.html";
my $expected_error_code = 0; my $expected_error_code = 0;

View File

@ -24,7 +24,7 @@ my %urls = (
}, },
); );
my $cmdline = $WgetTest::WGETPATH . " -N --no-content-disposition http://localhost:8080/dummy.txt"; my $cmdline = $WgetTest::WGETPATH . " -N --no-content-disposition http://localhost:{{port}}/dummy.txt";
my $expected_error_code = 0; my $expected_error_code = 0;

View File

@ -25,7 +25,7 @@ my %urls = (
}, },
); );
my $cmdline = $WgetTest::WGETPATH . " -N --no-content-disposition http://localhost:8080/dummy.txt"; my $cmdline = $WgetTest::WGETPATH . " -N --no-content-disposition http://localhost:{{port}}/dummy.txt";
my $expected_error_code = 0; my $expected_error_code = 0;

View File

@ -26,7 +26,7 @@ my %urls = (
); );
my $cmdline = $WgetTest::WGETPATH . " -N --content-disposition " my $cmdline = $WgetTest::WGETPATH . " -N --content-disposition "
. "http://localhost:8080/dummy.txt"; . "http://localhost:{{port}}/dummy.txt";
my $expected_error_code = 0; my $expected_error_code = 0;

View File

@ -33,7 +33,7 @@ my %urls = (
}, },
); );
my $cmdline = $WgetTest::WGETPATH . " -N http://localhost:8080/somefile.txt"; my $cmdline = $WgetTest::WGETPATH . " -N http://localhost:{{port}}/somefile.txt";
my $expected_error_code = 0; my $expected_error_code = 0;

View File

@ -32,7 +32,7 @@ my %urls = (
}, },
); );
my $cmdline = $WgetTest::WGETPATH . " -N http://localhost:8080/somefile.txt"; my $cmdline = $WgetTest::WGETPATH . " -N http://localhost:{{port}}/somefile.txt";
my $expected_error_code = 0; my $expected_error_code = 0;

View File

@ -31,7 +31,7 @@ my %urls = (
}, },
); );
my $cmdline = $WgetTest::WGETPATH . " -N http://localhost:8080/somefile.txt"; my $cmdline = $WgetTest::WGETPATH . " -N http://localhost:{{port}}/somefile.txt";
my $expected_error_code = 0; my $expected_error_code = 0;

View File

@ -34,7 +34,7 @@ my %urls = (
}, },
); );
my $cmdline = $WgetTest::WGETPATH . " -N http://localhost:8080/somefile.txt"; my $cmdline = $WgetTest::WGETPATH . " -N http://localhost:{{port}}/somefile.txt";
my $expected_error_code = 0; my $expected_error_code = 0;

View File

@ -24,7 +24,7 @@ my %urls = (
}, },
); );
my $cmdline = $WgetTest::WGETPATH . " -N http://localhost:8080/dummy.txt"; my $cmdline = $WgetTest::WGETPATH . " -N http://localhost:{{port}}/dummy.txt";
my $expected_error_code = 0; my $expected_error_code = 0;

View File

@ -23,7 +23,7 @@ my %urls = (
}, },
); );
my $cmdline = $WgetTest::WGETPATH . " -O out --no-content-disposition http://localhost:8080/dummy.txt"; my $cmdline = $WgetTest::WGETPATH . " -O out --no-content-disposition http://localhost:{{port}}/dummy.txt";
my $expected_error_code = 0; my $expected_error_code = 0;

View File

@ -24,7 +24,7 @@ my %urls = (
}, },
); );
my $cmdline = $WgetTest::WGETPATH . " -O out --no-content-disposition http://localhost:8080/dummy.txt"; my $cmdline = $WgetTest::WGETPATH . " -O out --no-content-disposition http://localhost:{{port}}/dummy.txt";
my $expected_error_code = 0; my $expected_error_code = 0;

View File

@ -24,7 +24,7 @@ my %urls = (
}, },
); );
my $cmdline = $WgetTest::WGETPATH . " -O out http://localhost:8080/dummy.txt"; my $cmdline = $WgetTest::WGETPATH . " -O out http://localhost:{{port}}/dummy.txt";
my $expected_error_code = 0; my $expected_error_code = 0;

View File

@ -23,7 +23,7 @@ my %urls = (
}, },
); );
my $cmdline = $WgetTest::WGETPATH . " --quiet -O out http://localhost:8080/nonexistent"; my $cmdline = $WgetTest::WGETPATH . " --quiet -O out http://localhost:{{port}}/nonexistent";
my $expected_error_code = 256; my $expected_error_code = 256;

View File

@ -23,7 +23,7 @@ my %urls = (
}, },
); );
my $cmdline = $WgetTest::WGETPATH . " -O out http://localhost:8080/dummy.txt"; my $cmdline = $WgetTest::WGETPATH . " -O out http://localhost:{{port}}/dummy.txt";
my $expected_error_code = 0; my $expected_error_code = 0;

View File

@ -32,7 +32,7 @@ my %urls = (
}, },
); );
my $cmdline = $WgetTest::WGETPATH . " --restrict-file-names=lowercase http://localhost:8080/SomePage.html"; my $cmdline = $WgetTest::WGETPATH . " --restrict-file-names=lowercase http://localhost:{{port}}/SomePage.html";
my $expected_error_code = 0; my $expected_error_code = 0;

View File

@ -32,7 +32,7 @@ my %urls = (
}, },
); );
my $cmdline = $WgetTest::WGETPATH . " --restrict-file-names=uppercase http://localhost:8080/SomePage.html"; my $cmdline = $WgetTest::WGETPATH . " --restrict-file-names=uppercase http://localhost:{{port}}/SomePage.html";
my $expected_error_code = 0; my $expected_error_code = 0;

View File

@ -25,7 +25,7 @@ my %urls = (
); );
my $cmdline = $WgetTest::WGETPATH . " --user=fiddle-dee-dee --password=Dodgson" my $cmdline = $WgetTest::WGETPATH . " --user=fiddle-dee-dee --password=Dodgson"
. " http://localhost:8080/needs-auth.txt"; . " http://localhost:{{port}}/needs-auth.txt";
my $expected_error_code = 0; my $expected_error_code = 0;

View File

@ -27,7 +27,7 @@ my %urls = (
}, },
); );
my $cmdline = $WgetTest::WGETPATH . " -c http://localhost:8080/somefile.txt"; my $cmdline = $WgetTest::WGETPATH . " -c http://localhost:{{port}}/somefile.txt";
my $expected_error_code = 0; my $expected_error_code = 0;

View File

@ -37,7 +37,7 @@ my %urls = (
}, },
); );
my $cmdline = $WgetTest::WGETPATH . " -c http://localhost:8080/somefile.txt"; my $cmdline = $WgetTest::WGETPATH . " -c http://localhost:{{port}}/somefile.txt";
my $expected_error_code = 0; my $expected_error_code = 0;

View File

@ -27,7 +27,7 @@ my %urls = (
}, },
); );
my $cmdline = $WgetTest::WGETPATH . " -c http://localhost:8080/somefile.txt"; my $cmdline = $WgetTest::WGETPATH . " -c http://localhost:{{port}}/somefile.txt";
my $expected_error_code = 0; my $expected_error_code = 0;

View File

@ -21,7 +21,7 @@ my %urls = (
}, },
); );
my $cmdline = $WgetTest::WGETPATH . " -S ftp://localhost:8021/afile.txt"; my $cmdline = $WgetTest::WGETPATH . " -S ftp://localhost:{{port}}/afile.txt";
my $expected_error_code = 0; my $expected_error_code = 0;

View File

@ -23,7 +23,7 @@ my %urls = (
}, },
); );
my $cmdline = $WgetTest::WGETPATH . " --quiet http://localhost:8080/nonexistent"; my $cmdline = $WgetTest::WGETPATH . " --quiet http://localhost:{{port}}/nonexistent";
my $expected_error_code = 256; my $expected_error_code = 256;

View File

@ -33,7 +33,7 @@ my %urls = (
}, },
); );
my $cmdline = $WgetTest::WGETPATH . " http://localhost:8080/"; my $cmdline = $WgetTest::WGETPATH . " http://localhost:{{port}}/";
my $expected_error_code = 0; my $expected_error_code = 0;

View File

@ -14,7 +14,7 @@ my $mainpage = <<EOF;
</head> </head>
<body> <body>
<p> <p>
Some text and a link to a <a href="http://localhost:8080/firstlevel/secondpage.html">second page</a>. Some text and a link to a <a href="http://localhost:{{port}}/firstlevel/secondpage.html">second page</a>.
</p> </p>
</body> </body>
</html> </html>
@ -27,7 +27,7 @@ my $secondpage = <<EOF;
</head> </head>
<body> <body>
<p> <p>
Some text and a link to a <a href="http://localhost:8080/firstlevel/lowerlevel/thirdpage.html">third page</a>. Some text and a link to a <a href="http://localhost:{{port}}/firstlevel/lowerlevel/thirdpage.html">third page</a>.
</p> </p>
</body> </body>
</html> </html>
@ -40,7 +40,7 @@ my $thirdpage = <<EOF;
</head> </head>
<body> <body>
<p> <p>
Some text and a link to a <a href="http://localhost:8080/higherlevelpage.html">higher level page</a>. Some text and a link to a <a href="http://localhost:{{port}}/higherlevelpage.html">higher level page</a>.
</p> </p>
</body> </body>
</html> </html>
@ -69,7 +69,7 @@ my $higherlevelpage = <<EOF;
<p> <p>
This page is on a higher level in the URL path hierarchy. Therefore, it This page is on a higher level in the URL path hierarchy. Therefore, it
should not be downloaded. Wget should not visit the following link to a should not be downloaded. Wget should not visit the following link to a
<a href="http://localhost:8080/firstlevel/fourthpage.html">fourth page</a>. <a href="http://localhost:{{port}}/firstlevel/fourthpage.html">fourth page</a>.
</p> </p>
</body> </body>
</html> </html>
@ -119,7 +119,7 @@ my %urls = (
}, },
); );
my $cmdline = $WgetTest::WGETPATH . " -np -nH -r http://localhost:8080/firstlevel/"; my $cmdline = $WgetTest::WGETPATH . " -np -nH -r http://localhost:{{port}}/firstlevel/";
my $expected_error_code = 0; my $expected_error_code = 0;

View File

@ -87,15 +87,16 @@ sub fork_server {
} }
system ('rm -f needs-auth.txt'); system ('rm -f needs-auth.txt');
&fork_server; my $pid = &fork_server;
sleep 1; sleep 1;
my $cmdline = $WgetTest::WGETPATH . " --user=fiddle-dee-dee" my $cmdline = $WgetTest::WGETPATH . " --user=fiddle-dee-dee"
. " --password=Dodgson -e https_proxy=localhost:8080" . " --password=Dodgson -e https_proxy=localhost:{{port}}"
. " --no-check-certificate" . " --no-check-certificate"
. " https://no.such.domain/needs-auth.txt"; . " https://no.such.domain/needs-auth.txt";
my $code = system($cmdline); my $code = system($cmdline);
warn "Got code: $code\n" if $code; warn "Got code: $code\n" if $code;
kill ('TERM', $pid);
exit $code; exit $code;

View File

@ -25,7 +25,7 @@ my %urls = (
); );
my $cmdline = $WgetTest::WGETPATH . " --debug --user=fiddle-dee-dee --password=Dodgson" my $cmdline = $WgetTest::WGETPATH . " --debug --user=fiddle-dee-dee --password=Dodgson"
. " -e http_proxy=localhost:8080 http://no.such.domain/needs-auth.txt"; . " -e http_proxy=localhost:{{port}} http://no.such.domain/needs-auth.txt";
my $expected_error_code = 0; my $expected_error_code = 0;

View File

@ -1,5 +1,9 @@
#!/usr/bin/perl -w #!/usr/bin/perl -w
# WARNING!
# WgetTest.pm is a generated file! Do not edit! Edit WgetTest.pm.in
# instead.
package WgetTest; package WgetTest;
$VERSION = 0.01; $VERSION = 0.01;
@ -78,11 +82,13 @@ sub run {
# Call wget # Call wget
chdir ("$self->{_workdir}/$self->{_name}/output"); chdir ("$self->{_workdir}/$self->{_name}/output");
# print "Calling $self->{_cmdline}\n"; my $cmdline = $self->{_cmdline};
$cmdline = $self->_substitute_port($cmdline);
print "Calling $cmdline\n";
my $errcode = my $errcode =
($self->{_cmdline} =~ m{^/.*}) ($cmdline =~ m{^/.*})
? system ($self->{_cmdline}) ? system ($cmdline)
: system ("$self->{_workdir}/../src/$self->{_cmdline}"); : system ("$self->{_workdir}/../src/$cmdline");
# Shutdown server # Shutdown server
# if we didn't explicitely kill the server, we would have to call # if we didn't explicitely kill the server, we would have to call
@ -166,7 +172,9 @@ sub _verify_download {
or return "Test failed: file $filename not downloaded\n"; or return "Test failed: file $filename not downloaded\n";
my $content = <FILE>; my $content = <FILE>;
$content eq $filedata->{'content'} my $expected_content = $filedata->{'content'};
$expected_content = $self->_substitute_port($expected_content);
$content eq $expected_content
or return "Test failed: wrong content for file $filename\n"; or return "Test failed: wrong content for file $filename\n";
if (exists($filedata->{'timestamp'})) { if (exists($filedata->{'timestamp'})) {

View File

@ -61,3 +61,10 @@ for (my $i=0; $i != @tests; ++$i) {
} }
print "$tests[$i]\n"; print "$tests[$i]\n";
} }
print "\n";
print scalar(@results) . " tests were run\n";
print scalar(grep $_ == 0, @results) . " PASS\n";
print scalar(grep $_ != 0, @results) . " FAIL\n";
exit scalar (grep $_ != 0, @results);