# THIS TEST FILE WAS WRITTEN BY DAVE ROLSKY
use strict;
use warnings;
use Test::More;

eval 'use Encode';
plan skip_all => 'These tests require Encode.pm'
    unless eval 'use Encode; 1';

plan skip_all => 'These tests require Perl 5.8.8+'
    unless $] >= 5.008008;

plan tests => 2;

use Devel::StackTrace::WithLexicals;


# This should be invalid UTF8
my $raw_bad = do { use bytes; chr( 0xED ) . chr( 0xA1 ) . chr( 0xBA ) };

my $decoded = Encode::decode( 'utf8' => $raw_bad );
my $trace = foo( $decoded );

my $string = eval { $trace->as_string() };

my $e = $@;
is( $e, '',
    'as_string() does not throw an exception' );
like( $string, qr/\Q(bad utf-8)/,
      'stringified output notes bad utf-8' );


sub foo
{
    Devel::StackTrace::WithLexicals->new();
}

