You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@daffodil.apache.org by "Steve Lawrence (Jira)" <ji...@apache.org> on 2022/09/27 20:58:00 UTC

[jira] [Created] (DAFFODIL-2734) TDML runner - throws exception if missing root attribute with negative test case

Steve Lawrence created DAFFODIL-2734:
----------------------------------------

             Summary: TDML runner - throws exception if missing root attribute with negative test case
                 Key: DAFFODIL-2734
                 URL: https://issues.apache.org/jira/browse/DAFFODIL-2734
             Project: Daffodil
          Issue Type: Bug
          Components: TDML Runner
            Reporter: Steve Lawrence


The "root" attribute of a parser/unparserTestCase is normally optional and is not required for positive test cases because the TDML runner just infers it from the expected infoset. But if a test case is negative, then there is no expected infoset and the root attribute is mandatory. However, if you accidentally leave off the root attribute, you get an unhelpful abort exception:

{code}
org.apache.daffodil.exceptions.Abort: Cannot specify only a namespace without a name. Namespace argument was: Some(http://example.com)
org.apache.daffodil.exceptions.Assert$.abort(Assert.scala:137)
org.apache.daffodil.exceptions.Assert$.usageError(Assert.scala:125)
org.apache.daffodil.compiler.RootSpec$.makeRootSpec(RootSpec.scala:45)
org.apache.daffodil.compiler.ProcessorFactory.<init>(Compiler.scala:93)
        at org.apache.daffodil.exceptions.Assert$.abort(Assert.scala:137)
        at org.apache.daffodil.exceptions.Assert$.usageError(Assert.scala:125)
        at org.apache.daffodil.compiler.RootSpec$.makeRootSpec(RootSpec.scala:45)
        at org.apache.daffodil.compiler.ProcessorFactory.<init>(Compiler.scala:93)
        at org.apache.daffodil.compiler.Compiler.org$apache$daffodil$compiler$Compiler$$compileSourceInternal(Compiler.scala:416)
        at org.apache.daffodil.compiler.Compiler$.org$apache$daffodil$compiler$Compiler$$compileSourceSynchronizer(Compiler.scala:461)
        at org.apache.daffodil.compiler.Compiler.compileSource(Compiler.scala:404)
        at org.apache.daffodil.tdml.processor.TDMLDFDLProcessorFactory.compileProcessor(DaffodilTDMLDFDLProcessor.scala:147)
        at org.apache.daffodil.tdml.processor.TDMLDFDLProcessorFactory.getProcessor(DaffodilTDMLDFDLProcessor.scala:164)
        at org.apache.daffodil.tdml.TDMLCompileResultCache.getCompileResult(TDMLRunner.scala:2692)
        at org.apache.daffodil.tdml.DFDLTestSuite.getCompileResult(TDMLRunner.scala:532)
        at org.apache.daffodil.tdml.TestCase.run(TDMLRunner.scala:840)
{code}

Instead we should get an error about a missing root attribute.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)