+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>
* wget.texi (Download Options): Change documentation to reflect
@url{http://news.gmane.org/gmane.comp.web.wget.patches}.
Finally, there is the @email{wget-notify@@addictivecode.org} mailing
-list. This is a non-discussion list that receives commit notifications
-from the source repository, and also bug report-change notifications.
-This is the highest-traffic list for Wget, and is recommended only for
-people who are seriously interested in ongoing Wget development.
-Subscription is through the @code{mailman} interface at
+list. This is a non-discussion list that receives bug report-change
+notifications from the bug-tracker. Unlike for the other mailing lists,
+subscription is through the @code{mailman} interface at
@url{http://addictivecode.org/mailman/listinfo/wget-notify}.
@node Internet Relay Chat
@cindex IRC
@cindex #wget
-While, at the time of this writing, there is very low activity, we do
-have a support channel set up via IRC at @code{irc.freenode.org},
-@code{#wget}. Come check it out!
+In addition to the mailinglists, we also have a support channel set up
+via IRC at @code{irc.freenode.org}, @code{#wget}. Come check it out!
@node Reporting Bugs
@section Reporting Bugs
+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>
* main.c [WINDOWS]: Reopen stdout in binary mode, when -O - is
LIBS = @LIBSSL@ @LIBGNUTLS@ @LIBINTL@ @LIBS@
bin_PROGRAMS = wget
-wget_SOURCES = cmpt.c connect.c convert.c cookies.c ftp.c ftp-basic.c \
- ftp-ls.c hash.c host.c html-parse.c html-url.c http.c \
- init.c log.c main.c netrc.c progress.c ptimer.c recur.c \
- res.c retr.c snprintf.c spider.c url.c \
- utils.c \
- connect.h convert.h cookies.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 \
- options.h progress.h ptimer.h recur.h res.h retr.h \
+wget_SOURCES = build_info.c cmpt.c connect.c convert.c cookies.c ftp.c \
+ ftp-basic.c ftp-ls.c hash.c host.c html-parse.c html-url.c \
+ http.c init.c log.c main.c netrc.c progress.c ptimer.c \
+ recur.c res.c retr.c snprintf.c spider.c url.c \
+ utils.c \
+ connect.h convert.h cookies.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 \
+ options.h progress.h ptimer.h recur.h res.h retr.h \
spider.h ssl.h sysdep.h url.h utils.h wget.h
nodist_wget_SOURCES = version.c
EXTRA_wget_SOURCES = mswindows.c
LDADD = $(LIBOBJS) ../lib/libgnu.a @MD5_LDADD@
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
- echo 'const char *version_string = "@VERSION@"' > $@
- -hg log -r . --template='" ({node|short})"\n' 2>/dev/null >> $@
+ echo '/* version.c */' > $@
+ 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 'char* compilation_string = "'$(COMPILE)'";' | $(ESCAPEQUOTE) >> $@
+ echo 'char* link_string = "'$(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) $(LIBS) $(wget_LDADD)'";' | $(ESCAPEQUOTE) >> $@
check_LIBRARIES = libunittest.a
libunittest_a_SOURCES = $(wget_SOURCES) test.c test.h
--- /dev/null
+/* 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
+};
+
+
return home ? xstrdup (home) : NULL;
}
-/* Return the path to the user's .wgetrc. This is either the value of
- `WGETRC' environment variable, or `$HOME/.wgetrc'.
-
+/* Check the 'WGETRC' environment variable and return the file name
+ if 'WGETRC' is set and is a valid file.
If the `WGETRC' variable exists but the file does not exist, the
function will exit(). */
-static char *
-wgetrc_file_name (void)
+char *
+wgetrc_env_file_name (void)
{
- char *env, *home;
- char *file = NULL;
-
- /* Try the environment. */
- env = getenv ("WGETRC");
+ char *env = getenv ("WGETRC");
if (env && *env)
{
if (!file_exists_p (env))
}
return xstrdup (env);
}
-
- /* If that failed, try $HOME/.wgetrc. */
- home = home_dir ();
+ return NULL;
+}
+/* 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)
file = aprintf ("%s/.wgetrc", 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
/* Under Windows, if we still haven't found .wgetrc, look for the file
xfree (file);
return;
}
-\f
+
/* Remove dashes and underscores from S, modifying S in the
process. */
#ifndef 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 run_command (const char *);
void setoptval (const char *, const char *, const char *);
struct options opt;
+/* defined in version.c */
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)
static void redirect_output_signal (int);
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
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
(cirle-c) should be used in preference to "(C)". */
fputs (_("\
stdout);
exit (0);
}
-\f
int
main (int argc, char **argv)
+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>
* Test-N-current.px: Ensure we catch failures.
{
my %_attr_data = ( # DEFAULT
_localAddr => 'localhost',
- _localPort => 8021,
+ _localPort => undef,
_reuseAddr => 1,
_rootDir => Cwd::getcwd(),
);
$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;
}
my $old_ils = $/;
$/ = "\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) {
$synch_callback->();
$initialized = 1;
}
$SIG{CHLD} = sub { wait };
+ my $server_sock = $self->{_server_sock};
# the accept loop
while (my $client_addr = accept (my $socket, $server_sock))
$/ = $old_ils;
}
+sub sockport {
+ my $self = shift;
+ return $self->{_server_sock}->sockport;
+}
+
1;
# vim: et ts=4 sw=4
close (FILE);
}
+
+ $self->{_server} = FTPServer->new (LocalAddr => 'localhost',
+ ReuseAddr => 1,
+ rootDir => "$self->{_workdir}/$self->{_name}/input") or die "Cannot create server!!!";
}
sub _launch_server {
my $self = shift;
my $synch_func = shift;
+ $self->{_server}->run ($synch_func);
+}
- my $server = FTPServer->new (LocalAddr => 'localhost',
- LocalPort => '8021',
- ReuseAddr => 1,
- rootDir => "$self->{_workdir}/$self->{_name}/input") or die "Cannot create server!!!";
- $server->run ($synch_func);
+sub _substitute_port {
+ my $self = shift;
+ my $ret = shift;
+ $ret =~ s/{{port}}/$self->{_server}->sockport/eg;
+ return $ret;
}
1;
next;
}
# fill in content
+ $content = $self->_substitute_port($content);
$resp->content($content);
print STDERR "HTTP::Response with content: \n", $resp->as_string if $log;
}
}
}
+sub _substitute_port {
+ my $self = shift;
+ my $ret = shift;
+ $ret =~ s/{{port}}/$self->sockport/eg;
+ return $ret;
+}
+
1;
# vim: et ts=4 sw=4
}
-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 {
my $self = shift;
my $synch_func = shift;
- my $server = HTTPServer->new (LocalAddr => 'localhost',
- LocalPort => '8080',
- ReuseAddr => 1) or die "Cannot create server!!!";
- $server->run ($self->{_input}, $synch_func);
+ $self->{_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;
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):
cd ../src && $(MAKE) $(AM_MAKEFLAGS)
},
);
-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 $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 $cmdline = $WgetTest::WGETPATH . " --spider http://localhost:8080/nonexistent";
+my $cmdline = $WgetTest::WGETPATH . " --spider http://localhost:{{port}}/nonexistent";
my $expected_error_code = 256;
</head>
<body>
<p>
- Some text and a link to a <a href="http://localhost:8080/secondpage.html">second page</a>.
- Also, a <a href="http://localhost:8080/nonexistent">broken link</a>.
+ Some text and a link to a <a href="http://localhost:{{port}}/secondpage.html">second page</a>.
+ Also, a <a href="http://localhost:{{port}}/nonexistent">broken link</a>.
</p>
</body>
</html>
</head>
<body>
<p>
- Some text and a link to a <a href="http://localhost:8080/thirdpage.html">third page</a>.
- Also, a <a href="http://localhost:8080/nonexistent">broken link</a>.
+ Some text and a link to a <a href="http://localhost:{{port}}/thirdpage.html">third page</a>.
+ Also, a <a href="http://localhost:{{port}}/nonexistent">broken link</a>.
</p>
</body>
</html>
</head>
<body>
<p>
- Some text and a link to a <a href="http://localhost:8080/dummy.txt">text file</a>.
- Also, another <a href="http://localhost:8080/againnonexistent">broken link</a>.
+ Some text and a link to a <a href="http://localhost:{{port}}/dummy.txt">text file</a>.
+ Also, another <a href="http://localhost:{{port}}/againnonexistent">broken link</a>.
</p>
</body>
</html>
},
);
-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;
</head>
<body>
<p>
- Some text and a link to a <a href="http://localhost:8080/secondpage.html">second page</a>.
- Also, a <a href="http://localhost:8080/nonexistent">broken link</a>.
+ Some text and a link to a <a href="http://localhost:{{port}}/secondpage.html">second page</a>.
+ Also, a <a href="http://localhost:{{port}}/nonexistent">broken link</a>.
</p>
</body>
</html>
</head>
<body>
<p>
- Some text and a link to a <a href="http://localhost:8080/thirdpage.html">third page</a>.
- Also, a <a href="http://localhost:8080/nonexistent">broken link</a>.
+ Some text and a link to a <a href="http://localhost:{{port}}/thirdpage.html">third page</a>.
+ Also, a <a href="http://localhost:{{port}}/nonexistent">broken link</a>.
</p>
</body>
</html>
</head>
<body>
<p>
- Some text and a link to a <a href="http://localhost:8080/dummy.txt">text file</a>.
- Also, another <a href="http://localhost:8080/againnonexistent">broken link</a>.
+ Some text and a link to a <a href="http://localhost:{{port}}/dummy.txt">text file</a>.
+ Also, another <a href="http://localhost:{{port}}/againnonexistent">broken link</a>.
</p>
</body>
</html>
},
);
-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;
</head>
<body>
<p>
- Some text and a link to a <a href="http://localhost:8080/secondpage.html">second page</a>.
- Also, a <a href="http://localhost:8080/nonexistent">broken link</a>.
+ Some text and a link to a <a href="http://localhost:{{port}}/secondpage.html">second page</a>.
+ Also, a <a href="http://localhost:{{port}}/nonexistent">broken link</a>.
</p>
</body>
</html>
</head>
<body>
<p>
- Some text and a link to a <a href="http://localhost:8080/thirdpage.html">third page</a>.
- Also, a <a href="http://localhost:8080/nonexistent">broken link</a>.
+ Some text and a link to a <a href="http://localhost:{{port}}/thirdpage.html">third page</a>.
+ Also, a <a href="http://localhost:{{port}}/nonexistent">broken link</a>.
</p>
</body>
</html>
</head>
<body>
<p>
- Some text and a link to a <a href="http://localhost:8080/dummy.txt">text file</a>.
- Also, another <a href="http://localhost:8080/againnonexistent">broken link</a>.
+ Some text and a link to a <a href="http://localhost:{{port}}/dummy.txt">text file</a>.
+ Also, another <a href="http://localhost:{{port}}/againnonexistent">broken link</a>.
</p>
</body>
</html>
},
);
-my $cmdline = $WgetTest::WGETPATH . " --spider -r http://localhost:8080/";
+my $cmdline = $WgetTest::WGETPATH . " --spider -r http://localhost:{{port}}/";
my $expected_error_code = 0;
</head>
<body>
<p>
- Some text and a link to a <a href="http://localhost:8080/secondpage.html">second page</a>.
- Also, a <a href="http://localhost:8080/nonexistent">broken link</a>.
+ Some text and a link to a <a href="http://localhost:{{port}}/secondpage.html">second page</a>.
+ Also, a <a href="http://localhost:{{port}}/nonexistent">broken link</a>.
</p>
</body>
</html>
</head>
<body>
<p>
- Some text and a link to a <a href="http://localhost:8080/thirdpage.html">third page</a>.
- Also, a <a href="http://localhost:8080/nonexistent">broken link</a>.
+ Some text and a link to a <a href="http://localhost:{{port}}/thirdpage.html">third page</a>.
+ Also, a <a href="http://localhost:{{port}}/nonexistent">broken link</a>.
</p>
</body>
</html>
</head>
<body>
<p>
- Some text and a link to a <a href="http://localhost:8080/dummy.txt">text file</a>.
- Also, another <a href="http://localhost:8080/againnonexistent">broken link</a>.
+ Some text and a link to a <a href="http://localhost:{{port}}/dummy.txt">text file</a>.
+ Also, another <a href="http://localhost:{{port}}/againnonexistent">broken link</a>.
</p>
</body>
</html>
},
);
-my $cmdline = $WgetTest::WGETPATH . " --spider -r http://localhost:8080/";
+my $cmdline = $WgetTest::WGETPATH . " --spider -r http://localhost:{{port}}/";
my $expected_error_code = 0;
},
);
-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;
<title>Main Page Title</title>
</head>
<body>
- <a href="http://localhost:8080/subpage.php">Secondary Page</a>
+ <a href="http://localhost:{{port}}/subpage.php">Secondary Page</a>
</body>
</html>
EOF
},
);
-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;
<title>Main Page Title</title>
</head>
<body>
- <a href="http://localhost:8080/subpage.php">Secondary Page</a>
+ <a href="http://localhost:{{port}}/subpage.php">Secondary Page</a>
</body>
</html>
EOF
},
);
-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 $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 $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 $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 $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 $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 $cmdline = $WgetTest::WGETPATH . " -N --content-disposition "
- . "http://localhost:8080/dummy.txt";
+ . "http://localhost:{{port}}/dummy.txt";
my $expected_error_code = 0;
},
);
-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 $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 $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 $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 $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 $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 $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 $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 $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 $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 $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 $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 $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 $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 $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 $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 $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 $cmdline = $WgetTest::WGETPATH . " --quiet http://localhost:8080/nonexistent";
+my $cmdline = $WgetTest::WGETPATH . " --quiet http://localhost:{{port}}/nonexistent";
my $expected_error_code = 256;
},
);
-my $cmdline = $WgetTest::WGETPATH . " http://localhost:8080/";
+my $cmdline = $WgetTest::WGETPATH . " http://localhost:{{port}}/";
my $expected_error_code = 0;
</head>
<body>
<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>
</body>
</html>
</head>
<body>
<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>
</body>
</html>
</head>
<body>
<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>
</body>
</html>
<p>
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
- <a href="http://localhost:8080/firstlevel/fourthpage.html">fourth page</a>.
+ <a href="http://localhost:{{port}}/firstlevel/fourthpage.html">fourth page</a>.
</p>
</body>
</html>
},
);
-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;
}
system ('rm -f needs-auth.txt');
-&fork_server;
+my $pid = &fork_server;
sleep 1;
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"
. " https://no.such.domain/needs-auth.txt";
my $code = system($cmdline);
warn "Got code: $code\n" if $code;
+kill ('TERM', $pid);
exit $code;
);
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;
#!/usr/bin/perl -w
+# WARNING!
+# WgetTest.pm is a generated file! Do not edit! Edit WgetTest.pm.in
+# instead.
+
package WgetTest;
$VERSION = 0.01;
# Call wget
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 =
- ($self->{_cmdline} =~ m{^/.*})
- ? system ($self->{_cmdline})
- : system ("$self->{_workdir}/../src/$self->{_cmdline}");
+ ($cmdline =~ m{^/.*})
+ ? system ($cmdline)
+ : system ("$self->{_workdir}/../src/$cmdline");
# Shutdown server
# if we didn't explicitely kill the server, we would have to call
or return "Test failed: file $filename not downloaded\n";
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";
if (exists($filedata->{'timestamp'})) {
}
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);