xref: /openbsd-src/gnu/usr.bin/perl/cpan/podlators/t/man/utf8-io.t (revision e068048151d29f2562a32185e21a8ba885482260)
156d68f1eSafresh1#!/usr/bin/perl
2b8851fccSafresh1#
3b8851fccSafresh1# Test Pod::Man UTF-8 handling, with and without PerlIO.
4b8851fccSafresh1#
5*e0680481Safresh1# Copyright 2002, 2004, 2006, 2008-2010, 2012, 2014-2015, 2018-2020, 2022
6b8851fccSafresh1#     Russ Allbery <rra@cpan.org>
7b8851fccSafresh1#
8b8851fccSafresh1# This program is free software; you may redistribute it and/or modify it
9b8851fccSafresh1# under the same terms as Perl itself.
10f3efcd01Safresh1#
11f3efcd01Safresh1# SPDX-License-Identifier: GPL-1.0-or-later OR Artistic-1.0-Perl
12b8851fccSafresh1
1356d68f1eSafresh1use 5.008;
14b8851fccSafresh1use strict;
15b8851fccSafresh1use warnings;
16b8851fccSafresh1
17b8851fccSafresh1use lib 't/lib';
18b8851fccSafresh1
19*e0680481Safresh1use Test::More tests => 17;
20b8851fccSafresh1use Test::Podlators qw(test_snippet_with_io);
21b8851fccSafresh1
22b8851fccSafresh1# Load the module.
23b8851fccSafresh1BEGIN {
24b8851fccSafresh1    use_ok('Pod::Man');
25b8851fccSafresh1}
26b8851fccSafresh1
27b8851fccSafresh1# Force UTF-8 on all relevant file handles.  Hide this in a string eval so
28b8851fccSafresh1# that older versions of Perl don't croak and minimum-version tests still
29b8851fccSafresh1# pass.
30b8851fccSafresh1#
31b8851fccSafresh1## no critic (BuiltinFunctions::ProhibitStringyEval)
32b8851fccSafresh1## no critic (ValuesAndExpressions::RequireInterpolationOfMetachars)
33b8851fccSafresh1eval 'binmode(\*STDOUT, ":encoding(utf-8)")';
34b8851fccSafresh1my $builder = Test::More->builder;
35b8851fccSafresh1eval 'binmode($builder->output, ":encoding(utf-8)")';
36b8851fccSafresh1eval 'binmode($builder->failure_output, ":encoding(utf-8)")';
37b8851fccSafresh1## use critic
38b8851fccSafresh1
39b8851fccSafresh1# For each of the UTF-8 snippets, check them with and without PerlIO layers.
40b8851fccSafresh1for my $snippet (qw(utf8-nonbreaking utf8-verbatim)) {
41b8851fccSafresh1    test_snippet_with_io('Pod::Man', "man/$snippet");
42b8851fccSafresh1    test_snippet_with_io('Pod::Man', "man/$snippet", { perlio_utf8 => 1 });
43b8851fccSafresh1}
44