curcuru 01/10/18 13:10:09
Added: test/tests/contrib/var var01.xml var01.xsl var01a.xml
var01a.xsl var01b.xml var01b.xsl var01b2.xml
var01b2.xsl var01c.xml var01c.xsl var01d.xml
var01d.xsl
Log:
Tests inspired by Bugzilla#4218: call-template, with-param, scoping
Revision Changes Path
1.1 xml-xalan/test/tests/contrib/var/var01.xml
Index: var01.xml
===================================================================
<?xml version="1.0" encoding="UTF-8"?>
<doc/>
1.1 xml-xalan/test/tests/contrib/var/var01.xsl
Index: var01.xsl
===================================================================
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<!-- var01.xsl: variations on a theme:Bugzilla#4218; input .xml is ignored-->
<!-- Theme: passing with-param, somehow variable stack frame gets messed up
-->
<xsl:template match="/">
<out>
<!-- Variables declared at same level as call-template -->
<xsl:variable name="v1" select="'abc-should-appear-once'"/>
<xsl:variable name="v2" select="'def-should-appear-once'"/>
<!-- Extraneous variable decl -->
<xsl:variable name="v3" select="'ghi-should-appear-once'"/>
<xsl:call-template name="template1">
<!-- Param name is same in all cases -->
<xsl:with-param name="param1">
<xsl:call-template name="template2">
<xsl:with-param name="param1" select="$v1"/>
</xsl:call-template>
<xsl:value-of select="$v2"/>
</xsl:with-param>
</xsl:call-template>
</out>
</xsl:template>
<xsl:template name="template1">
<xsl:param name="param1" select="'error'"/>
<template1><xsl:value-of select="$param1"/></template1>
</xsl:template>
<xsl:template name="template2">
<xsl:param name="param1" select="'error'"/>
<template2><xsl:value-of select="$param1"/></template2>
</xsl:template>
</xsl:stylesheet>
1.1 xml-xalan/test/tests/contrib/var/var01a.xml
Index: var01a.xml
===================================================================
<?xml version="1.0" encoding="UTF-8"?>
<doc/>
1.1 xml-xalan/test/tests/contrib/var/var01a.xsl
Index: var01a.xsl
===================================================================
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<!-- var01.xsl: variations on a theme:Bugzilla#4218; input .xml is ignored-->
<!-- Theme: passing with-param, somehow variable stack frame gets messed up
-->
<xsl:template match="/">
<!-- Theme-change: variables declared outside <out> -->
<xsl:variable name="v1" select="'abc-should-appear-once'"/>
<xsl:variable name="v2" select="'def-should-appear-once'"/>
<out>
<xsl:call-template name="template1">
<xsl:with-param name="param1">
<xsl:call-template name="template2">
<!-- Theme-change: with-param uses different names -->
<xsl:with-param name="param2" select="$v1"/>
</xsl:call-template>
<xsl:value-of select="$v2"/>
</xsl:with-param>
</xsl:call-template>
</out>
</xsl:template>
<xsl:template name="template1">
<xsl:param name="param1" select="'error'"/>
<template1><xsl:value-of select="$param1"/></template1>
</xsl:template>
<xsl:template name="template2">
<xsl:param name="param2" select="'error'"/>
<template2><xsl:value-of select="$param2"/></template2>
</xsl:template>
</xsl:stylesheet>
1.1 xml-xalan/test/tests/contrib/var/var01b.xml
Index: var01b.xml
===================================================================
<?xml version="1.0" encoding="UTF-8"?>
<doc/>
1.1 xml-xalan/test/tests/contrib/var/var01b.xsl
Index: var01b.xsl
===================================================================
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<!-- var01b.xsl: variations on a theme:Bugzilla#4218; input .xml is ignored-->
<!-- Theme: passing with-param, somehow variable stack frame gets messed up
-->
<!-- Theme-change: variables declared outside root template -->
<xsl:variable name="v1" select="'abc-should-appear-once'"/>
<xsl:variable name="v2" select="'def-should-appear-once'"/>
<xsl:template match="/">
<out>
<xsl:call-template name="template1">
<xsl:with-param name="param1">
<xsl:call-template name="template2">
<xsl:with-param name="param2" select="$v1"/>
</xsl:call-template>
<xsl:value-of select="$v2"/>
</xsl:with-param>
</xsl:call-template>
</out>
</xsl:template>
<xsl:template name="template1">
<xsl:param name="param1" select="'error'"/>
<template1><xsl:value-of select="$param1"/></template1>
</xsl:template>
<xsl:template name="template2">
<xsl:param name="param2" select="'error'"/>
<template2><xsl:value-of select="$param2"/></template2>
</xsl:template>
</xsl:stylesheet>
1.1 xml-xalan/test/tests/contrib/var/var01b2.xml
Index: var01b2.xml
===================================================================
<?xml version="1.0" encoding="UTF-8"?>
<doc/>
1.1 xml-xalan/test/tests/contrib/var/var01b2.xsl
Index: var01b2.xsl
===================================================================
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<!-- var01b2.xsl: variations on a theme:Bugzilla#4218; input .xml is
ignored-->
<!-- Theme: passing with-param, somehow variable stack frame gets messed up
-->
<!-- Theme-change: params declared outside root template -->
<xsl:param name="v1" select="'abc-should-appear-once'"/>
<xsl:param name="v2" select="'def-should-appear-once'"/>
<xsl:template match="/">
<out>
<xsl:call-template name="template1">
<xsl:with-param name="param1">
<xsl:call-template name="template2">
<xsl:with-param name="param2" select="$v1"/>
</xsl:call-template>
<xsl:value-of select="$v2"/>
</xsl:with-param>
</xsl:call-template>
</out>
</xsl:template>
<xsl:template name="template1">
<xsl:param name="param1" select="'error'"/>
<template1><xsl:value-of select="$param1"/></template1>
</xsl:template>
<xsl:template name="template2">
<xsl:param name="param2" select="'error'"/>
<template2><xsl:value-of select="$param2"/></template2>
</xsl:template>
</xsl:stylesheet>
1.1 xml-xalan/test/tests/contrib/var/var01c.xml
Index: var01c.xml
===================================================================
<?xml version="1.0" encoding="UTF-8"?>
<doc/>
1.1 xml-xalan/test/tests/contrib/var/var01c.xsl
Index: var01c.xsl
===================================================================
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<!-- var01.xsl: variations on a theme:Bugzilla#4218; input .xml is ignored-->
<!-- Theme: passing with-param, somehow variable stack frame gets messed up
-->
<xsl:template match="/">
<out>
<!-- Variables declared at same level as call-template -->
<xsl:variable name="v1" select="'abc-should-appear-once'"/>
<xsl:variable name="v2" select="'def-should-appear-once'"/>
<xsl:call-template name="template1">
<!-- Param name is same in all cases -->
<xsl:with-param name="param1">
<xsl:call-template name="template2">
<xsl:with-param name="param1" select="$v1"/>
</xsl:call-template>
<!-- Theme change: use xsl:text instead of value-of: PASSES
18-Oct-01 -->
<xsl:text>def-should-appear-once</xsl:text>
</xsl:with-param>
</xsl:call-template>
</out>
</xsl:template>
<xsl:template name="template1">
<xsl:param name="param1" select="'error'"/>
<template1><xsl:value-of select="$param1"/></template1>
</xsl:template>
<xsl:template name="template2">
<xsl:param name="param1" select="'error'"/>
<template2><xsl:value-of select="$param1"/></template2>
</xsl:template>
</xsl:stylesheet>
1.1 xml-xalan/test/tests/contrib/var/var01d.xml
Index: var01d.xml
===================================================================
<?xml version="1.0" encoding="UTF-8"?>
<doc/>
1.1 xml-xalan/test/tests/contrib/var/var01d.xsl
Index: var01d.xsl
===================================================================
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<!-- var01.xsl: variations on a theme:Bugzilla#4218; input .xml is ignored-->
<!-- Theme: passing with-param, somehow variable stack frame gets messed up
-->
<xsl:template match="/">
<out>
<!-- Variables declared at same level as call-template -->
<xsl:variable name="v1" select="'abc-should-appear-once'"/>
<xsl:variable name="v2" select="'def-should-appear-once'"/>
<xsl:call-template name="template1">
<!-- Param name is same in all cases -->
<xsl:with-param name="param1">
<!-- Theme change: value-of before call-template -->
<xsl:value-of select="$v2"/>
<xsl:call-template name="template2">
<xsl:with-param name="param1" select="$v1"/>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</out>
</xsl:template>
<xsl:template name="template1">
<xsl:param name="param1" select="'error'"/>
<template1><xsl:value-of select="$param1"/></template1>
</xsl:template>
<xsl:template name="template2">
<xsl:param name="param1" select="'error'"/>
<template2><xsl:value-of select="$param1"/></template2>
</xsl:template>
</xsl:stylesheet>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]