[PATCH] msxml/tests: Add test for \u escape sequences in regular expressions.

Nikolay Sivov bunglehead at gmail.com
Sun Oct 15 14:04:31 CDT 2017


On 12.10.2017 22:37, Zebediah Figura wrote:
> For bug #43581.
> 
> Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
> ---
>  dlls/msxml3/tests/schema.c | 26 ++++++++++++++++++++++++++
>  1 file changed, 26 insertions(+)
> 
> diff --git a/dlls/msxml3/tests/schema.c b/dlls/msxml3/tests/schema.c
> index ee84b92158..dc65811adb 100644
> --- a/dlls/msxml3/tests/schema.c
> +++ b/dlls/msxml3/tests/schema.c
> @@ -407,6 +407,15 @@ static const CHAR szOpenSeqXML2[] = "<test><x/><x/><y/><z/><z/><w/></test>";
>  static const CHAR szOpenSeqXML3[] = "<test><w/><x/><x/><y/><z/><z/></test>";
>  static const CHAR szOpenSeqXML4[] = "<test><x/><x/><y/><z/><z/><v/></test>";
>  
> +static const CHAR szUnicodeEscapeXDR[] =
> +"<schema xmlns='http://www.w3.org/2001/XMLSchema'>"
> +"  <simpleType name='type1'>"
> +"    <restriction base='string'>"
> +"      <pattern value='\\u0020'/>"
> +"    </restriction>"
> +"  </simpleType>"
> +"</schema>";
> +
>  #define check_ref_expr(expr, n) { \
>      LONG ref = expr; \
>      ok(ref == n, "expected %i refs, got %i\n", n, ref); \
> @@ -1154,6 +1163,23 @@ static void test_XDR_schemas(void)

Is it XDR "feature" only, that they didn't add to XSDs?

>      IXMLDOMDocument2_Release(schema);
>      IXMLDOMSchemaCollection_Release(cache);
>  
> +    /* test for \u escapes */
> +    schema = create_document_version(60, &IID_IXMLDOMDocument2);
> +    cache = create_cache_version(60, &IID_IXMLDOMSchemaCollection);
> +    if (!schema || !cache)
> +    {
> +        if (schema) IXMLDOMDocument2_Release(schema);
> +        if (cache)  IXMLDOMSchemaCollection_Release(cache);
> +        return;
> +    }

Is this really specific to msxml6? It's better to test on all of them to
get a full picture, but probably all of them support this extension if
6th does. If you want to skip on unsupported class, just return after
first failure, no need to check both pointers.

> +
> +    ole_check(IXMLDOMDocument2_loadXML(schema, _bstr_(szUnicodeEscapeXDR), &b));
> +    ok(b == VARIANT_TRUE, "failed to load XML string\n");
> +    todo_wine ole_check(IXMLDOMSchemaCollection_add(cache, _bstr_(""), _variantdoc_(schema)));

I think it's better to get rid of ole_check(), but it's up to you.

> +
> +    IXMLDOMDocument2_Release(schema);
> +    IXMLDOMSchemaCollection_Release(cache);
> +
>      free_bstrs();
>  }
>  
> 




More information about the wine-devel mailing list