#!/usr/bin/env perl
use Test::More;
use MongoDB;
my %valid = (
"abc123" => 1,
"\xc0\x81" => 0,
"\xc1\xa0" => 0,
"\xc2\x81" => 1,
"\xdf\x80" => 1,
"\xdf\xc0" => 0,
"\xe0\x80" => 0,
"\xe0\x81\x80" => 0,
"\xe0\xa0\x80" => 1,
"\xed\xa0\x80" => 0,
"\xee\x81\x81" => 1,
"\xe9a" => 0,
"\xf0\x90\xbe\xbf" => 1,
"\xf2\x79\x80\x80" => 0,
"\xf4\x8f\xbf\x80" => 1,
);
for my $k (sort keys %valid) {
my $bytes = pack('C*', unpack('C*', $k));
my $isUTF8 = MongoDB::_test_is_utf8($bytes);
my $hex = join ' ', map { sprintf( "%x", ord($_) ) } (split(//,$bytes));
my $vStr = ($valid{$k}) ? 'valid' : 'invalid';
is( $isUTF8, $valid{$k}, "utf8-test: $hex ($vStr)" );
}
done_testing();