#!/usr/bin/perl

use strict;

BEGIN {
  $|  = 1;
  $^W = 1;
}

use Test::More;

my @c_files = (<*.c>, <*.h>, <*.xs>);
plan tests => scalar(@c_files);

FILE:
foreach my $file (@c_files) {
  if ($file =~ /ppport.h/) {
    pass("$file is not ours to be tested");
    next;
  }

  open my $fh, '<', $file or die "$file: $!";
  my $line = 0;
  while (<$fh>) {
    $line++;
    if (/^(.*)\/\//) {
      my $m = $1;
      if ($m !~ /\*/ && $m !~ /(?:file|http|ftp):$/ && $m !~ m!"/*?$!) { # skip the // in c++ comment in parse.c
        fail("C++ comment in $file line $line: $m");
        next FILE;
      }
    }

    if (/#define\s+DBD_SQLITE_CROAK_DEBUG/) {
      fail("debug macro is enabled in $file line $line");
      next FILE;
    }
  }
  pass("$file has no C++ comments");
  close $fh;
}
