Add check for wrong number of newlines at the end of the file
[catagits/Test-EOL.git] / t / 12-fail.t
index 4f27208..f98c476 100644 (file)
@@ -43,6 +43,31 @@ $inc = "-I $inc" if $inc;
             'Trailing ws EOL found in tmp file 4' );
 }
 
+{
+    my $dir = make_bad_file_5();
+    run_ok( "all_perl_files_ok({trailing_newline => 1}, '$dir' )",
+            qr/^not ok 1 - No incorrect line endings in '[^']*' \Qon line 2: Missing "\n" at end of file/m,
+            'Missing final newline found in tmp file 5' );
+}
+
+{
+    my $dir = make_bad_file_6();
+    run_ok( "all_perl_files_ok({trailing_newline => 1}, '$dir' )",
+            qr/^not ok 1 - No incorrect line endings in '[^']*' \Qon line 2: 1 blank line at end of file/m,
+            'Trailing blank line found in tmp file 6' );
+}
+
+{
+    my $dir = make_bad_file_7();
+    run_ok( "all_perl_files_ok({
+                 trailing_whitespace => 1,
+                 trailing_newline => 1,
+                 all_reasons => 1,
+             }, '$dir' )",
+            qr/^not ok 1 - No incorrect line endings in '[^']*'.*^# line 2: \Q[\s]: [\s]\E.*^# line 2: 1 blank line at end of file.*^# line 2: Missing "\\n" at end of file/ms,
+            'Trailing blank line found in tmp file 7' );
+}
+
 sub run_ok {
     my ($code, $match, $test_name) = @_;
     my (undef, $file, $line) = caller;
@@ -159,3 +184,30 @@ print $fh '}';
   return $tmpdir;
 }
 
+sub make_bad_file_5 {
+  my $tmpdir = tempdir( CLEANUP => 1 );
+  my ($fh, $filename) = tempfile( DIR => $tmpdir, SUFFIX => '.pL' );
+  binmode $fh, ':raw';
+  print $fh "one line here\nno EOL here";
+  close $fh;
+  return $filename;
+}
+
+sub make_bad_file_6 {
+  my $tmpdir = tempdir( CLEANUP => 1 );
+  my ($fh, $filename) = tempfile( DIR => $tmpdir, SUFFIX => '.pL' );
+  binmode $fh, ':raw';
+  print $fh "blank line following here\n \n";
+  close $fh;
+  return $filename;
+}
+
+sub make_bad_file_7 {
+  my $tmpdir = tempdir( CLEANUP => 1 );
+  my ($fh, $filename) = tempfile( DIR => $tmpdir, SUFFIX => '.pL' );
+  binmode $fh, ':raw';
+  print $fh "blank trailing line without newline\n ";
+  close $fh;
+  return $filename;
+}
+