Redland
view release on metacpan or search on metacpan
redland/rasqal/tests/rdql/testsuite/check-rdql view on Meta::CPAN
return $str if $str =~ s/^(<.*>)$/uri$1/;
#return $str if $str =~ s/^_:(.*)$/blank $1/;
return $str if $str =~ s/^_:(.*)$/blank _/;
}
open(OUT, "|sort >result.out")
or die "$program: Cannot create pipe to result.out - $!\n";
# Find ResultSet node
my $resultset_node=undef;
for my $node (@node_order) {
my $type=$node_type{$node};
next if !$type || $type ne "<${rs}ResultSet>";
$resultset_node=$node;
last;
}
my $count=0;
for my $node (@{$nodes{$resultset_node}->{$solution_predicate}}) {
# Get binding nodes
my(%results);
for my $binding_node (@{$nodes{$node}->{$binding_predicate}}) {
my $variable=$nodes{$binding_node}->{$variable_predicate}->[0];
$variable=~ s/^"(.*)"$/$1/;
my $value=$nodes{$binding_node}->{$value_predicate}->[0];
$results{$variable}=toDebug($value);
}
my(@defined_vars)=grep(defined $results{$_}, @vars_order);
print OUT "result: [",join(", ",map {"$_=$results{$_}"} @defined_vars),"]\n";
$count++;
}
close(OUT);
$cmd="diff -c result.out roqet.out > diff.out";
my $rc=system($cmd);
if($rc) {
warn "$program: $name FAILED\n";
warn "Failing program was:\n";
warn " $roqet_cmd\n";
warn "Difference is:\n";
system("cat diff.out");
warn "$program: Expected $count results\n";
return 1;
} else {
warn "$program: $name OK\n";
return 0;
}
}
# Argument handling
my $usage=0;
while(@ARGV && $ARGV[0] =~ /^-(.+)$/) {
local $_=shift(@ARGV);
if(/^-d/) {
$debug=1;
} elsif (/^-s$/) {
if(!@ARGV) {
$usage=1;
last;
} else {
$srcdir=shift @ARGV;
}
}
}
$usage=1 if @ARGV >1;
die "USAGE: $program [-d] [-s srcdir] [TEST]\n" if $usage;
my $unique_test=$ARGV[0];
$srcdir.="/" unless $srcdir =~ m%/$%;
my(@failed);
my(@entries);
if(!$unique_test) {
opendir(DIR, $srcdir) or die "Cannot opendir $srcdir - $!\n";
@entries=sort(readdir(DIR));
closedir(DIR);
} else {
@entries="test-$unique_test";
}
my $result=0;
for my $entry (@entries) {
my $entry_file=$srcdir.$entry;
next if -d $entry_file;
next unless $entry =~ /^test-(.*)$/;
my $test=$1;
my $test_file=$srcdir."test-$test";
my $result_file=$srcdir."result-$test.n3";
my $rc = run_test($1, $srcdir, $test_file, [], $result_file);
push(@failed, $test) if $rc;
$result++ if $rc;
}
unlink "roqet.out", "result.out", "diff.out", "roqet.err"
unless $unique_test;
warn "$0: FAILED tests: @failed\n"
if @failed;
exit $result;
( run in 0.556 second using v1.01-cache-2.11-cpan-54e63673c56 )