The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use encoding 'utf8';
use strict;

use File::Spec;
use Test::More ('no_plan');

BEGIN {
    use_ok('CGI::Session');
    use_ok("CGI::Session::Driver");
    use_ok("CGI::Session::Driver::file");
}

my $id;
my $s;

{
    ok($s = CGI::Session->new('driver:file;serializer:default', undef), 'Created CGI::Session object successfully');

    $id = $s -> id();
}

diag("Warnings expected. Consult docs re 'utf8'");
ok($id, 'Session created successfully');

# Emulate CGI::Session::Driver::file.pm.

my $dir_name  = File::Spec->tmpdir();
my $file_name = File::Spec->catfile($dir_name, "cgisess_$id");

$s = undef;

{
    $s = CGI::Session->new('driver:file;serializer:default', $id);
}

if ($@) {
    print STDERR $@;
    ok(1, q|Warning: Failed to recreate session. Cannot "use 'utf8'; in conjunction with CGI::Session"|);
} else {
    ok($s, 'Recreated session succeeded');
}

# Clean up /tmp as per RT 29969.

unlink $file_name;