function testResultParser() { echo "<b>ResultParser tests</b><br/>\n"; foreach ($_SESSION['sparql_result'] as $name) { $_SESSION['test'] = $name . ' test'; $parser = new SparqlResultParser(); $qs = file_get_contents(SPARQL_TESTFILES . 'data/' . $name . '.xml', 'r'); $res = file_get_contents(SPARQL_TESTFILES . 'result/' . $name . '.res', 'r'); eval($res); $q = $parser->parse($qs); $this->assertTrue(SparqlTestHelper::resultCheck($q, $result)); } }
function sparql_query($ep, $query) { $req = "{$ep}?query=" . urlencode($query); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $req); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Accept: application/sparql-results+xml")); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_USERAGENT, "CURL"); $res = curl_exec($ch); $mime = curl_getinfo($ch, CURLINFO_CONTENT_TYPE); if (stristr($mime, "application/sparql-results+xml")) { $parser = new SparqlResultParser(); $ret = $parser->parse($res); } else { exit("Didn't get SPARQL XML results, got " . $mime . "\n\n" . $query . $res); } return $ret; }
function parseResult($buffer) { include_once RDFAPI_INCLUDE_DIR . PACKAGE_SYNTAX_SPARQLRES; $parser = new SparqlResultParser(); return $parser->parse($buffer); }
public function testAllTestgroupsNoReload() { echo "<b>SparqlDbTests</b><br/>\n"; //prepare $parser = new SparqlParser(); $strLastDataFile = null; foreach ($_SESSION['sparqlTestGroups'] as $arGroup) { if (isset($arGroup['deact'])) { continue; } //echo count($_SESSION[$arGroup['tests']]) . " tests\n"; foreach ($_SESSION[$arGroup['tests']] as $name) { if (isset($name['type']) && ($name['type'] == 'syntax-negative' || $name['type'] == 'syntax-positive')) { //skip syntax tests; they are run in SparqlParserTests continue; } $checkfunc = $arGroup['checkfunc']; $fileData = null; $fileResult = null; $fileQuery = null; if (is_array($name)) { 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 = 'data/' . $name . '.n3'; $fileQuery = 'query/' . $name . '.rq'; $fileResult = 'result/' . $name . '.res'; $title = $name; } if (in_array($title, $_SESSION['testSparqlDbTestsIgnores'])) { 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 (isset($name['earl:name'])) { //fix some weird issue with simpletest $earlname = $name['earl:name']; $this->signal('earl:name', $earlname); } if ($fileData != null && $fileData != $strLastDataFile) { //re-use database if not changed list($database, $dbModel) = $this->prepareDatabase(); //import statements into database $dbModel->load(SPARQL_TESTFILES . $fileData, 'n3'); $strLastDataFile = $fileData; } $qs = file_get_contents(SPARQL_TESTFILES . $fileQuery); if ($fileResult !== null) { $res = file_get_contents(SPARQL_TESTFILES . $fileResult); if (substr($fileResult, -4) == '.srx') { //Sparql XML result $resParser = new SparqlResultParser(); $result = $resParser->parse($res); } else { if (substr($fileResult, -4) == '.rdf') { //same format as .ttl, but serialized as xml //rdf xml sorted $resModel = new MemModel(); $resModel->load(SPARQL_TESTFILES . $fileResult, 'rdf'); $result = SparqlTestHelper::convertModelToResultArray($resModel); unset($resModel); $checkfunc = 'resultCheckSort'; } else { if (substr($fileResult, -4) == '.res') { //our own php code unset($result); eval($res); } else { if (substr($fileResult, -4) == '.ttl') { //N3 $resModel = new MemModel(); $resModel->load(SPARQL_TESTFILES . $fileResult, 'n3'); $result = SparqlTestHelper::convertModelToResultArray($resModel); unset($resModel); } else { throw new Exception('Unknown result format in ' . $fileResult); } } } } } try { $q = $parser->parse($qs); } catch (Exception $e) { //normal query failed to be parsed $this->assertTrue(false, 'Query failed to be parsed'); 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"; die; } } try { $t = $dbModel->sparqlQuery($qs); if ($t instanceof MemModel) { $bOk = $t->equals($result); } else { $bOk = SparqlTestHelper::$checkfunc($t, $result); } $this->assertTrue($bOk); } catch (Exception $e) { $bOk = false; $t = null; //an exception is an error if (isset($GLOBALS['debugTests'])) { var_dump($e->getMessage()); } $this->assertTrue(false); } if (!$bOk) { if (!isset($GLOBALS['debugTests'])) { //echo ' ' . $title . "\n"; } else { echo Console_Color::convert('%RTest failed: ' . $title . "%n\n"); if ($e != null) { echo get_class($e) . ': ' . $e->getMessage() . "\n"; } echo ' Data: ' . $fileData . "\n"; echo 'Query string: ' . $qs . "\n"; echo "Expected:\n"; echo Console_Color::convert('%p'); var_dump($result); echo Console_Color::convert('%n'); echo "Result:\n"; echo Console_Color::convert('%r'); var_dump($t); echo Console_Color::convert('%n'); //var_dump($q); die; } } /**/ } // echo $arGroup['title'] . " done\n"; } }