Convert-Binary-C

 view release on metacpan or  search on metacpan

tests/210_depend.t  view on Meta::CPAN

################################################################################
#
# Copyright (c) 2002-2024 Marcus Holland-Moritz. All rights reserved.
# This program is free software; you can redistribute it and/or modify
# it under the same terms as Perl itself.
#
################################################################################

use Test;
use Convert::Binary::C @ARGV;

$^W = 1;

BEGIN { plan tests => 90 }

my $CCCFG = require './tests/include/config.pl';

eval {
  $c1 = Convert::Binary::C->new( Include => ['tests/include/files'] );
  $c2 = Convert::Binary::C->new( Include => ['tests/include/files'] );
};
ok($@,'',"failed to create Convert::Binary::C objects");

eval {
  $c1->parse_file( 'tests/include/files/files.h' );
  $c2->parse( <<CODE );
#include <empty.h>
#include <ifdef.h>
#include <ifnull.h>
#include <something.h>
CODE
};
ok($@,'',"failed to parse C-code");

eval {
  $dep1 = $c1->dependencies;
  $dep2 = $c2->dependencies;
  @files1a = $c1->dependencies;
  @files2a = $c2->dependencies;
};
ok($@,'',"failed to retrieve dependencies");

@files1s = keys %$dep1;
@files2s = keys %$dep2;

@incs = qw(
  tests/include/files/empty.h
  tests/include/files/ifdef.h
  tests/include/files/ifnull.h
  tests/include/files/something.h
);

@ref1 = ( 'tests/include/files/files.h', @incs );
@ref2 = @incs;

s/\\/\//g for @files1a, @files2a, @files1s, @files2s;

print "# \@files1a => @files1a\n";

ok( join(',', sort @ref1), join(',', sort @files1a),
    "dependency names differ" );

print "# \@files1s => @files1s\n";

ok( join(',', sort @ref1), join(',', sort @files1s),
    "dependency names differ" );

print "# \@files2a => @files2a\n";

ok( join(',', sort @ref2), join(',', sort @files2a),
    "dependency names differ" );

print "# \@files2s => @files2s\n";

ok( join(',', sort @ref2), join(',', sort @files2s),
    "dependency names differ" );



( run in 1.322 second using v1.01-cache-2.11-cpan-39bf76dae61 )