Provided by: libtest-longstring-perl_0.17-3_all bug

NAME

       Test::LongString - tests strings for equality, with more helpful failures

SYNOPSIS

           use Test::More tests => 1;
           use Test::LongString;
           like_string( $html, qr/(perl|cpan)\.org/ );

           #     Failed test (html-test.t at line 12)
           #          got: "<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Trans"...
           #       length: 58930
           #     doesn't match '(?-xism:(perl|cpan)\.org)'

DESCRIPTION

       This module provides some drop-in replacements for the string comparison functions of Test::More, but
       which are more suitable when you test against long strings.  If you've ever had to search for text in a
       multi-line string like an HTML document, or find specific items in binary data, this is the module for
       you.

FUNCTIONS

   is_string( $string, $expected [, $label ] )
       "is_string()" is equivalent to "Test::More::is()", but with more helpful diagnostics in case of failure.

       •   It doesn't print the entire strings in the failure message.

       •   It reports the lengths of the strings that have been compared.

       •   It reports the length of the common prefix of the strings.

       •   It reports the line and column the strings started to differ on.

       •   In the diagnostics, non-ASCII characters are escaped as "\x{xx}".

       For example:

           is_string( $soliloquy, $juliet );

           #     Failed test (soliloquy.t at line 15)
           #          got: "To be, or not to be: that is the question:\x{0a}Whether"...
           #       length: 1490
           #     expected: "O Romeo, Romeo,\x{0a}wherefore art thou Romeo?\x{0a}Deny thy"...
           #       length: 154
           #     strings begin to differ at char 1 (line 1 column 1)

   is_string_nows( $string, $expected [, $label ] )
       Like "is_string()", but removes whitespace (in the "\s" sense) from the arguments before comparing them.

   like_string( $string, qr/regex/ [, $label ] )
   unlike_string( $string, qr/regex/ [, $label ] )
       "like_string()"  and  "unlike_string()" are replacements for "Test::More:like()" and "unlike()" that only
       print the beginning of the received string in the  output.   Unfortunately,  they  can't  print  out  the
       position where the regex failed to match.

           like_string( $soliloquy, qr/Romeo|Juliet|Mercutio|Tybalt/ );

           #     Failed test (soliloquy.t at line 15)
           #          got: "To be, or not to be: that is the question:\x{0a}Whether"...
           #       length: 1490
           #     doesn't match '(?-xism:Romeo|Juliet|Mercutio|Tybalt)'

   contains_string( $string, $substring [, $label ] )
       "contains_string()"  searches  for  $substring in $string.  It's the same as "like_string()", except that
       it's not a regular expression search.

           contains_string( $soliloquy, "Romeo" );

           #     Failed test (soliloquy.t at line 10)
           #         searched: "To be, or not to be: that is the question:\x{0a}Whether"...
           #   and can't find: "Romeo"

       As of version 0.12, "contains_string()" will also report the Longest Common  SubString  (LCSS)  found  in
       $string  and,  if  the LCSS is short enough, the surroundings will also be shown under LCSS Context. This
       should help debug tests for really long strings like HTML output, so you'll get something like:

          contains_string( $html, '<div id="MainContent">' );
          #   Failed test at t/foo.t line 10.
          #     searched: "<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Stric"...
          #   can't find: "<div id="MainContent">"
          #         LCSS: "ainContent""
          # LCSS context: "dolor sit amet</span>\x{0a}<div id="mainContent" class="

       You can turn off LCSS reporting by setting $Test::LongString::LCSS to 0, or by specifying an argument  to
       "use":

           use Test::LongString lcss => 0;

   lacks_string( $string, $substring [, $label ] )
       "lacks_string()" makes sure that $substring does NOT exist in $string.  It's the same as "like_string()",
       except that it's not a regular expression search.

           lacks_string( $soliloquy, "slings" );

           #     Failed test (soliloquy.t at line 10)
           #         searched: "To be, or not to be: that is the question:\x{0a}Whether"...
           #        and found: "slings"
           #      at position: 147 (line 3 column 4)

CONTROLLING OUTPUT

       By  default, only the first 50 characters of the compared strings are shown in the failure message.  This
       value is in $Test::LongString::Max, and can be set at run-time.

       You can also set it by specifying an argument to "use":

           use Test::LongString max => 100;

       When the compared strings begin to differ after a large prefix, Test::LongString will not print them from
       the beginning, but will start at the middle,  more  precisely  at  $Test::LongString::Context  characters
       before  the  first  difference.  By  default this value is 10 characters. If you want Test::LongString to
       always  print  the  beginning   of   compared   strings   no   matter   where   they   differ,   undefine
       $Test::LongString::Context.

       When  computing line numbers this module uses "\n" to count line endings. This may not be appropriate for
       strings on your platform, and can be overridden by  setting  the  $Test::LongString::EOL  variable  to  a
       suitable  regular  expression  (either  a  reference  to  a  regular  expression  or a string that can be
       interpolated into a regular expression.)

       You can also set it by specifying an argument to "use":

           use Test::LongString eol => "\x{0a}\x{0c}";

AUTHOR

       Written by Rafael Garcia-Suarez. Thanks to Mark  Fowler  (and  to  Joss  Whedon)  for  the  inspirational
       Acme::Test::Buffy. Thanks to Andy Lester for lots of patches.

       This  program  is  free  software;  you may redistribute it and/or modify it under the same terms as Perl
       itself.

       A git repository for this module is available at

           git://github.com/rgs/Test-LongString.git

       and the project page at

           http://github.com/rgs/Test-LongString

SEE ALSO

       Test::Builder, Test::Builder::Tester, Test::More.

perl v5.36.0                                       2022-10-13                              Test::LongString(3pm)