[cddlm] CDL Tests

Guilherme M. G. Barbosa / Grad. DSC guiga at dsc.ufcg.edu.br
Wed Mar 8 11:16:49 CST 2006


On Wed, 8 Mar 2006, Steve Loughran wrote:

> Guilherme Germoglio wrote:
>> Hello,
>> 
>> Our test results regarding the cdl parser can be viewed in: 
>> http://lsd.ufcg.edu.br/~guiga/cddlm/test_results/index.html
>>
>>  From these tests we have changed test cddlm-cdl-2005-09-0005, from 
>> import_namespace set because its resolution expected is not correct.
>> 
>> The expected must be the following:
>>
>>   <cdl:system xmlns:test1="http://cddlm.org/test1.cdl"
>>             xmlns:t2="http://cddlm.org/test2.cdl">
>>           <MyServer>
>>             <hostname>www.cddlm.org <http://www.cddlm.org></hostname>
>>             <port>80</port>
>>           </MyServer>
>>   </cdl:system>
>> 
>> As hostname property was redefined to www.cddlm.org <http://www.cddlm.org> 
>> in MyServer , which extends test1:WebServer, this property cannot be the 
>> same of test1:WebServer (data/hostname).
>
> you are right. fixed.
>
>> 
>> As you can see in the results, 2 required tests remained failing: 
>> cddlm-cdl-2005-02-0021 and cddlm-cdl-06-0001
>> They regard the resolution of references to lazy properties. We think the 
>> tests are not according to the specification, that says in sections 7.3.3 
>> and 7.5.2, respectively:
>> 
>> "A value reference at /n/ referring to /n'/ is resolvable if and only if:
>>            (...)
>>
>>     *
>>
>>       The node /n'/ and its descendants do not have any @cdl:ref and
>>       @cdl:lazy attribute. Otherwise, the resolution is deferred until
>>       these @cdl:ref and @cdl:lazy attributes are resolved."
>>
>>  "A reference to an property with a @cdl:lazy attribute MUST NOT be 
>> resolved before the @cdl:lazy attribute is resolved."
>> 
>> What does the specification mean by "be resolved"? When it states that the 
>> reference MUST NOT be resolved, does it mean that the reference must remain 
>> unchanged? If so, the tests must be changed. If not, what is the expected 
>> behavior?
>> 
>
> the cddlm-cdl-2005-02-0021 actually tests that the presence of a cdl:lazy 
> attribute is harmless if you have no reference, it just gets kept along. 
> There's no reason for it not to be dropped, except that the specification 
> explicitly says that only cdl:ref and cdl:refroot attributes get stripped 
> when copying references.
>

But according to the specification (section 7.3.3), if a descendant of a 
node refered has the cdl:lazy attribute (just like 
cddlm-cdl-2005-02-0021), this reference resolution must be deferred until 
the resolution of this cdl:lazy.

> The way my implementation works. I am fussy during resolving about resolving 
> a lazy reference, that is something with both cdl:ref and cdl:lazy. But I 
> just ignore cdl:lazy. I believe this is the correct interpretation, but I see 
> from your point that it is unclear; we are referring to a property with a 
> cdl:lazy attribute, it just lacks any reference.
>
> Personally, I'd like to view cdl:lazy without cdl:ref or cdl:refroot as an 
> error, rather than a no-op. But I dont think that is in the spec.
>
>
> cddlm-cdl-06-0001 looks wrong to me.
>
> As full processing lazy refs are not part of the parse-time spec, we could 
> move 02-0021 over to the 06- package and mark all of them as informative. But 
> then we do need to come up with some good values for production testing, 
> which is where cmp: testing fits in, I hope.
>
> -steve
>
>
>
>
>
>





More information about the cddlm-wg mailing list