You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2012/10/12 13:21:59 UTC

svn commit: r1397518 [1/9] - in /jena/Experimental/riot-reader: ./ src/main/java/dev/ src/test/java/org/apache/jena/riot/ src/test/java/org/apache/jena/riot/langsuite/ src/test/java/riotcmd/ testing/RIOT/Lang/ testing/RIOT/Lang/Turtle/ testing/RIOT/Lan...

Author: andy
Date: Fri Oct 12 11:21:55 2012
New Revision: 1397518

URL: http://svn.apache.org/viewvc?rev=1397518&view=rev
Log:
Upgrade for scripted tests for RDF (non-XML) languages.  WIP.

Added:
    jena/Experimental/riot-reader/rdflangtest   (with props)
    jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/TS_LangSuite.java
    jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/langsuite/
    jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/langsuite/FactoryTestRiotTurtle.java
    jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/langsuite/TestSuiteTurtle.java
    jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/langsuite/UnitTestSurpressed.java
    jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/langsuite/UnitTestTurtleBadEval.java
    jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/langsuite/UnitTestTurtleBadSyntax.java
    jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/langsuite/UnitTestTurtleEval.java
    jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/langsuite/UnitTestTurtleSyntax.java
    jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/langsuite/VocabLangRDF.java
    jena/Experimental/riot-reader/src/test/java/riotcmd/
    jena/Experimental/riot-reader/src/test/java/riotcmd/MainLangTest.java
    jena/Experimental/riot-reader/src/test/java/riotcmd/rdflangtest.java
    jena/Experimental/riot-reader/testing/RIOT/Lang/
    jena/Experimental/riot-reader/testing/RIOT/Lang/Turtle/
    jena/Experimental/riot-reader/testing/RIOT/Lang/Turtle/manifest.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/Turtle/test-00.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/README_LICENSE
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-00.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-01.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-02.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-03.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-04.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-05.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-06.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-07.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-08.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-09.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-10.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-11.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-12.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-13.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-14.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/manifest-bad.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/manifest.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/rdf-schema.out
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/rdf-schema.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/rdfq-results.out
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/rdfq-results.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/rdfs-namespace.out
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/rdfs-namespace.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-00.out
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-00.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-01.out
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-01.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-02.out
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-02.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-03.out
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-03.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-04.out
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-04.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-05.out
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-05.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-06.out
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-06.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-07.out
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-07.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-08.out
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-08.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-09.out
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-09.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-10.out
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-10.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-11.out
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-11.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-12.out
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-12.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-13.out
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-13.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-14.out
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-14.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-15.out
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-15.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-16.out
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-16.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-17.out
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-17.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-18.out
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-18.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-19.out
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-19.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-20.out
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-20.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-21.out
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-21.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-22.out
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-22.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-23.out
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-23.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-24.out
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-24.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-25.out
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-25.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-26.out
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-26.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-27.out
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-27.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-28-out.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-28.out
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-28.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-29.out
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-29.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-30.out
    jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/test-30.ttl
    jena/Experimental/riot-reader/testing/RIOT/Lang/manifest-all.ttl
Modified:
    jena/Experimental/riot-reader/.classpath
    jena/Experimental/riot-reader/pom.xml
    jena/Experimental/riot-reader/src/main/java/dev/PROJECT_RiotReader.java

Modified: jena/Experimental/riot-reader/.classpath
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/.classpath?rev=1397518&r1=1397517&r2=1397518&view=diff
==============================================================================
--- jena/Experimental/riot-reader/.classpath (original)
+++ jena/Experimental/riot-reader/.classpath Fri Oct 12 11:21:55 2012
@@ -1,7 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
-
+	<classpathentry kind="src" output="target/classes" path="src/main/java">
+		<attributes>
+			<attribute name="optional" value="true"/>
+			<attribute name="maven.pomderived" value="true"/>
+		</attributes>
+	</classpathentry>
 	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
 		<attributes>
 			<attribute name="maven.pomderived" value="true"/>

Modified: jena/Experimental/riot-reader/pom.xml
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/pom.xml?rev=1397518&r1=1397517&r2=1397518&view=diff
==============================================================================
--- jena/Experimental/riot-reader/pom.xml (original)
+++ jena/Experimental/riot-reader/pom.xml Fri Oct 12 11:21:55 2012
@@ -37,6 +37,15 @@
       <artifactId>jena-arq</artifactId>
       <version>2.9.4-SNAPSHOT</version>
       <classifier>tests</classifier>
+      <scope>test</scope>
+    </dependency>
+
+   <dependency>
+      <groupId>org.apache.jena</groupId>
+      <artifactId>jena-core</artifactId>
+      <version>2.7.4-SNAPSHOT</version>
+      <classifier>tests</classifier>
+      <scope>test</scope>
     </dependency>
 
     <dependency>

Added: jena/Experimental/riot-reader/rdflangtest
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/rdflangtest?rev=1397518&view=auto
==============================================================================
--- jena/Experimental/riot-reader/rdflangtest (added)
+++ jena/Experimental/riot-reader/rdflangtest Fri Oct 12 11:21:55 2012
@@ -0,0 +1,14 @@
+#!/bin/sh
+## Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
+
+BASE="$HOME/Projects/riot-reader"
+CP="/home/afs/.m2/repo/commons-codec/commons-codec/1.5/commons-codec-1.5.jar:/home/afs/.m2/repo/junit/junit/4.9/junit-4.9.jar:/home/afs/.m2/repo/log4j/log4j/1.2.16/log4j-1.2.16.jar:/home/afs/.m2/repo/org/apache/httpcomponents/httpclient/4.1.2/httpclient-4.1.2.jar:/home/afs/.m2/repo/org/apache/httpcomponents/httpcore/4.1.3/httpcore-4.1.3.jar:/home/afs/.m2/repo/org/apache/jena/jena-arq/2.9.4-SNAPSHOT/jena-arq-2.9.4-SNAPSHOT-tests.jar:/home/afs/.m2/repo/org/apache/jena/jena-arq/2.9.4-SNAPSHOT/jena-arq-2.9.4-SNAPSHOT.jar:/home/afs/.m2/repo/org/apache/jena/jena-core/2.7.4-SNAPSHOT/jena-core-2.7.4-SNAPSHOT-tests.jar:/home/afs/.m2/repo/org/apache/jena/jena-core/2.7.4-SNAPSHOT/jena-core-2.7.4-SNAPSHOT.jar:/home/afs/.m2/repo/org/apache/jena/jena-iri/0.9.4-SNAPSHOT/jena-iri-0.9.4-SNAPSHOT.jar:/home/afs/.m2/repo/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar:/home/afs/.m2/repo/org/slf4j/jcl-over-slf4j/1.6.4/jcl-over-slf4j-1.6.4.jar:/home/afs/.m2/repo/org/slf4j/slf4j-api/1.6.4/slf
 4j-api-1.6.4.jar:/home/afs/.m2/repo/org/slf4j/slf4j-log4j12/1.6.4/slf4j-log4j12-1.6.4.jar:/home/afs/.m2/repo/xerces/xercesImpl/2.10.0/xercesImpl-2.10.0.jar:/home/afs/.m2/repo/xml-apis/xml-apis/1.4.01/xml-apis-1.4.01.jar"
+
+if [ -e "$BASE/target/classes" ]
+then 
+    CP="$BASE/target/classes:$BASE/target/test-classes:$CP"
+fi
+
+# CP="$(run-cp)"
+#echo $CP
+java -cp "$CP" riotcmd.rdflangtest "$@"

Propchange: jena/Experimental/riot-reader/rdflangtest
------------------------------------------------------------------------------
    svn:executable = *

Modified: jena/Experimental/riot-reader/src/main/java/dev/PROJECT_RiotReader.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/src/main/java/dev/PROJECT_RiotReader.java?rev=1397518&r1=1397517&r2=1397518&view=diff
==============================================================================
--- jena/Experimental/riot-reader/src/main/java/dev/PROJECT_RiotReader.java (original)
+++ jena/Experimental/riot-reader/src/main/java/dev/PROJECT_RiotReader.java Fri Oct 12 11:21:55 2012
@@ -21,6 +21,9 @@ package dev;
 
 public class PROJECT_RiotReader
 {
+    // Replace all manifest test suites in ARQ/RIOT with new code.
+    // Sepearate out manifest and junit-direct tests (two packages)  
+    
     // Check ContentType vs MediaType => MediaType (code) , correct name is ?  
     
     // Tests:

Added: jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/TS_LangSuite.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/TS_LangSuite.java?rev=1397518&view=auto
==============================================================================
--- jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/TS_LangSuite.java (added)
+++ jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/TS_LangSuite.java Fri Oct 12 11:21:55 2012
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.riot;
+
+import org.apache.jena.riot.langsuite.TestSuiteTurtle ;
+import org.junit.AfterClass ;
+import org.junit.BeforeClass ;
+import org.junit.runner.RunWith ;
+import org.junit.runners.Suite ;
+import org.openjena.riot.ErrorHandlerFactory ;
+
+/** The test suites - these are driven by a manifest file and use external files for tests */
+
+@RunWith(Suite.class)
+@Suite.SuiteClasses( {
+    TestSuiteTurtle.class
+//    , TestSuiteTrig.class
+//    , TestSuiteRDFJSON.class
+})
+
+public class TS_LangSuite
+{
+    @BeforeClass public static void beforeClass()
+    { 
+        ErrorHandlerFactory.setTestLogging(false) ;
+    }
+
+    @AfterClass public static void afterClass()
+    { 
+        ErrorHandlerFactory.setTestLogging(true) ;
+    }
+
+}
+

Added: jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/langsuite/FactoryTestRiotTurtle.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/langsuite/FactoryTestRiotTurtle.java?rev=1397518&view=auto
==============================================================================
--- jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/langsuite/FactoryTestRiotTurtle.java (added)
+++ jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/langsuite/FactoryTestRiotTurtle.java Fri Oct 12 11:21:55 2012
@@ -0,0 +1,115 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.riot.langsuite ;
+
+import junit.framework.Test ;
+import junit.framework.TestSuite ;
+import org.openjena.riot.RiotException ;
+import org.openjena.riot.TestVocabRIOT ;
+
+import com.hp.hpl.jena.rdf.model.Resource ;
+import com.hp.hpl.jena.sparql.vocabulary.VocabTestQuery ;
+import com.hp.hpl.jena.util.junit.TestFactoryManifest ;
+import com.hp.hpl.jena.util.junit.TestUtils ;
+import com.hp.hpl.jena.vocabulary.RDF ;
+
+public class FactoryTestRiotTurtle extends TestFactoryManifest
+{
+
+    public static TestSuite make(String manifest, Resource dftTestType, String labelPrefix)
+    {
+        return new FactoryTestRiotTurtle(dftTestType, labelPrefix).process(manifest) ;
+    }
+
+    private Resource dftTestType ;
+    private String labelPrefix ;
+
+    public FactoryTestRiotTurtle(Resource dftTestType, String labelPrefix)
+    {
+        // FileManager? 
+        
+        this.dftTestType = dftTestType ;
+        this.labelPrefix = labelPrefix ;
+    }
+    
+    @Override
+    public Test makeTest(Resource manifest, Resource item, String testName, Resource action, Resource result)
+    {
+        try
+        {
+            Resource r = TestUtils.getResource(item, RDF.type) ;
+            if ( r == null )
+                r = dftTestType ;
+            if ( r == null )
+                throw new RiotException("Can't determine the test type") ;
+            
+            if ( labelPrefix != null )
+                testName = labelPrefix+testName ;
+            
+            // In Turtle tests, the action directly names the file to process.
+            Resource input = action ;
+            Resource output = result ; 
+//            // Convert baseIRI.
+//            Resource inputIRIr = TestUtils.getResource(action, TestVocabRIOT.inputIRI) ;
+//            String baseIRI = (inputIRIr == null) ? null : inputIRIr.getURI() ;
+            // !!
+            
+            String baseIRI = TestVocabRIOT.assumedBaseURI ;
+            String x = input.getLocalName() ;
+            // Yuk, yuk, yuk.
+            baseIRI = baseIRI+x ;
+
+            if (r.equals(VocabLangRDF.TestPositiveSyntaxTTL) )
+                return new UnitTestTurtleSyntax(testName, input.getURI()) ;
+            
+            if (r.equals(VocabLangRDF.TestNegativeSyntaxTTL) )
+                return new UnitTestTurtleBadSyntax(testName, input.getURI()) ;
+            
+            if (r.equals(VocabLangRDF.TestPositiveEvalTTL) )
+                return new UnitTestTurtleEval(testName, input.getURI(), result.getURI(), baseIRI) ;
+                
+            if (r.equals(VocabLangRDF.TestNegativeEvalTTL) )
+                return new UnitTestTurtleBadEval(testName, input.getURI(), result.getURI(), baseIRI) ;
+                
+            if ( r.equals(VocabLangRDF.TestSurpressed ))
+                return new UnitTestSurpressed(testName) ;
+
+            
+//            // Old vocab
+//            if (r.equals(TestVocabRIOT.TestInOut))
+//                return new UnitTestTurtle(testName, input.getURI(), output.getURI(), baseIRI) ;
+//
+//            if (r.equals(TestVocabRIOT.TestSyntax))
+//                return new UnitTestTurtleSyntax(testName, input.getURI()) ;
+//
+//            if (r.equals(TestVocabRIOT.TestBadSyntax))
+//                return new UnitTestTurtleBadSyntax(testName, input.getURI()) ;
+
+            System.err.println("Unrecognized turtle test : " + testName) ;
+            return null ;
+
+        } catch (Exception ex)
+        {
+            ex.printStackTrace(System.err) ;
+            System.err.println("Failed to grok test : " + testName) ;
+            return null ;
+        }
+    }
+
+}

Added: jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/langsuite/TestSuiteTurtle.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/langsuite/TestSuiteTurtle.java?rev=1397518&view=auto
==============================================================================
--- jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/langsuite/TestSuiteTurtle.java (added)
+++ jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/langsuite/TestSuiteTurtle.java Fri Oct 12 11:21:55 2012
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.riot.langsuite;
+
+
+import junit.framework.TestSuite ;
+import org.junit.runner.RunWith ;
+import org.junit.runners.AllTests ;
+import org.openjena.riot.TestVocabRIOT ;
+
+@RunWith(AllTests.class)
+public class TestSuiteTurtle extends TestSuite
+{
+    // The base URI of the test directory in the submission
+    // NB The test results use http://www.w3.org/2001/sw/DataAccess/df1/tests/ in N-Triples (??!!)
+    private static final String manifest1 = "testing/RIOT/manifest-turtle.ttl" ;
+
+    static public TestSuite suite()
+    {
+        TestSuite ts = new TestSuite("Turtle") ;
+        ts.addTest(FactoryTestRiotTurtle.make(manifest1, TestVocabRIOT.TestInOut, "Turtle-")) ;
+        return ts ;
+    }
+}

Added: jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/langsuite/UnitTestSurpressed.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/langsuite/UnitTestSurpressed.java?rev=1397518&view=auto
==============================================================================
--- jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/langsuite/UnitTestSurpressed.java (added)
+++ jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/langsuite/UnitTestSurpressed.java Fri Oct 12 11:21:55 2012
@@ -0,0 +1,34 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.riot.langsuite;
+
+import junit.framework.TestCase ;
+
+public class UnitTestSurpressed extends TestCase
+{
+    public UnitTestSurpressed(String name)
+    {
+        super(name) ;
+    }
+    
+    @Override
+    public void runTest()
+    { }
+}
+

Added: jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/langsuite/UnitTestTurtleBadEval.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/langsuite/UnitTestTurtleBadEval.java?rev=1397518&view=auto
==============================================================================
--- jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/langsuite/UnitTestTurtleBadEval.java (added)
+++ jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/langsuite/UnitTestTurtleBadEval.java Fri Oct 12 11:21:55 2012
@@ -0,0 +1,92 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.riot.langsuite;
+
+
+import java.io.InputStream ;
+import java.io.Reader ;
+
+import junit.framework.TestCase ;
+import org.openjena.atlas.io.PeekReader ;
+import org.openjena.riot.RiotParseException ;
+import org.openjena.riot.system.JenaReaderNTriples2 ;
+import org.openjena.riot.system.JenaReaderTurtle2 ;
+
+import com.hp.hpl.jena.rdf.model.Model ;
+import com.hp.hpl.jena.rdf.model.ModelFactory ;
+import com.hp.hpl.jena.rdf.model.RDFReader ;
+import com.hp.hpl.jena.util.FileManager ;
+import com.hp.hpl.jena.util.FileUtils ;
+
+public class UnitTestTurtleBadEval extends TestCase
+{
+    String input ;
+    String output ;
+    String baseIRI ;
+    
+    public UnitTestTurtleBadEval(String name, String input, String output, String baseIRI)
+    {
+        super(name) ;
+        this.input = input ;
+        this.output = output ;
+        this.baseIRI = baseIRI ;
+    }
+    
+    @Override
+    public void runTest()
+    {
+        Model model = ModelFactory.createDefaultModel() ;
+        RDFReader t = new JenaReaderTurtle2() ;
+        try {
+            if ( baseIRI != null )
+            {
+                InputStream in =  FileManager.get().open(input) ;
+                Reader r = PeekReader.makeUTF8(in) ;
+                t.read(model, r, baseIRI) ;
+            }
+            else
+                t.read(model, input) ;  
+
+            String syntax = FileUtils.guessLang(output, FileUtils.langNTriple) ;
+            Model results = ModelFactory.createDefaultModel() ;
+            new JenaReaderNTriples2().read(results, output) ;
+
+            boolean b = model.isIsomorphicWith(results) ;
+            assertFalse("Expected non-isomorphics models", b) ;
+            
+//            if ( b )
+//            {
+//                //model.isIsomorphicWith(results) ;
+//                System.out.println("---- Parsed");
+//                model.write(System.out, "TTL") ;
+//                System.out.println("---- Expected");
+//                results.write(System.out, "TTL") ;
+//                System.out.println("--------");
+//            }
+        } catch (RiotParseException ex)
+        {
+            // Catch and retrhow - debugging.
+            throw ex ;    
+        }
+        catch (RuntimeException ex) 
+        { 
+            ex.printStackTrace(System.err) ;
+            throw ex ; }
+    }
+}

Added: jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/langsuite/UnitTestTurtleBadSyntax.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/langsuite/UnitTestTurtleBadSyntax.java?rev=1397518&view=auto
==============================================================================
--- jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/langsuite/UnitTestTurtleBadSyntax.java (added)
+++ jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/langsuite/UnitTestTurtleBadSyntax.java Fri Oct 12 11:21:55 2012
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.riot.langsuite;
+
+import java.io.InputStream ;
+
+import junit.framework.TestCase ;
+import org.openjena.atlas.io.IO ;
+import org.openjena.atlas.lib.SinkNull ;
+import org.openjena.riot.RiotException ;
+import org.openjena.riot.RiotReader ;
+import org.openjena.riot.lang.LangRIOT ;
+
+import com.hp.hpl.jena.graph.Triple ;
+
+
+public class UnitTestTurtleBadSyntax extends TestCase
+{
+    private final String uri ;
+    public UnitTestTurtleBadSyntax(String name, String uri) { super(name) ; this.uri = uri ; }
+    
+    @Override
+    public void runTest()
+    {
+        InputStream in = IO.openFile(uri) ;
+        assertNotNull(in) ;
+        LangRIOT parser = RiotReader.createParserTurtle(in, uri, new SinkNull<Triple>()) ;
+        try {
+            parser.parse() ;
+        } catch (RiotException ex) { return ; }
+        fail("Bad syntax Turtle test succeed in parsing the file") ;
+    }
+}

Added: jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/langsuite/UnitTestTurtleEval.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/langsuite/UnitTestTurtleEval.java?rev=1397518&view=auto
==============================================================================
--- jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/langsuite/UnitTestTurtleEval.java (added)
+++ jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/langsuite/UnitTestTurtleEval.java Fri Oct 12 11:21:55 2012
@@ -0,0 +1,91 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.riot.langsuite;
+
+
+import java.io.InputStream ;
+import java.io.Reader ;
+
+import junit.framework.TestCase ;
+import org.openjena.atlas.io.PeekReader ;
+import org.openjena.riot.RiotParseException ;
+import org.openjena.riot.system.JenaReaderNTriples2 ;
+import org.openjena.riot.system.JenaReaderTurtle2 ;
+
+import com.hp.hpl.jena.rdf.model.Model ;
+import com.hp.hpl.jena.rdf.model.ModelFactory ;
+import com.hp.hpl.jena.rdf.model.RDFReader ;
+import com.hp.hpl.jena.util.FileManager ;
+import com.hp.hpl.jena.util.FileUtils ;
+
+public class UnitTestTurtleEval extends TestCase
+{
+    String input ;
+    String output ;
+    String baseIRI ;
+    
+    public UnitTestTurtleEval(String name, String input, String output, String baseIRI)
+    {
+        super(name) ;
+        this.input = input ;
+        this.output = output ;
+        this.baseIRI = baseIRI ;
+    }
+    
+    @Override
+    public void runTest()
+    {
+        Model model = ModelFactory.createDefaultModel() ;
+        RDFReader t = new JenaReaderTurtle2() ;
+        try {
+            if ( baseIRI != null )
+            {
+                InputStream in =  FileManager.get().open(input) ;
+                Reader r = PeekReader.makeUTF8(in) ;
+                t.read(model, r, baseIRI) ;
+            }
+            else
+                t.read(model, input) ;  
+            String syntax = FileUtils.guessLang(output, FileUtils.langNTriple) ;
+            Model results = ModelFactory.createDefaultModel() ;
+            new JenaReaderNTriples2().read(results, output) ;
+
+            boolean b = model.isIsomorphicWith(results) ;
+            if ( !b )
+            {
+                //model.isIsomorphicWith(results) ;
+                System.out.println("---- Parsed");
+                model.write(System.out, "TTL") ;
+                System.out.println("---- Expected");
+                results.write(System.out, "TTL") ;
+                System.out.println("--------");
+            }
+            
+            assertTrue("Models not isomorphic", b) ;
+        } catch (RiotParseException ex)
+        {
+            // Catch and retrhow - debugging.
+            throw ex ;    
+        }
+        catch (RuntimeException ex) 
+        { 
+            ex.printStackTrace(System.err) ;
+            throw ex ; }
+    }
+}

Added: jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/langsuite/UnitTestTurtleSyntax.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/langsuite/UnitTestTurtleSyntax.java?rev=1397518&view=auto
==============================================================================
--- jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/langsuite/UnitTestTurtleSyntax.java (added)
+++ jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/langsuite/UnitTestTurtleSyntax.java Fri Oct 12 11:21:55 2012
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.riot.langsuite;
+
+import java.io.InputStream ;
+
+import junit.framework.TestCase ;
+import org.openjena.atlas.io.IO ;
+import org.openjena.atlas.lib.SinkNull ;
+import org.openjena.riot.RiotException ;
+import org.openjena.riot.RiotReader ;
+import org.openjena.riot.lang.LangRIOT ;
+
+import com.hp.hpl.jena.graph.Triple ;
+
+
+public class UnitTestTurtleSyntax extends TestCase
+{
+    private final String uri ;
+    public UnitTestTurtleSyntax(String name, String uri) { super(name) ; this.uri = uri ; }
+    
+    @Override
+    public void runTest()
+    {
+        InputStream in = IO.openFile(uri) ;
+        assertNotNull(in) ;
+        LangRIOT parser = RiotReader.createParserTurtle(in, uri, new SinkNull<Triple>()) ;
+        try {
+            parser.parse() ;
+        } catch (RiotException ex) {
+            // Debug point
+            throw ex ;
+        }
+    }
+
+}

Added: jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/langsuite/VocabLangRDF.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/langsuite/VocabLangRDF.java?rev=1397518&view=auto
==============================================================================
--- jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/langsuite/VocabLangRDF.java (added)
+++ jena/Experimental/riot-reader/src/test/java/org/apache/jena/riot/langsuite/VocabLangRDF.java Fri Oct 12 11:21:55 2012
@@ -0,0 +1,52 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.riot.langsuite;
+
+import com.hp.hpl.jena.rdf.model.Model ;
+import com.hp.hpl.jena.rdf.model.ModelFactory ;
+import com.hp.hpl.jena.rdf.model.Resource ;
+
+public class VocabLangRDF
+{
+    public static String assumedBaseURI = "http://example/base/" ;
+
+    /** <p>The RDF model that holds the vocabulary terms</p> */
+    private static Model m_model = ModelFactory.createDefaultModel();
+
+    /** <p>The namespace of the vocabulary as a string</p> */
+    public static final String NS = "http://www.w3.org/ns/rdftest#" ;
+
+    /** <p>The namespace of the vocabulary as a string</p>
+     *  @see #NS */
+    public static String getURI() {return NS;}
+
+    /** <p>The namespace of the vocabulary as a resource</p> */
+    public static final Resource NAMESPACE = m_model.createResource( NS );
+
+    public static final Resource TestPositiveSyntaxTTL  = m_model.createResource( NS+"TestTurtlePositiveSyntax" );
+
+    public static final Resource TestNegativeSyntaxTTL  = m_model.createResource( NS+"TestTurtleNegativeSyntax" );
+
+    public static final Resource TestPositiveEvalTTL    = m_model.createResource( NS+"TestTurtlePositiveEval" );
+
+    public static final Resource TestNegativeEvalTTL    = m_model.createResource( NS+"TestTurtleNegativeEval" );
+
+    public static final Resource TestSurpressed         = m_model.createResource( NS+"Test" );
+}
+

Added: jena/Experimental/riot-reader/src/test/java/riotcmd/MainLangTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/src/test/java/riotcmd/MainLangTest.java?rev=1397518&view=auto
==============================================================================
--- jena/Experimental/riot-reader/src/test/java/riotcmd/MainLangTest.java (added)
+++ jena/Experimental/riot-reader/src/test/java/riotcmd/MainLangTest.java Fri Oct 12 11:21:55 2012
@@ -0,0 +1,28 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package riotcmd;
+
+public class MainLangTest
+{
+    public static void main(String ... argv)
+    {
+        riotcmd.rdflangtest.main("manifest.ttl") ;
+    }
+}
+

Added: jena/Experimental/riot-reader/src/test/java/riotcmd/rdflangtest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/src/test/java/riotcmd/rdflangtest.java?rev=1397518&view=auto
==============================================================================
--- jena/Experimental/riot-reader/src/test/java/riotcmd/rdflangtest.java (added)
+++ jena/Experimental/riot-reader/src/test/java/riotcmd/rdflangtest.java Fri Oct 12 11:21:55 2012
@@ -0,0 +1,205 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package riotcmd;
+
+import junit.framework.TestSuite ;
+import org.apache.jena.riot.langsuite.FactoryTestRiotTurtle ;
+import org.openjena.riot.ErrorHandlerFactory ;
+import org.openjena.riot.SysRIOT ;
+import arq.cmd.CmdException ;
+import arq.cmd.TerminationException ;
+import arq.cmdline.ArgDecl ;
+import arq.cmdline.CmdGeneral ;
+import arq.cmdline.ModEngine ;
+import arq.cmdline.ModSymbol ;
+
+import com.hp.hpl.jena.graph.Node ;
+import com.hp.hpl.jena.n3.IRIResolver ;
+import com.hp.hpl.jena.query.ARQ ;
+import com.hp.hpl.jena.rdf.model.Literal ;
+import com.hp.hpl.jena.rdf.model.Model ;
+import com.hp.hpl.jena.rdf.model.Resource ;
+import com.hp.hpl.jena.sparql.expr.E_Function ;
+import com.hp.hpl.jena.sparql.expr.NodeValue ;
+import com.hp.hpl.jena.sparql.junit.EarlReport ;
+import com.hp.hpl.jena.sparql.junit.ScriptTestSuiteFactory ;
+import com.hp.hpl.jena.sparql.junit.SimpleTestRunner ;
+import com.hp.hpl.jena.sparql.util.NodeFactory ;
+import com.hp.hpl.jena.sparql.util.Utils ;
+import com.hp.hpl.jena.sparql.vocabulary.DOAP ;
+import com.hp.hpl.jena.sparql.vocabulary.FOAF ;
+import com.hp.hpl.jena.sparql.vocabulary.TestManifest ;
+import com.hp.hpl.jena.vocabulary.DC ;
+import com.hp.hpl.jena.vocabulary.DCTerms ;
+import com.hp.hpl.jena.vocabulary.RDF ;
+import com.hp.hpl.jena.vocabulary.XSD ;
+
+
+/** A program to execute RDF language test suites
+ * 
+ * <pre>
+ * Usage: 
+ *   [--all]
+ *   <i>testManifest</i>
+ *   [ --query <i>query</i> --data <i>data</i> --result <i>result</i> ] -- run one test
+ * </pre>
+ */
+
+public class rdflangtest extends CmdGeneral
+{
+    protected ModSymbol modSymbol = new ModSymbol() ;
+    ArgDecl  strictDecl = new ArgDecl(ArgDecl.NoValue, "strict") ;
+    protected boolean cmdStrictMode = false ; 
+
+    //protected ArgDecl allDecl =    new ArgDecl(ArgDecl.NoValue, "all") ;
+    protected ArgDecl earlDecl =   new ArgDecl(ArgDecl.NoValue, "earl") ;
+    
+    protected boolean createEarlReport = false;
+    
+    public static void main (String... argv)
+    {
+        SysRIOT.wireIntoJena() ;
+        try { new rdflangtest(argv).mainRun() ; }
+        catch (TerminationException ex) { System.exit(ex.getCode()) ; }
+    }
+    
+    public rdflangtest(String[] argv)
+    {
+        super(argv) ;
+        addModule(modSymbol) ;
+        super.add(strictDecl, "--strict", "Operate in strict mode (no extensions of any kind)") ;
+        super.modVersion.addClass(ARQ.class) ;
+        //add(allDecl, "--all", "run all tests") ;
+        getUsage().startCategory("Tests (execute test manifest)") ;
+        getUsage().addUsage("<manifest>", "run the tests specified in the given manifest") ;
+        add(earlDecl, "--earl", "create EARL report") ;
+    }
+    
+    protected ModEngine setModEngine()
+    {
+        return new ModEngine() ;
+    }
+    
+    @Override
+    protected String getCommandName() { return Utils.className(this) ; }
+    
+    @Override
+    protected String getSummary() { return getCommandName()+" [ --data=<file> --query=<query> --result=<results> ] | --all | --dawg | <manifest>" ; }
+    
+    @Override
+    protected void processModulesAndArgs()
+    {
+        if ( ! hasPositional() )
+            throw new CmdException("No manifest file") ;
+        createEarlReport = contains(earlDecl) ;
+    }
+    
+    @Override
+    protected void exec()
+    {
+        // Paradoxical naming - the boolean is a visibility flag.
+        ErrorHandlerFactory.setTestLogging(false) ;
+        
+        if ( cmdStrictMode )
+            ARQ.setStrictMode() ;
+        
+        NodeValue.VerboseWarnings = false ;
+        E_Function.WarnOnUnknownFunction = false ;
+            
+        
+        for ( String fn : getPositional() )
+        {
+            String testfile = IRIResolver.resolveGlobal(fn) ;
+            exec1(testfile) ;
+        }
+    }
+    
+    protected void exec1(String manifest)
+    {
+        if ( createEarlReport )
+            oneManifestEarl(manifest) ;
+        else
+            oneManifest(manifest) ;
+    }
+
+    static void oneManifest(String testManifest)
+    {
+        TestSuite suite = FactoryTestRiotTurtle.make(testManifest, null, null) ;
+
+        //junit.textui.TestRunner.run(suite) ;
+        SimpleTestRunner.runAndReport(suite) ;
+    }
+    
+    static void oneManifestEarl(String testManifest)
+    {
+        String name =  "ARQ" ;
+        String releaseName =  "ARQ" ;
+        String version = ARQ.VERSION ;
+        String homepage = "http://jena.apache.org/" ;
+        String systemURI = "http://jena.apache.org/#arq" ;  // Null for bNode.
+        
+        // Include information later.
+        EarlReport report = new EarlReport(systemURI, name, version, homepage) ;
+        ScriptTestSuiteFactory.results = report ;
+        
+        Model model = report.getModel() ;
+        model.setNsPrefix("dawg", TestManifest.getURI()) ;
+        
+        // Update the EARL report. 
+        Resource jena = model.createResource()
+                    .addProperty(FOAF.homepage, model.createResource("http://jena.apache.org/")) ;
+        
+        // ARQ is part fo Jena.
+        Resource arq = report.getSystem()
+                        .addProperty(DCTerms.isPartOf, jena) ;
+        
+        // Andy wrote the test software (updates the thing being tested as well as they are the same). 
+        Resource who = model.createResource(FOAF.Person)
+                                .addProperty(FOAF.name, "Andy Seaborne")
+                                .addProperty(FOAF.homepage, 
+                                             model.createResource("http://people.apache.org/~andy")) ;
+        
+        Resource reporter = report.getReporter() ;
+        reporter.addProperty(DC.creator, who) ;
+
+        model.setNsPrefix("doap", DOAP.getURI()) ; 
+        model.setNsPrefix("xsd", XSD.getURI()) ;
+        
+        // DAWG specific stuff.
+        Resource system = report.getSystem() ;
+        system.addProperty(RDF.type, DOAP.Project) ;
+        system.addProperty(DOAP.name, name) ;
+        system.addProperty(DOAP.homepage, homepage) ;
+        system.addProperty(DOAP.maintainer, who) ;
+        
+        Resource release = model.createResource(DOAP.Version) ;
+        system.addProperty(DOAP.release, release) ;
+        
+        Node today_node = NodeFactory.todayAsDate() ;
+        Literal today = model.createTypedLiteral(today_node.getLiteralLexicalForm(), today_node.getLiteralDatatype()) ;
+        release.addProperty(DOAP.created, today) ;
+        release.addProperty(DOAP.name, releaseName) ;      // Again
+        
+        TestSuite suite = ScriptTestSuiteFactory.make(testManifest) ;
+        SimpleTestRunner.runSilent(suite) ;
+        
+        ScriptTestSuiteFactory.results.getModel().write(System.out, "TTL") ;
+        
+    }
+ }

Added: jena/Experimental/riot-reader/testing/RIOT/Lang/Turtle/manifest.ttl
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/testing/RIOT/Lang/Turtle/manifest.ttl?rev=1397518&view=auto
==============================================================================
--- jena/Experimental/riot-reader/testing/RIOT/Lang/Turtle/manifest.ttl (added)
+++ jena/Experimental/riot-reader/testing/RIOT/Lang/Turtle/manifest.ttl Fri Oct 12 11:21:55 2012
@@ -0,0 +1,32 @@
+#  Licensed to the Apache Software Foundation (ASF) under one or more
+#  contributor license agreements.  See the NOTICE file distributed with
+#  this work for additional information regarding copyright ownership.
+#  The ASF licenses this file to You under the Apache License, Version 2.0
+#  (the "License"); you may not use this file except in compliance with
+#  the License.  You may obtain a copy of the License at
+# 
+#       http://www.apache.org/licenses/LICENSE-2.0
+# 
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+@prefix rdf:    <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix rdfs:	<http://www.w3.org/2000/01/rdf-schema#> .
+@prefix mf:     <http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#> .
+@prefix qt:     <http://www.w3.org/2001/sw/DataAccess/tests/test-query#> .
+
+@prefix rdft:   <http://www.w3.org/ns/rdftest#> .
+
+<>  rdf:type mf:Manifest ;
+    rdfs:comment "Turtle tests" ;
+    mf:entries
+    (
+     [  rdf:type     rdft:TestTurtlePositiveSyntax ;
+        mf:name      "test-00" ;
+        rdfs:comment "test-00" ;
+        mf:action    <test-00.ttl> ;
+     ]
+   ).

Added: jena/Experimental/riot-reader/testing/RIOT/Lang/Turtle/test-00.ttl
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/testing/RIOT/Lang/Turtle/test-00.ttl?rev=1397518&view=auto
==============================================================================
--- jena/Experimental/riot-reader/testing/RIOT/Lang/Turtle/test-00.ttl (added)
+++ jena/Experimental/riot-reader/testing/RIOT/Lang/Turtle/test-00.ttl Fri Oct 12 11:21:55 2012
@@ -0,0 +1,3 @@
+@prefix : <http://example/> .
+
+:s :p :o .

Added: jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/README_LICENSE
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/README_LICENSE?rev=1397518&view=auto
==============================================================================
--- jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/README_LICENSE (added)
+++ jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/README_LICENSE Fri Oct 12 11:21:55 2012
@@ -0,0 +1,8 @@
+These tests are taken from 
+http://www.w3.org/TeamSubmission/turtle/tests/
+and are licesned under the W3C 
+http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+
+The manifest files are added by Apache Jena 
+and are licensed under the Apache Software License:
+http://www.apache.org/licenses/LICENSE-2.0.html

Added: jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-00.ttl
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-00.ttl?rev=1397518&view=auto
==============================================================================
--- jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-00.ttl (added)
+++ jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-00.ttl Fri Oct 12 11:21:55 2012
@@ -0,0 +1,2 @@
+# prefix name must end in a :
+@prefix a <#> .

Added: jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-01.ttl
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-01.ttl?rev=1397518&view=auto
==============================================================================
--- jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-01.ttl (added)
+++ jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-01.ttl Fri Oct 12 11:21:55 2012
@@ -0,0 +1,3 @@
+# Forbidden by RDF - predicate cannot be blank
+@prefix : <http://example.org/base#> .
+:a [ :b :c ] :d .

Added: jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-02.ttl
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-02.ttl?rev=1397518&view=auto
==============================================================================
--- jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-02.ttl (added)
+++ jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-02.ttl Fri Oct 12 11:21:55 2012
@@ -0,0 +1,3 @@
+# Forbidden by RDF - predicate cannot be blank
+@prefix : <http://example.org/base#> .
+:a [] :b .

Added: jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-03.ttl
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-03.ttl?rev=1397518&view=auto
==============================================================================
--- jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-03.ttl (added)
+++ jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-03.ttl Fri Oct 12 11:21:55 2012
@@ -0,0 +1,3 @@
+# 'a' only allowed as a predicate
+@prefix : <http://example.org/base#> .
+a :a :b .

Added: jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-04.ttl
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-04.ttl?rev=1397518&view=auto
==============================================================================
--- jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-04.ttl (added)
+++ jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-04.ttl Fri Oct 12 11:21:55 2012
@@ -0,0 +1,3 @@
+# No comma is allowed in collections
+@prefix : <http://example.org/stuff/1.0/> .
+:a :b ( "apple", "banana" ) .

Added: jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-05.ttl
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-05.ttl?rev=1397518&view=auto
==============================================================================
--- jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-05.ttl (added)
+++ jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-05.ttl Fri Oct 12 11:21:55 2012
@@ -0,0 +1,4 @@
+# N3 {}s are not in Turtle
+@prefix : <http://example.org/stuff/1.0/> .
+{ :a :b :c . } :d :e .
+

Added: jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-06.ttl
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-06.ttl?rev=1397518&view=auto
==============================================================================
--- jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-06.ttl (added)
+++ jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-06.ttl Fri Oct 12 11:21:55 2012
@@ -0,0 +1,3 @@
+# is and of are not in turtle
+@prefix : <http://example.org/stuff/1.0/> .
+:a is :b of :c .

Added: jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-07.ttl
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-07.ttl?rev=1397518&view=auto
==============================================================================
--- jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-07.ttl (added)
+++ jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-07.ttl Fri Oct 12 11:21:55 2012
@@ -0,0 +1,4 @@
+# paths are not in turtle
+@prefix : <http://example.org/stuff/1.0/> .
+:a.:b.:c .
+:a^:b^:c .

Added: jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-08.ttl
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-08.ttl?rev=1397518&view=auto
==============================================================================
--- jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-08.ttl (added)
+++ jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-08.ttl Fri Oct 12 11:21:55 2012
@@ -0,0 +1,2 @@
+@keywords something.
+# @keywords is not in turtle

Added: jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-09.ttl
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-09.ttl?rev=1397518&view=auto
==============================================================================
--- jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-09.ttl (added)
+++ jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-09.ttl Fri Oct 12 11:21:55 2012
@@ -0,0 +1,3 @@
+# implies is not in turtle
+@prefix : <http://example.org/stuff/1.0/> .
+:a => :b .

Added: jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-10.ttl
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-10.ttl?rev=1397518&view=auto
==============================================================================
--- jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-10.ttl (added)
+++ jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-10.ttl Fri Oct 12 11:21:55 2012
@@ -0,0 +1,3 @@
+# equivalence is not in turtle
+@prefix : <http://example.org/stuff/1.0/> .
+:a = :b .

Added: jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-11.ttl
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-11.ttl?rev=1397518&view=auto
==============================================================================
--- jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-11.ttl (added)
+++ jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-11.ttl Fri Oct 12 11:21:55 2012
@@ -0,0 +1,3 @@
+# @forAll is not in turtle
+@prefix : <http://example.org/stuff/1.0/> .
+@forAll :x .

Added: jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-12.ttl
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-12.ttl?rev=1397518&view=auto
==============================================================================
--- jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-12.ttl (added)
+++ jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-12.ttl Fri Oct 12 11:21:55 2012
@@ -0,0 +1,3 @@
+# @forSome is not in turtle
+@prefix : <http://example.org/stuff/1.0/> .
+@forSome :x .

Added: jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-13.ttl
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-13.ttl?rev=1397518&view=auto
==============================================================================
--- jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-13.ttl (added)
+++ jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-13.ttl Fri Oct 12 11:21:55 2012
@@ -0,0 +1,3 @@
+# <= is not in turtle
+@prefix : <http://example.org/stuff/1.0/> .
+:a <= :b .

Added: jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-14.ttl
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-14.ttl?rev=1397518&view=auto
==============================================================================
--- jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-14.ttl (added)
+++ jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/bad-14.ttl Fri Oct 12 11:21:55 2012
@@ -0,0 +1,6 @@
+# Test long literals with missing end
+@prefix :  <http://example.org/ex#> .
+:a :b """a long
+	literal
+with
+newlines

Added: jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/manifest-bad.ttl
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/manifest-bad.ttl?rev=1397518&view=auto
==============================================================================
--- jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/manifest-bad.ttl (added)
+++ jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/manifest-bad.ttl Fri Oct 12 11:21:55 2012
@@ -0,0 +1,133 @@
+#  Licensed to the Apache Software Foundation (ASF) under one or more
+#  contributor license agreements.  See the NOTICE file distributed with
+#  this work for additional information regarding copyright ownership.
+#  The ASF licenses this file to You under the Apache License, Version 2.0
+#  (the "License"); you may not use this file except in compliance with
+#  the License.  You may obtain a copy of the License at
+# 
+#       http://www.apache.org/licenses/LICENSE-2.0
+# 
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+# The tests themselves are licenced under the W3C Software License.
+
+@prefix rdf:    <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix rdfs:	<http://www.w3.org/2000/01/rdf-schema#> .
+@prefix mf:     <http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#> .
+@prefix qt:     <http://www.w3.org/2001/sw/DataAccess/tests/test-query#> .
+@prefix rdft:   <http://www.w3.org/ns/rdftest#> .
+
+<>  rdf:type mf:Manifest ;
+    rdfs:comment "Turtle bad syntax test cases (must fail)" ;
+    mf:entries
+    (
+<#testsynbad00>
+<#testsynbad01>
+<#testsynbad02>
+<#testsynbad03>
+<#testsynbad04>
+<#testsynbad05>
+<#testsynbad06>
+<#testsynbad07>
+<#testsynbad08>
+<#testsynbad09>
+<#testsynbad10>
+<#testsynbad11>
+<#testsynbad12>
+<#testsynbad13>
+<#testsynbad14>
+    ) .
+
+<#testsynbad00> rdf:type rdft:TestTurtleNegativeSyntax ; 
+    mf:name      "bad-00" ;
+    rdfs:comment "prefix name must end in rdf:type :" ;
+    mf:action     <bad-00.ttl>
+    .    
+
+<#testsynbad01> rdf:type rdft:TestTurtleNegativeSyntax ; 
+    mf:name      "bad-01" ;
+    rdfs:comment "blank predicate forbidden" ;
+    mf:action     <bad-01.ttl>
+    .    
+
+<#testsynbad02> rdf:type rdft:TestTurtleNegativeSyntax ; 
+    mf:name      "bad-02" ;
+    rdfs:comment "blank predicate forbidden" ;
+    mf:action     <bad-02.ttl>
+    .    
+
+<#testsynbad03> rdf:type rdft:TestTurtleNegativeSyntax ; 
+    mf:name      "bad-03" ;
+    rdfs:comment "a forbidden as subject" ;
+    mf:action     <bad-03.ttl>
+    .    
+
+<#testsynbad04> rdf:type rdft:TestTurtleNegativeSyntax ; 
+    mf:name      "bad-04" ;
+    rdfs:comment ", not allowed in collections" ;
+    mf:action     <bad-04.ttl>
+    .    
+
+<#testsynbad05> rdf:type rdft:TestTurtleNegativeSyntax ; 
+    mf:name      "bad-05" ;
+    rdfs:comment "{} not allowed in Turtle" ;
+    mf:action     <bad-05.ttl>
+    .    
+
+<#testsynbad06> rdf:type rdft:TestTurtleNegativeSyntax ; 
+    mf:name      "bad-06" ;
+    rdfs:comment "is and of not allowed in Turtle" ;
+    mf:action     <bad-06.ttl>
+    .    
+
+<#testsynbad07> rdf:type rdft:TestTurtleNegativeSyntax ; 
+    mf:name      "bad-07" ;
+    rdfs:comment "paths not allowed in Turtle" ;
+    mf:action     <bad-07.ttl>
+    .    
+
+<#testsynbad08> rdf:type rdft:TestTurtleNegativeSyntax ; 
+    mf:name      "bad-08" ;
+    rdfs:comment "@keywords not allowed in Turtle" ;
+    mf:action     <bad-08.ttl>
+    .    
+
+<#testsynbad09> rdf:type rdft:TestTurtleNegativeSyntax ; 
+    mf:name      "bad-09" ;
+    rdfs:comment "=> not allowed in Turtle" ;
+    mf:action     <bad-09.ttl>
+    .    
+
+<#testsynbad10> rdf:type rdft:TestTurtleNegativeSyntax ; 
+    mf:name      "bad-10" ;
+    rdfs:comment "= not allowed in Turtle" ;
+    mf:action     <bad-10.ttl>
+    .    
+
+<#testsynbad11> rdf:type rdft:TestTurtleNegativeSyntax ; 
+        mf:name  "bad-11" ;
+        rdfs:comment "@forAll not allowed in Turtle" ;
+        mf:action   <bad-11.ttl>
+        .
+
+<#testsynbad12> rdf:type rdft:TestTurtleNegativeSyntax ; 
+    mf:name      "bad-12" ;
+    rdfs:comment "@forSome not allowed in Turtle" ;
+    mf:action     <bad-12.ttl>
+    .    
+
+<#testsynbad13> rdf:type rdft:TestTurtleNegativeSyntax ; 
+    mf:name      "bad-13" ;
+    rdfs:comment "<= not allowed in Turtle" ;
+    mf:action     <bad-13.ttl>
+    .    
+
+<#testsynbad14> rdf:type rdft:TestTurtleNegativeSyntax ; 
+    mf:name      "bad-14" ;
+    rdfs:comment "long literal with missing end" ;
+    mf:action     <bad-14.ttl>
+    .    

Added: jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/manifest.ttl
URL: http://svn.apache.org/viewvc/jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/manifest.ttl?rev=1397518&view=auto
==============================================================================
--- jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/manifest.ttl (added)
+++ jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/manifest.ttl Fri Oct 12 11:21:55 2012
@@ -0,0 +1,303 @@
+#  Licensed to the Apache Software Foundation (ASF) under one or more
+#  contributor license agreements.  See the NOTICE file distributed with
+#  this work for additional information regarding copyright ownership.
+#  The ASF licenses this file to You under the Apache License, Version 2.0
+#  (the "License"); you may not use this file except in compliance with
+#  the License.  You may obtain a copy of the License at
+# 
+#       http://www.apache.org/licenses/LICENSE-2.0
+# 
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+# The tests themselves are licenced under the W3C Software License.
+
+@prefix rdf:    <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix rdfs:	<http://www.w3.org/2000/01/rdf-schema#> .
+@prefix mf:     <http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#> .
+@prefix qt:     <http://www.w3.org/2001/sw/DataAccess/tests/test-query#> .
+
+@prefix rdft:   <http://www.w3.org/ns/rdftest#> .
+
+<>  rdf:type mf:Manifest ;
+    rdfs:comment "Turtle test cases - from the Turtle submission then cleaned up" ;
+    mf:entries
+    (
+<#testeval00>
+<#testeval01>
+<#testeval02>
+<#testeval03>
+<#testeval04>
+<#testeval05>
+<#testeval06>
+<#testeval07>
+<#testeval08>
+<#testeval09>
+<#testeval10>
+<#testeval11>
+<#testeval12>
+<#testeval13>
+<#testeval14>
+<#testeval15>
+<#testeval16>
+<#testeval17>
+<#testeval18>
+<#testeval19>
+<#testeval20>
+<#testeval21>
+<#testeval22>
+<#testeval23>
+<#testeval24>
+<#testeval25>
+<#testeval26>
+<#testeval27>
+<#testeval28>
+<#testeval29>
+<#testeval30>
+
+<#testeval-misc1>
+<#testeval-misc2>
+<#testeval-misc3>
+    ) .
+
+
+<#testeval00> rdf:type rdft:TestTurtlePositiveEval ;
+    mf:name      "test-00" ;
+    rdfs:comment "Blank subject" ;
+    mf:action    <test-00.ttl> ;
+    mf:result    <test-00.out>
+    .
+
+<#testeval01> rdf:type rdft:TestTurtlePositiveEval ;
+    mf:name      "test-01" ;
+    rdfs:comment "@prefix and qnames" ;
+    mf:action    <test-01.ttl> ;
+    mf:result    <test-01.out>
+    .
+
+<#testeval02> rdf:type rdft:TestTurtlePositiveEval ;
+    mf:name      "test-02" ;
+    rdfs:comment ", operator" ;
+    mf:action    <test-02.ttl> ;
+    mf:result    <test-02.out>
+    .
+
+<#testeval03> rdf:type rdft:TestTurtlePositiveEval ;
+    mf:name      "test-03" ;
+    rdfs:comment "; operator" ;
+    mf:action    <test-03.ttl> ;
+    mf:result    <test-03.out>
+    .
+
+<#testeval04> rdf:type rdft:TestTurtlePositiveEval ;
+    mf:name      "test-04" ;
+    rdfs:comment "empty [] as subject and object" ;
+    mf:action    <test-04.ttl> ;
+    mf:result    <test-04.out>
+    .
+
+<#testeval05> rdf:type rdft:TestTurtlePositiveEval ;
+    mf:name      "test-05" ;
+    rdfs:comment "non-empty [] as subject and object" ;
+    mf:action    <test-05.ttl> ;
+    mf:result    <test-05.out>
+    .
+
+<#testeval06> rdf:type rdft:TestTurtlePositiveEval ;
+    mf:name      "test-06" ;
+    rdfs:comment "'a' as predicate" ;
+    mf:action    <test-06.ttl> ;
+    mf:result    <test-06.out>
+    .
+
+<#testeval07> rdf:type rdft:TestTurtlePositiveEval ;
+    mf:name      "test-07" ;
+    rdfs:comment "simple collection" ;
+    mf:action    <test-07.ttl> ;
+    mf:result    <test-07.out>
+    .
+
+<#testeval08> rdf:type rdft:TestTurtlePositiveEval ;
+    mf:name      "test-08" ;
+    rdfs:comment "empty collection" ;
+    mf:action    <test-08.ttl> ;
+    mf:result    <test-08.out>
+    .
+
+<#testeval09> rdf:type rdft:TestTurtlePositiveEval ;
+    mf:name      "test-09" ;
+    rdfs:comment "integer datatyped literal" ;
+    mf:action    <test-09.ttl> ;
+    mf:result    <test-09.out>
+    .
+
+<#testeval10> rdf:type rdft:TestTurtlePositiveEval ;
+    mf:name      "test-10" ;
+    rdfs:comment "decimal integer canonicalization" ;
+    mf:action    <test-10.ttl> ;
+    mf:result    <test-10.out>
+    .
+
+<#testeval11> rdf:type rdft:TestTurtlePositiveEval ;
+    mf:name      "test-11" ;
+    rdfs:comment "- and _ in names and qnames" ;
+    mf:action    <test-11.ttl> ;
+    mf:result    <test-11.out>
+    .
+
+<#testeval12> rdf:type rdft:TestTurtlePositiveEval ;
+    mf:name      "test-12" ;
+    rdfs:comment "tests for rdf:_<numbers> and other qnames starting with _" ;
+    mf:action    <test-12.ttl> ;
+    mf:result    <test-12.out>
+    .
+
+<#testeval13> rdf:type rdft:TestTurtlePositiveEval ;
+    mf:name      "test-13" ;
+    rdfs:comment "bare : allowed" ;
+    mf:action    <test-13.ttl> ;
+    mf:result    <test-13.out>
+    .
+
+<#testeval14> rdf:type rdft:TestTurtlePositiveEval ;
+    mf:name      "test-14" ;
+    rdfs:comment "10000 triples, more than the default Bison stack size" ;
+    mf:action    <test-14.ttl> ;
+    mf:result    <test-14.out>
+    .
+
+<#testeval15> rdf:type rdft:TestTurtlePositiveEval ;
+    mf:name      "test-15" ;
+    rdfs:comment "10000 triple objects (10000 triples)" ;
+    mf:action    <test-15.ttl> ;
+    mf:result    <test-15.out>
+    .
+
+<#testeval16> rdf:type rdft:TestTurtlePositiveEval ;
+    mf:name      "test-16" ;
+    rdfs:comment "10000 items (10000 triples)" ;
+    mf:action    <test-16.ttl> ;
+    mf:result    <test-16.out>
+    .
+
+<#testeval17> rdf:type rdft:TestTurtlePositiveEval ;
+    mf:name      "test-17" ;
+    rdfs:comment "simple long literal" ;
+    mf:action    <test-17.ttl> ;
+    mf:result    <test-17.out>
+    .
+
+<#testeval18> rdf:type rdft:TestTurtlePositiveEval ;
+    mf:name      "test-18" ;
+    rdfs:comment "long literals with escapes" ;
+    mf:action    <test-18.ttl> ;
+    mf:result    <test-18.out>
+    .
+
+<#testeval19> rdf:type rdft:TestTurtlePositiveEval ;
+    mf:name      "test-19" ;
+    rdfs:comment "floating point number" ;
+    mf:action    <test-19.ttl> ;
+    mf:result    <test-19.out>
+    .
+
+<#testeval20> rdf:type rdft:TestTurtlePositiveEval ;
+    mf:name      "test-20" ;
+    rdfs:comment "empty literals, normal and long variant" ;
+    mf:action    <test-20.ttl> ;
+    mf:result    <test-20.out>
+    .
+
+<#testeval21> rdf:type rdft:TestTurtlePositiveEval ;
+    mf:name      "test-21" ;
+    rdfs:comment "positive integer, decimal and doubles" ;
+    mf:action    <test-21.ttl> ;
+    mf:result    <test-21.out>
+    .
+
+<#testeval22> rdf:type rdft:TestTurtlePositiveEval ;
+    mf:name      "test-22" ;
+    rdfs:comment "negative integer, decimal and doubles" ;
+    mf:action    <test-22.ttl> ;
+    mf:result    <test-22.out>
+    .
+
+<#testeval23> rdf:type rdft:TestTurtlePositiveEval ;
+    mf:name      "test-23" ;
+    rdfs:comment "long literal ending in double quote" ;
+    mf:action    <test-23.ttl> ;
+    mf:result    <test-23.out>
+    .
+
+<#testeval24> rdf:type rdft:TestTurtlePositiveEval ;
+    mf:name      "test-24" ;
+    rdfs:comment "boolean literals" ;
+    mf:action    <test-24.ttl> ;
+    mf:result    <test-24.out>
+    .
+
+<#testeval25> rdf:type rdft:TestTurtlePositiveEval ;
+    mf:name      "test-25" ;
+    rdfs:comment "comments" ;
+    mf:action    <test-25.ttl> ;
+    mf:result    <test-25.out>
+    .
+
+<#testeval26> rdf:type rdft:TestTurtlePositiveEval ;
+    mf:name      "test-26" ;
+    rdfs:comment "no final mewline" ;
+    mf:action    <test-26.ttl> ;
+    mf:result    <test-26.out>
+    .
+
+<#testeval27> rdf:type rdft:TestTurtlePositiveEval ;
+    mf:name      "test-27" ;
+    rdfs:comment "duplicate prefix" ;
+    mf:action    <test-27.ttl> ;
+    mf:result    <test-27.out>
+    .
+
+<#testeval28> rdf:type rdft:TestTurtlePositiveEval ;
+    mf:name      "test-28" ;
+    rdfs:comment "decimal data types (serializing test)" ;
+    mf:action    <test-28.ttl> ;
+    mf:result    <test-28.out>
+    .
+
+<#testeval29> rdf:type rdft:TestTurtlePositiveEval ;
+    mf:name      "test-29" ;
+    rdfs:comment "Escaping U+0001 to U+007F in a URI" ;
+    mf:action    <test-29.ttl> ;
+    mf:result    <test-29.out>
+    .
+
+<#testeval30> rdf:type rdft:TestTurtlePositiveEval ;
+    mf:name      "test-30" ;
+    rdfs:comment "@base" ;
+    mf:action    <test-30.ttl> ;
+    mf:result    <test-30.out>
+    .
+
+## Misc 
+
+<#testeval-misc1>  rdf:type rdft:TestTurtlePositiveEval ;
+    mf:name      "rdf-schema" ;
+    rdfs:comment "RDF Namespace document converted into Turtle" ;
+    mf:action    <rdf-schema.ttl> ;
+    mf:result    <rdf-schema.out> .
+     
+<#testeval-misc2>  rdf:type rdft:TestTurtlePositiveEval ;
+    mf:name      "rdfs-namespace" ;
+    rdfs:comment "RDFS Namespace document converted into Turtle" ;
+    mf:action    <rdfs-namespace.ttl> ;
+    mf:result    <rdfs-namespace.out> .
+     
+<#testeval-misc3>  rdf:type rdft:TestTurtlePositiveEval ;
+    mf:name      "rdfq-results" ;
+    rdfs:comment "Example query result from http://www.w3.org/2003/03/rdfqr-tests/recording-query-results.html" ;
+    mf:action    <rdfq-results.ttl> ;
+    mf:result    <rdfq-results.out>
+