Andy moved slurp_file() into Parrot::BuildUtil last month. So I don't
think we need to start a separate module called Parrot::Util -- at least
not yet.
I'm adding one file, t/configure/039-slurp_file.t, to provide unit tests
for Parrot::BuildUtil::slurp_file(). I also spruced up the POD in
BuildUtil.pm a bit.
With this, I think this ticket can be resolved for the time being. We
can create new tickets for any other issues that have been discussed in
this thread.
kid51
Index: MANIFEST
===================================================================
--- MANIFEST (revision 21148)
+++ MANIFEST (working copy)
@@ -1,7 +1,7 @@
# ex: set ro:
# $Id$
#
-# generated by tools/dev/mk_manifest_and_skip.pl Fri Sep 7 23:13:02 2007 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Sun Sep 9 01:46:53 2007 UT
#
# See tools/dev/install_files.pl for documentation on the
# format of this file.
@@ -2916,6 +2916,7 @@
t/configure/036_config_steps.t []
t/configure/037-run_single_step.t []
t/configure/038-run_single_step.t []
+t/configure/039-slurp_file.t []
t/configure/101-init_manifest.01.t []
t/configure/101-init_manifest.02.t []
t/configure/102-init_defaults.01.t []
Index: lib/Parrot/BuildUtil.pm
===================================================================
--- lib/Parrot/BuildUtil.pm (revision 21148)
+++ lib/Parrot/BuildUtil.pm (working copy)
@@ -7,9 +7,9 @@
=head1 DESCRIPTION
-For now, this package contains only one subroutine: C<parrot_version()>.
-This subroutine is not exported and so must be requested with a fully
-qualified path.
+This package holds two subroutines: C<parrot_version()> and
+<slurp_file>. Neither subroutine is exported and so each must be
+requested with a fully qualified path.
=cut
@@ -69,7 +69,8 @@
=item C<slurp_file($filename)>
-Slurps up the filename and returns the content as one string.
+Slurps up the filename and returns the content as one string. While
+doing so, it converts all DOS-style line endings to newlines.
=cut
Index: t/configure/039-slurp_file.t
===================================================================
--- t/configure/039-slurp_file.t (revision 0)
+++ t/configure/039-slurp_file.t (revision 0)
@@ -0,0 +1,90 @@
+#! perl
+# Copyright (C) 2007, The Perl Foundation.
+# $Id$
+# 039-slurp_file.t
+
+use strict;
+use warnings;
+
+use Test::More tests => 10;
+use Carp;
+use_ok( 'File::Temp', qw| tempfile | );
+use lib qw( lib );
+use Parrot::BuildUtil;
+
+{
+ my ($fh, $tempfile) = tempfile();
+ open $fh, ">", $tempfile
+ or croak "Unable to open tempfile for writing";
+ print $fh "Testing Parrot::BuildUtil::slurp_file()\n";
+ close $fh or croak "Unable to close tempfile after writing";
+
+ ok(-f $tempfile, "tempfile created for testing");
+ my $str = Parrot::BuildUtil::slurp_file($tempfile);
+ ok($str, "slurpfile() returned true value");
+ like($str, qr/Testing Parrot::BuildUtil::slurp_file/,
+ "Main content of tempfile correctly slurped");
+}
+
+{
+ my ($fh, $tempfile) = tempfile();
+ open $fh, ">", $tempfile
+ or croak "Unable to open tempfile for writing";
+ print $fh "Testing Parrot::BuildUtil::slurp_file()\cM\cJ\n";
+ close $fh or croak "Unable to close tempfile after writing";
+
+ ok(-f $tempfile, "tempfile created for testing");
+ my $str = Parrot::BuildUtil::slurp_file($tempfile);
+ ok($str, "slurpfile() returned true value");
+ like($str, qr/Testing Parrot::BuildUtil::slurp_file/,
+ "Main content of tempfile correctly slurped");
+ like($str, qr/\n{2}/m,
+ "DOS line endings correctly converted during slurp_file");
+}
+
+
+
+{
+ my $phony = q{foobar};
+ my $str;
+ eval { $str = Parrot::BuildUtil::slurp_file($phony); };
+ like($@, qr/open '$phony'/,
+ "Got error message expected upon attempting to slurp non-existent
file");
+}
+
+
+pass("Completed all tests in $0");
+
+################### DOCUMENTATION ###################
+
+=head1 NAME
+
+039-slurp_file.t - test C<Parrot::BuildUtil::slurp_file()>
+
+=head1 SYNOPSIS
+
+ % prove t/configure/039-slurp_file.t
+
+=head1 DESCRIPTION
+
+The files in this directory test functionality used by F<Configure.pl>.
+
+The tests in this file test C<Parrot::BuildUtil::slurp_file()>.
+
+=head1 AUTHOR
+
+James E Keenan
+
+=head1 SEE ALSO
+
+Parrot::BuildUtil, F<Configure.pl>.
+
+=cut
+
+# Local Variables:
+# mode: cperl
+# cperl-indent-level: 4
+# fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:
+
Property changes on: t/configure/039-slurp_file.t
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:keywords
+ Author Date Id Revision
Name: svn:eol-style
+ native