Test suite now is fully parallelizable
[dbsrgits/DBIx-Class-DeploymentHandler.git] / t / deploy_methods / coderef-leakage.t
CommitLineData
a89cd737 1#!perl
2
3use strict;
4use warnings;
5
6use Test::More;
7use Test::Exception;
8use aliased 'DBIx::Class::DeploymentHandler::DeployMethod::SQL::Translator';
7b3d00f9 9use File::Temp 'tempdir';
a89cd737 10
11use lib 't/lib';
12
13use DBICDHTest;
14
15my $dbh = DBICDHTest::dbh();
7b3d00f9 16my $sql_dir = tempdir( CLEANUP => 1 );
a89cd737 17my @connection = (sub { $dbh }, { ignore_version => 1 });
18
a89cd737 19use_ok 'DBICVersion_v1';
20my $s = DBICVersion::Schema->connect(@connection);
7b3d00f9 21my $dm = Translator->new({
22 schema => $s,
23 script_directory => $sql_dir,
24});
a89cd737 25
26my ($fname1, $fname2) = @_;
27
28{
29 my $fh = File::Temp->new(UNLINK => 0);
30 print {$fh} 'sub leak {} sub { leak() }';
31 $fname1 = $fh->filename;
32 close $fh;
33}
34
35{
36 my $fh = File::Temp->new(UNLINK => 0);
37 print {$fh} 'sub { leak() }';
38 $fname2 = $fh->filename;
39 close $fh;
40}
41
42$dm->_run_perl($fname1, [1]);
43dies_ok { $dm->_run_perl($fname2, [1]) } 'info should not leak between coderefs';
44
45done_testing;
46
47END { unlink $fname1; unlink $fname2 }