|
From: <cw...@us...> - 2007-08-12 15:26:50
|
Revision: 490
http://rdfapi-php.svn.sourceforge.net/rdfapi-php/?rev=490&view=rev
Author: cweiske
Date: 2007-08-12 08:26:47 -0700 (Sun, 12 Aug 2007)
Log Message:
-----------
Unit test support for DAWG syntax tests
Modified Paths:
--------------
trunk/rdfapi-php/test/unit/Sparql/Dawg2Helper.php
trunk/rdfapi-php/test/unit/Sparql/SparqlDbTests_test.php
trunk/rdfapi-php/test/unit/Sparql/SparqlTestHelper.php
trunk/rdfapi-php/test/unit/Sparql/cases.php
trunk/rdfapi-php/test/unit/Sparql/create-dawg2.php
Modified: trunk/rdfapi-php/test/unit/Sparql/Dawg2Helper.php
===================================================================
--- trunk/rdfapi-php/test/unit/Sparql/Dawg2Helper.php 2007-08-12 14:57:56 UTC (rev 489)
+++ trunk/rdfapi-php/test/unit/Sparql/Dawg2Helper.php 2007-08-12 15:26:47 UTC (rev 490)
@@ -17,8 +17,8 @@
{
$suiteDir = dirname(__FILE__) . '/w3c-dawg2/data-r2/';
$suites = array(
-// 'manifest-evaluation.ttl',
-// 'extended-manifest-evaluation.ttl',
+ 'manifest-evaluation.ttl',
+ 'extended-manifest-evaluation.ttl',
'manifest-syntax.ttl'
);
@@ -42,7 +42,6 @@
//activate it in cases.php
$_SESSION['sparql_dawg2_tests'] = $arTests;
- $_SESSION['sparqlTestGroups'] = array();//remove other cases
$_SESSION['sparqlTestGroups']['dawg2'] = array(//'deact'=>1,
'title' => 'DAWG2 tests',
'tests' => 'sparql_dawg2_tests',
@@ -103,8 +102,7 @@
throw new Exception('Collection file does not exist: ' . $strCollectionFile);
}
- //$arTests = self::loadEvaluationTests($strCollectionFile);
- $arTests = array();
+ $arTests = self::loadEvaluationTests($strCollectionFile);
$arTests = array_merge($arTests, self::loadSyntaxTests($strCollectionFile));
return $arTests;
}//public static function loadCollectionFromManifest($strCollectionFile)
Modified: trunk/rdfapi-php/test/unit/Sparql/SparqlDbTests_test.php
===================================================================
--- trunk/rdfapi-php/test/unit/Sparql/SparqlDbTests_test.php 2007-08-12 14:57:56 UTC (rev 489)
+++ trunk/rdfapi-php/test/unit/Sparql/SparqlDbTests_test.php 2007-08-12 15:26:47 UTC (rev 490)
@@ -13,6 +13,9 @@
require_once 'Console/Color.php';
}
+//SparqlTestHelper::loadDawg2Tests();
+
+
class testSparqlDbTests extends UnitTestCase
{
protected static $strModelUri = 'unittest-model';
@@ -30,44 +33,84 @@
if (isset($arGroup['deact'])) continue;
$checkfunc = $arGroup['checkfunc'];
//echo count($_SESSION[$arGroup['tests']]) . " tests\n";
+
foreach ($_SESSION[$arGroup['tests']] as $name) {
+ $fileData = null;
+ $fileResult = null;
+ $fileQuery = null;
+
if (is_array($name)) {
- $fileData = $name['data'];
- $fileQuery = $name['query'] . '.rq';
- $fileResult = $name['result'] . '.res';
- $title = $name['query'];
+ if (isset($name['data'])) {
+ if (!file_exists(SPARQL_TESTFILES . $name['data'])) {
+ $fileData = 'data/' . $name['data'];
+ } else {
+ $fileData = $name['data'];
+ }
+ }
+
+ if (!file_exists(SPARQL_TESTFILES . $name['query'])) {
+ $fileQuery = 'query/' . $name['query'] . '.rq';
+ } else {
+ $fileQuery = $name['query'];
+ }
+
+ if (isset($name['result'])) {
+ if (!file_exists(SPARQL_TESTFILES . $name['result'])) {
+ $fileResult = 'result/' . $name['result'] . '.res';
+ } else {
+ $fileResult = $name['result'];
+ }
+ }
+
+ if (isset($name['title'])) {
+ $title = $name['title'];
+ } else {
+ $title = $name['query'];
+ }
} else {
- $fileData = $name . '.n3';
- $fileQuery = $name . '.rq';
- $fileResult = $name . '.res';
+ $fileData = 'data/' . $name . '.n3';
+ $fileQuery = 'query/' . $name . '.rq';
+ $fileResult = 'result/' . $name . '.res';
$title = $name;
}
if (in_array($title, $_SESSION['testSparqlDbTestsIgnores'])) {
-// echo Console_Color::convert('%y');
-// echo ' ignoring ' . $title . "\n";
-// echo Console_Color::convert('%n');
+ if (isset($GLOBALS['debugTests'])) {
+ echo Console_Color::convert('%y');
+ echo ' ignoring ' . $title . "\n";
+ echo Console_Color::convert('%n');
+ }
continue;
}
//echo ' ' . $title . "\n";
$_SESSION['test'] = $title . ' test';
$e = null;
- if ($fileData != $strLastDataFile) {
+ if ($fileData != null && $fileData != $strLastDataFile) {
//re-use database if not changed
list($database, $dbModel) = $this->prepareDatabase();
//import statements into database
- $dbModel ->load(SPARQL_TESTFILES . 'data/' . $fileData);
+ $dbModel ->load(SPARQL_TESTFILES . $fileData);
$strLastDataFile = $fileData;
}
- $qs = file_get_contents(SPARQL_TESTFILES . 'query/' . $fileQuery, 'r');
- $res = file_get_contents(SPARQL_TESTFILES . 'result/' . $fileResult, 'r');
- unset($result);
- eval($res);
- $q = $parser->parse($qs);
+ $qs = file_get_contents(SPARQL_TESTFILES . $fileQuery);
+ if ($fileResult !== null) {
+ $res = file_get_contents(SPARQL_TESTFILES . $fileResult);
+ unset($result);
+ eval($res);
+ }
+
+ if (isset($name['type']) &&
+ ($name['type'] == 'syntax-negative' || $name['type'] == 'syntax-positive')
+ ) {
+ $this->testQueryParse($qs, $parser, $name['type'], $title);
+ continue;
+ }
+
+ $q = $parser->parse($qs);
try {
- $t = $dbModel->sparqlQuery($qs);
+ $t = $dbModel->sparqlQuery($qs);
if ($t instanceof MemModel) {
$bOk = $t->equals($result);
@@ -110,11 +153,48 @@
}
// echo $arGroup['title'] . " done\n";
}
- }
+ }//public function testAllTestgroupsNoReload()
/**
+ * Runs a parser test
+ */
+ protected function testQueryParse($strQuery, $parser, $strType, $title)
+ {
+//echo $title . "\n";
+ $bException = false;
+ try {
+ $parser->parse($strQuery);
+ } catch (Exception $e) {
+ $bException = true;
+ }
+
+ if ($strType == 'syntax-negative') {
+ $this->assertTrue($bException, 'Query should fail to be parsed.');
+ $bOk = $bException == true;
+ } else if ($strType == 'syntax-positive') {
+ $this->assertFalse($bException, 'Query should get parsed.');
+ $bOk = $bException == false;
+ }
+
+ if (!$bOk) {
+ if (!isset($GLOBALS['debugTests'])) {
+ echo ' ' . $title . "\n";
+ } else {
+ echo Console_Color::convert('%RTest failed: ' . $title . "%n\n");
+ if (isset($e)) {
+ echo $e->getMessage() . "\n";
+ //var_dump($e);
+ }
+ echo $strQuery . "\n";
+ }
+ }
+ }//protected function testQueryParse($strQuery, $parser, $strType)
+
+
+
+ /**
* Instantiates the database object and clears
* any existing statements to have a fresh place
* for a unit test.
Modified: trunk/rdfapi-php/test/unit/Sparql/SparqlTestHelper.php
===================================================================
--- trunk/rdfapi-php/test/unit/Sparql/SparqlTestHelper.php 2007-08-12 14:57:56 UTC (rev 489)
+++ trunk/rdfapi-php/test/unit/Sparql/SparqlTestHelper.php 2007-08-12 15:26:47 UTC (rev 490)
@@ -1,4 +1,5 @@
<?php
+
/**
* Class with Sparql-Unittest helper methods
*/
Modified: trunk/rdfapi-php/test/unit/Sparql/cases.php
===================================================================
--- trunk/rdfapi-php/test/unit/Sparql/cases.php 2007-08-12 14:57:56 UTC (rev 489)
+++ trunk/rdfapi-php/test/unit/Sparql/cases.php 2007-08-12 15:26:47 UTC (rev 490)
@@ -42,6 +42,11 @@
'tests' => 'sparql_ask_tests',
'checkfunc' => 'resultCheck'
),
+ 'dawg2' => array(//'deact'=>1,
+ 'title' => 'DAWG2 tests',
+ 'tests' => 'sparql_dawg2_tests',
+ 'checkfunc' => 'resultCheck'
+ ),
);
$_SESSION['testSparqlDbTestsIgnores'] = array(
@@ -53,6 +58,10 @@
'ex11.2.3.2_0',
//test is broken IMO (cweiske)
'query-survey-1',
+
+ //fatal error
+ 'syntax-form-describe01.rq',
+ 'syntax-form-describe02.rq',
);
@@ -677,5 +686,5 @@
);
-
+require_once dirname(__FILE__) . '/cases_dawg2.php';
?>
\ No newline at end of file
Modified: trunk/rdfapi-php/test/unit/Sparql/create-dawg2.php
===================================================================
--- trunk/rdfapi-php/test/unit/Sparql/create-dawg2.php 2007-08-12 14:57:56 UTC (rev 489)
+++ trunk/rdfapi-php/test/unit/Sparql/create-dawg2.php 2007-08-12 15:26:47 UTC (rev 490)
@@ -15,7 +15,7 @@
echo "<?php
/**
-* automatically created by create-dawg2.php
+* automatically created by create-dawg2.php on " . date('Y-m-d H:i') . "
*/
\$_SESSION['sparql_dawg2_tests'] = ";
var_export($_SESSION['sparql_dawg2_tests']);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|