Fix incorrect collapser source being generated due to unicode collapse points
[dbsrgits/DBIx-Class.git] / t / resultset / rowparser_internals.t
index c53b3eb..2377185 100644 (file)
@@ -5,6 +5,7 @@ use Test::More;
 use lib qw(t/lib);
 use DBICTest;
 use B::Deparse;
+use DBIx::Class::_Util 'perlstring';
 
 # globally set for the rest of test
 # the rowparser maker does not order its hashes by default for the miniscule
@@ -21,9 +22,9 @@ my $infmap = [qw/
 /];
 
 is_same_src (
-  $schema->source ('CD')->_mk_row_parser({
+  ($schema->source ('CD')->_mk_row_parser({
     inflate_map => $infmap,
-  }),
+  }))[0],
   '$_ = [
     { year => $_->[1] },
     { single_track => ( ! defined( $_->[0]) )
@@ -60,9 +61,9 @@ $infmap = [qw/
 /];
 
 is_same_src (
-  $schema->source ('CD')->_mk_row_parser({
+  ($schema->source ('CD')->_mk_row_parser({
     inflate_map => $infmap,
-  }),
+  }))[0],
   '$_ = [
     { artist => $_->[5], title => $_->[4], year => $_->[2] },
     {
@@ -137,10 +138,10 @@ is_same_src (
 );
 
 is_same_src (
-  $schema->source ('CD')->_mk_row_parser({
+  ($schema->source ('CD')->_mk_row_parser({
     prune_null_branches => 1,
     inflate_map => $infmap,
-  }),
+  }))[0],
   '$_ = [
     { artist => $_->[5], title => $_->[4], year => $_->[2] },
     {
@@ -173,11 +174,11 @@ is_same_src (
 );
 
 is_same_src (
-  $schema->source ('CD')->_mk_row_parser({
+  ($schema->source ('CD')->_mk_row_parser({
     hri_style => 1,
     prune_null_branches => 1,
     inflate_map => $infmap,
-  }),
+  }))[0],
   '$_ = {
       artist => $_->[5], title => $_->[4], year => $_->[2],
 
@@ -243,10 +244,10 @@ is_deeply (
 );
 
 is_same_src (
-  $schema->source ('CD')->_mk_row_parser({
+  ($schema->source ('CD')->_mk_row_parser({
     inflate_map => $infmap,
     collapse => 1,
-  }),
+  }))[0],
   ' my $rows_pos = 0;
     my ($result_pos, @collapse_idx, $cur_row_data, %cur_row_ids);
 
@@ -301,12 +302,12 @@ is_same_src (
 );
 
 is_same_src (
-  $schema->source ('CD')->_mk_row_parser({
+  ($schema->source ('CD')->_mk_row_parser({
     inflate_map => $infmap,
     collapse => 1,
     hri_style => 1,
     prune_null_branches => 1,
-  }),
+  }))[0],
   ' my $rows_pos = 0;
     my ($result_pos, @collapse_idx, $cur_row_data);
 
@@ -420,10 +421,10 @@ is_deeply (
 );
 
 is_same_src (
-  $schema->source ('CD')->_mk_row_parser({
+  ($schema->source ('CD')->_mk_row_parser({
     inflate_map => $infmap,
     collapse => 1,
-  }),
+  }))[0],
   ' my $rows_pos = 0;
     my ($result_pos, @collapse_idx, $cur_row_data, %cur_row_ids);
 
@@ -486,11 +487,11 @@ is_same_src (
 );
 
 is_same_src (
-  $schema->source ('CD')->_mk_row_parser({
+  ($schema->source ('CD')->_mk_row_parser({
     inflate_map => $infmap,
     collapse => 1,
     prune_null_branches => 1,
-  }),
+  }))[0],
   ' my $rows_pos = 0;
     my ($result_pos, @collapse_idx, $cur_row_data);
 
@@ -601,10 +602,10 @@ is_deeply (
 );
 
 is_same_src (
-  $schema->source ('CD')->_mk_row_parser({
+  ($schema->source ('CD')->_mk_row_parser({
     inflate_map => $infmap,
     collapse => 1,
-  }),
+  }))[0],
   ' my $rows_pos = 0;
     my ($result_pos, @collapse_idx, $cur_row_data, %cur_row_ids);
 
@@ -669,12 +670,12 @@ is_same_src (
 );
 
 is_same_src (
-  $schema->source ('CD')->_mk_row_parser({
+  ($schema->source ('CD')->_mk_row_parser({
     inflate_map => $infmap,
     collapse => 1,
     hri_style => 1,
     prune_null_branches => 1,
-  }),
+  }))[0],
   ' my $rows_pos = 0;
     my ($result_pos, @collapse_idx, $cur_row_data, %cur_row_ids);
 
@@ -750,6 +751,10 @@ done_testing;
 
 my $deparser;
 sub is_same_src { SKIP: {
+
+  skip "Skipping comparison of unicode-posioned source", 1
+    if DBIx::Class::_ENV_::STRESSTEST_UTF8_UPGRADE_GENERATED_COLLAPSER_SOURCE;
+
   $deparser ||= B::Deparse->new;
   local $Test::Builder::Level = $Test::Builder::Level + 1;
 
@@ -758,7 +763,7 @@ sub is_same_src { SKIP: {
   skip "Not testing equality of source containing defined-or operator on this perl $]", 1
     if ($] < 5.010 and$expect =~ m!\Q//=!);
 
-  $expect =~ s/__NBC__/B::perlstring($DBIx::Class::ResultSource::RowParser::Util::null_branch_class)/ge;
+  $expect =~ s/__NBC__/perlstring($DBIx::Class::ResultSource::RowParser::Util::null_branch_class)/ge;
 
   $expect = "  { use strict; use warnings FATAL => 'all';\n$expect\n  }";