diff options
Diffstat (limited to 'scripts/t/Dpkg_File.t')
-rw-r--r-- | scripts/t/Dpkg_File.t | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/scripts/t/Dpkg_File.t b/scripts/t/Dpkg_File.t new file mode 100644 index 0000000..bbc6a3b --- /dev/null +++ b/scripts/t/Dpkg_File.t @@ -0,0 +1,80 @@ +#!/usr/bin/perl +# +# This program 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 2 of the License, or +# (at your option) any later version. +# +# This program 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 this program. If not, see <https://www.gnu.org/licenses/>. + +use strict; +use warnings; + +use Test::More tests => 10; +use Test::Dpkg qw(:paths); + +use File::Compare; +use File::Path qw(rmtree); + +BEGIN { + use_ok('Dpkg::File'); +} + +my $datadir = test_get_data_path(); +my $tempdir = test_get_temp_path(); + +my ($data, $data_ref, $data_fh); + +$data = file_slurp("$datadir/slurp-me"); +$data_ref = <<'DATA'; +first line +next line +final line +DATA +is($data, $data_ref, 'slurped data'); + +file_dump("$tempdir/slurp-me", $data); +ok(compare("$tempdir/slurp-me", "$datadir/slurp-me") == 0, + 'dumped slurped data'); + +open $data_fh, '<', "$datadir/slurp-me" + or die "cannot open $datadir/slurp-me for reading: $!"; +my $discard = <$data_fh>; +$data = file_slurp($data_fh); +close $data_fh; +$data_ref = <<'DATA'; +next line +final line +DATA +is($data, $data_ref, 'slurped partial data'); + +file_dump("$tempdir/dump-partial", $data); +ok(compare("$tempdir/dump-partial", "$datadir/dump-partial") == 0, + 'dumped slurped partial data'); + +open $data_fh, '>', "$tempdir/append-me" + or die "cannot create $tempdir/append-me: $!"; +print { $data_fh } "append line\n"; +file_dump($data_fh, "new line\nend line\n"); +close $data_fh; +ok(compare("$tempdir/append-me", "$datadir/append-me") == 0, + 'dumped appended data'); + +$data = undef; +eval { + $data = file_slurp("$datadir/non-existent"); +}; +ok($@, 'cannot slurp missing file'); + +ok(! -e "$tempdir/touched", 'file to be touched does not exist'); +file_touch("$tempdir/touched"); +ok(-e "$tempdir/touched", 'touched file exists'); +ok(-z "$tempdir/touched", 'touched file is empty'); + +1; |