[ 
https://issues.apache.org/jira/browse/DAFFODIL-2302?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17066685#comment-17066685
 ] 

Mike Beckerle commented on DAFFODIL-2302:
-----------------------------------------

This is all snarled up.

SchemaSet has a variableMap lazy val member which loads the external variable 
bindings.

That means you cannot share SchemaSet objects if you have different external 
variable bindings.

Now compilation requires that one have the variable map, so as to know what 
variables exist. But the external bindings of them can change at run-time.

Yet SchemaSet loading the external bindings *once* in a lazy val variable map 
doesn't allow that.

This design point requires that if the external variable bindings change, you 
must recompile the entire schema set. This is unnecessary, and furthermore the 
TDML Processor is *not* doing that. It is caching compiled schema objects 
without taking the external variable bindings into account as a key.

 

> TDML Runner remembers external variable bindings even on subsequent test 
> suites that don't use them.
> ----------------------------------------------------------------------------------------------------
>
>                 Key: DAFFODIL-2302
>                 URL: https://issues.apache.org/jira/browse/DAFFODIL-2302
>             Project: Daffodil
>          Issue Type: Bug
>          Components: TDML Runner
>    Affects Versions: 2.5.0
>            Reporter: Mike Beckerle
>            Assignee: Mike Beckerle
>            Priority: Major
>             Fix For: 2.6.0
>
>
> A schema has two separate TDML test suites.
> The schema has an external variable that has a default value of 2.
> The first TDML test suite binds the variable to 0.
> The second TDML test suite does not bind the variable, but the tests require 
> that the default value of 2 is used.
> Each test suite, run separately works fine.
> When run together the 2nd one fails. It is getting the "0" value that was set 
> for the external variable. 
> Even if you ALSO set the external variable in the 2nd test suite, the bug 
> still occurs. Seemingly because the earlier external variable binding is 
> "winning" for some reason.
> The TDML runner needs to reset state of external variables for each test 
> suite.
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to