[PATCH 1/3] jscript: test that ActiveScriptSite_OnScriptError is called on script failure. (resend)

Jacek Caban jacek at codeweavers.com
Thu Oct 7 16:08:00 CDT 2010


  On 10/7/10 4:22 PM, Reece Dunn wrote:
> On 7 October 2010 14:35, Jacek Caban<jacek at codeweavers.com>  wrote:
>>   Hi Reece,
>>
>> These tests need more thoughts. They should show how jscript exceptions are
>> translated into IActiveScriptError. Your code doesn't provide mechanism to
>> do so, so I would suggest to wait with sending patches that don't move us
>> any forward until you have a clue how it should work. Otherwise you will
>> have to deal with eventually bad decisions for no good reason.
> Ok, so if I keep the current tests/ActiveScriptSite as they are and
> have something like:
>
>     test_script_error(source, scode, description, lineno, charpos, linesource) {
>        EXPECT CALL ActiveScriptSite_OnScriptError
>        hres = parse_script_with_error(source);
>        ok(hres == 0x8012345, ...)
>
>        CHECK CALL ActiveScriptSite_OnScriptError
>        ok(script_excep.scode == scode, ...)
>        ok(script_excep.bstrDescription == description, ...)
>        ok(script_lineno == lineno, ...)
>        ok(script_charpos == charpos, ...)
>        ok(script_linesource == linesource, ...)
>     }
>
>     test_script_errors() {
>        test_script_error("var foo = new Object();\nfoo.bar;",
> 0x8012345, "Object does not support this property", 20, 11,
> "foo.bar;")
>        test_script_error("new<>%^^;", 0x8012322, "Syntax error", 0, 0,
> "new<>%^^;")
>        ...
>     }
>
> where parse_script_with_error does the same thing as parse_script, but
> uses an ActiveScriptSite implementation that checks OnScriptError
> calls and stores the IActiveScriptError object for testing within
> test_script_error (like with my 3rd patch, but checking specific
> values).
>
>     1/ Does this look like a sensible approach to you?

Yes, this idea sounds good.

>     2/ Do we care about the tests working on non-English locales (not
> sure how to get the above working on other languages -- specifically
> the description text)?

Yes, we care. The easiest way to handle it is checking the locale and 
skipping tests on non-English locales.

>     3/ Are we ok with making wine match the error description strings
> exactly, given the above tests?

We don't really care if strings are exactly the same. It would be nice, 
however, to test them and the only sane way I can see to achieve it is by 
making them exactly the same as native and comparing to expected value. I'd 
expect these values to be the same as in jscript *Error objects, so I'd 
prefer to extend api.js to check strings. In C part we could make this test 
optional and use it in very few places just to make sure it matches 
jscript-visible values.

Jacek



More information about the wine-devel mailing list