1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
use strict ;
use blib ;
BEGIN {
mkdir('./_Inline_test', 0777) unless -e './_Inline_test';
}
use Inline Config =>
DIRECTORY => './_Inline_test' ;
my @tests = split(/;;;;;/,<<'ETESTS');
Inline->bind(Java => <<'JAVA',
class a {
public a(){
}
public int get(){
return 5 ;
}
}
JAVA
NAME => "<PKG>"
) ;
my $a = new <PKG::>a() ;
print $a->get() . "\n" ;
;;;;;
Inline->bind(Java => <<'JAVA',
class b {
public b(){
}
public int get(){
return 6 ;
}
}
JAVA
NAME => "<PKG>"
) ;
my $b = new <PKG::>b() ;
print $b->get() . "\n" ;
ETESTS
my $nb = scalar(@tests) ;
my $cp = "[PERL_INLINE_JAVA=" . join(", ", map{"Test$_"} (0..$nb-1)) . "]" ;
$ENV{CLASSPATH} = $cp ;
my $cnt = 0 ;
foreach my $t (@tests){
# `rm -Rf ./_Inline_test/*` ;
# Insert the package name and replace the macros
my $pkg = "Test$cnt" ;
$t = "package $pkg ;\n" . $t ;
$t =~ s/<PKG(|::)>/$pkg$1/g ;
eval $t ;
if ($@){
die $@ ;
}
$cnt++ ;
}
|