#884 closed defect (wontfix)
VC2008 Express test failures
Reported by: | historic_bruno | Owned by: | |
---|---|---|---|
Priority: | Should Have | Milestone: | Alpha 7 |
Component: | Non-game systems | Keywords: | |
Cc: | Jan Wassenberg | Patch: |
Description
This test fails with the following output:
c:\users\ben\devel\ps\source\scriptinterface\tests\../../../source/scriptinterface/tests/test_ScriptInterface.h(141): Error: Expected (std::wstring(script.ToString(val.get())) == std::wstring(L"({x:1, z:[2, \"3\\u263A\\uFFFD\"], y:true})")), found (L"({x:1, z:[2, \"3\\u263A\\uFFFD\\uFFFD\\uFFFD\"], y:true})" != L"({x:1, z:[2, \"3\\u263A\\uFFFD\"], y:true})")
There are also program errors (three if you keep pressing continue):
#1:
Function call failed: return value was -100703 (Invalid UTF-8 sequence) Location: utf8.cpp:84 (RaiseError) Call stack: RaiseError (utf8.cpp:84) err = -100703 (0xFFFFFFFFFFFE76A1) perr = (unavailable) UTF8Codec::Decode (utf8.cpp:134) srcPos = 0x0030F92C -> 0x001EF4EE -> [8] { 160 (0xA0), 128 (0x80), 34 (0x22), 10 (0x0A), 32 (0x20), 32 (0x20), 93 (0x5D), 44 (0x2C) } srcEnd = 0x001EF504 -> [8] { 0 (0x00), 240 (0xF0), 173 (0xAD), 186 (0xBA), 171 (0xAB), 171 (0xAB), 171 (0xAB), 171 (0xAB) } err = 0x00000000 offsets = [5] { 0 (0x00000000), 0 (0x00000000), 12416 (0x00003080), 925824 (0x000E2080), 63447168 (0x03C82080) } wstring_from_utf8 (utf8.cpp:237) src = 0x0030FA4C -> (error -100500 while analyzing string >) err = 0x00000000 srcPos = 0x00000001 ScriptInterface::ParseJSON (scriptinterface.cpp:897) this = (unavailable) string_utf8 = 0x0030FA4C (see above) attrsW = (error -100500 while analyzing basic_string<wchar_t,char_traits<wchar_t> >) string = (error -100500 while analyzing wstring<utf16_traits >) vp = 8 (0x0000000000000008) TestScriptInterface::test_json (test_scriptinterface.h:140) this = (unavailable) val = m_Val = px = 0x05E0B1B0 -> 7118796211726961984 (0x62CB0B700461CD40) pn = pi_ = 0x0030F998 -> use_count_ = 2029312 (0x001EF700) weak_count_ = 1955361129 (0x748C7169) script = m = (error -100406 while analyzing auto_ptr<ScriptInterface_impl>) input = (error -100500 while analyzing string >) stringified = (error -100500 while analyzing string >) e = 0x0030F9B8 -> (error -100406 while analyzing exception) e = 0x00000405 e = 0x001EDCA8 -> (error -100406 while analyzing exception) CxxTest::RealTestDescription::run (realdescriptions.cpp:99) this = (unavailable) e = 0x0030FA84 -> (error -100406 while analyzing exception) CxxTest::TestRunner::runTest (testrunner.h:77) this = (unavailable) td = 0x00D26FC4 -> _next = 0x00000000 _prev = 0x00D26FA8 -> _next = 0x00D26FC4 (see above) _prev = 0x00D26F8C -> _next = 0x00D26FA8 (see above) _prev = 0x00D26F70 -> _next = 0x00D26F8C (see above) _prev = 0x00D26F54 -> _next = 0x00D26F70 (see above) _prev = 0x00D26F38 -> _next = 0x00D26F54 (see above) _prev = 0x00D26F1C -> _next = 0x00D26F38 (see above) _prev = 0x00D26F00 -> _next = 0x00D26F1C (see above) _prev = 0x00D26EE4 -> _next = 0x00D26F00 (see above) _prev = 0x00000000 _active = true _active = true _active = true _active = true _active = true _active = true _active = true _active = true _active = true sg = _abortTestOnFail = false _maxDumpSize = 3209980 (0x0030FAFC) CxxTest::TestRunner::runSuite (testrunner.h:63) this = (unavailable) sd = 0x00D26EC0 -> _next = 0x00D26FE8 -> _next = 0x00D27030 -> _next = 0x00D27078 -> _next = 0x00D270DC -> _next = 0x00D27140 -> _next = 0x00D27190 -> _next = 0x00D27224 -> _next = 0x00D2726C -> _next = 0x00D27538 -> _next = 0x00D27668 -> _next = 0x00D27814 -> _next = 0x00D27878 -> _next = 0x00D278F8 -> _next = 0x00000000 _prev = 0x00D27878 (see above) _active = true _prev = 0x00D27814 (see above) _active = true _prev = 0x00D27668 (see above) _active = true _prev = 0x00D27538 (see above) _active = true _prev = 0x00D2726C (see above) _active = true _prev = 0x00D27224 (see above) _active = true _prev = 0x00D27190 (see above) _active = true _prev = 0x00D27140 (see above) _active = true _prev = 0x00D270DC (see above) _active = true _prev = 0x00D27078 (see above) _active = true _prev = 0x00D27030 (see above) _active = true _prev = 0x00D26FE8 (see above) _active = true _prev = 0x00D26EC0 (see above) _active = true _prev = 0x00D26E24 -> _next = 0x00D26EC0 (see above) _prev = 0x00D26CFC -> _next = 0x00D26E24 (see above) _prev = 0x00D26C28 -> _next = 0x00D26CFC (see above) _prev = 0x00D26BC4 -> _next = 0x00D26C28 (see above) (too much output; skipping to next top-level symbol) _active = true _active = true _active = true _active = true sg = _abortTestOnFail = false _maxDumpSize = 3210048 (0x0030FB40) CxxTest::PsTestRunner::runWorld (pstestwrapper.h:80) this = (unavailable) wd = _next = 0x00000000 _prev = 0x00C45501 -> _next = 0xC01BC82B -> _next = (unavailable - internal error) _prev = (unavailable - internal error) _active = (unavailable - internal error) _prev = 0xC823D0F7 -> _next = (unavailable - internal error) _prev = (unavailable - internal error) _active = (unavailable - internal error) _active = (bool)0x8B _active = (bool)0x64 sg = _abortTestOnFail = false _maxDumpSize = 13393572 (0x00CC5EA4) CxxTest::PsTestRunner::runAllTests (pstestwrapper.h:16707566) listener = 0x00D2ABC8 -> (CxxTest::TestListener) CxxTest::PsTestWrapper::runGui (pstestwrapper.h:96) this = (unavailable) argc = 0x0030FD50 -> 1 (0x00000001) argv = 0x001E42C0 -> 0x001E42C8 -> "c:\Users\Ben\devel\ps\binaries\system\test.exe" listener = 0x0030FBA0 -> (CxxTest::TestListener) main (test_root.cpp:17) argc = 1 (0x00000001) argv = 0x001E42C0 (see above) __tmainCRTStartup (crtexe.c:586) nested = 4187511306 (0xF9985A0A) BaseThreadInitThunk (:0) RtlInitializeExceptionChain (:0) RtlInitializeExceptionChain (:0) errno = 0 (?) OS error = 0 (no error code was set)
#2:
Function call failed: return value was -100703 (Invalid UTF-8 sequence) Location: utf8.cpp:84 (RaiseError) Call stack: RaiseError (utf8.cpp:84) err = -100703 (0xFFFFFFFFFFFE76A1) perr = (unavailable) UTF8Codec::Decode (utf8.cpp:134) srcPos = 0x0030F92C -> 0x001EF4EF -> [8] { 128 (0x80), 34 (0x22), 10 (0x0A), 32 (0x20), 32 (0x20), 93 (0x5D), 44 (0x2C), 10 (0x0A) } srcEnd = 0x001EF504 -> [8] { 0 (0x00), 240 (0xF0), 173 (0xAD), 186 (0xBA), 171 (0xAB), 171 (0xAB), 171 (0xAB), 171 (0xAB) } err = 0x00000000 offsets = [5] { 0 (0x00000000), 0 (0x00000000), 12416 (0x00003080), 925824 (0x000E2080), 63447168 (0x03C82080) } wstring_from_utf8 (utf8.cpp:237) src = 0x0030FA4C -> (error -100500 while analyzing string >) err = 0x00000000 srcPos = 0x00000001 ScriptInterface::ParseJSON (scriptinterface.cpp:897) this = (unavailable) string_utf8 = 0x0030FA4C (see above) attrsW = (error -100500 while analyzing basic_string<wchar_t,char_traits<wchar_t> >) string = (error -100500 while analyzing wstring<utf16_traits >) vp = 8 (0x0000000000000008) TestScriptInterface::test_json (test_scriptinterface.h:140) this = (unavailable) val = m_Val = px = 0x05E0B1B0 -> 7118796211726961984 (0x62CB0B700461CD40) pn = pi_ = 0x0030F998 -> use_count_ = 2029312 (0x001EF700) weak_count_ = 1955361129 (0x748C7169) script = m = (error -100406 while analyzing auto_ptr<ScriptInterface_impl>) input = (error -100500 while analyzing string >) stringified = (error -100500 while analyzing string >) e = 0x0030F9B8 -> (error -100406 while analyzing exception) e = 0x00000405 e = 0x001EDCA8 -> (error -100406 while analyzing exception) CxxTest::RealTestDescription::run (realdescriptions.cpp:99) this = (unavailable) e = 0x0030FA84 -> (error -100406 while analyzing exception) CxxTest::TestRunner::runTest (testrunner.h:77) this = (unavailable) td = 0x00D26FC4 -> _next = 0x00000000 _prev = 0x00D26FA8 -> _next = 0x00D26FC4 (see above) _prev = 0x00D26F8C -> _next = 0x00D26FA8 (see above) _prev = 0x00D26F70 -> _next = 0x00D26F8C (see above) _prev = 0x00D26F54 -> _next = 0x00D26F70 (see above) _prev = 0x00D26F38 -> _next = 0x00D26F54 (see above) _prev = 0x00D26F1C -> _next = 0x00D26F38 (see above) _prev = 0x00D26F00 -> _next = 0x00D26F1C (see above) _prev = 0x00D26EE4 -> _next = 0x00D26F00 (see above) _prev = 0x00000000 _active = true _active = true _active = true _active = true _active = true _active = true _active = true _active = true _active = true sg = _abortTestOnFail = false _maxDumpSize = 3209980 (0x0030FAFC) CxxTest::TestRunner::runSuite (testrunner.h:63) this = (unavailable) sd = 0x00D26EC0 -> _next = 0x00D26FE8 -> _next = 0x00D27030 -> _next = 0x00D27078 -> _next = 0x00D270DC -> _next = 0x00D27140 -> _next = 0x00D27190 -> _next = 0x00D27224 -> _next = 0x00D2726C -> _next = 0x00D27538 -> _next = 0x00D27668 -> _next = 0x00D27814 -> _next = 0x00D27878 -> _next = 0x00D278F8 -> _next = 0x00000000 _prev = 0x00D27878 (see above) _active = true _prev = 0x00D27814 (see above) _active = true _prev = 0x00D27668 (see above) _active = true _prev = 0x00D27538 (see above) _active = true _prev = 0x00D2726C (see above) _active = true _prev = 0x00D27224 (see above) _active = true _prev = 0x00D27190 (see above) _active = true _prev = 0x00D27140 (see above) _active = true _prev = 0x00D270DC (see above) _active = true _prev = 0x00D27078 (see above) _active = true _prev = 0x00D27030 (see above) _active = true _prev = 0x00D26FE8 (see above) _active = true _prev = 0x00D26EC0 (see above) _active = true _prev = 0x00D26E24 -> _next = 0x00D26EC0 (see above) _prev = 0x00D26CFC -> _next = 0x00D26E24 (see above) _prev = 0x00D26C28 -> _next = 0x00D26CFC (see above) _prev = 0x00D26BC4 -> _next = 0x00D26C28 (see above) (too much output; skipping to next top-level symbol) _active = true _active = true _active = true _active = true sg = _abortTestOnFail = false _maxDumpSize = 3210048 (0x0030FB40) CxxTest::PsTestRunner::runWorld (pstestwrapper.h:80) this = (unavailable) wd = _next = 0x00000000 _prev = 0x00C45501 -> _next = 0xC01BC82B -> _next = (unavailable - internal error) _prev = (unavailable - internal error) _active = (unavailable - internal error) _prev = 0xC823D0F7 -> _next = (unavailable - internal error) _prev = (unavailable - internal error) _active = (unavailable - internal error) _active = (bool)0x8B _active = (bool)0x64 sg = _abortTestOnFail = false _maxDumpSize = 13393572 (0x00CC5EA4) CxxTest::PsTestRunner::runAllTests (pstestwrapper.h:16707566) listener = 0x00D2ABC8 -> (CxxTest::TestListener) CxxTest::PsTestWrapper::runGui (pstestwrapper.h:96) this = (unavailable) argc = 0x0030FD50 -> 1 (0x00000001) argv = 0x001E42C0 -> 0x001E42C8 -> "c:\Users\Ben\devel\ps\binaries\system\test.exe" listener = 0x0030FBA0 -> (CxxTest::TestListener) main (test_root.cpp:17) argc = 1 (0x00000001) argv = 0x001E42C0 (see above) __tmainCRTStartup (crtexe.c:586) nested = 4187511306 (0xF9985A0A) BaseThreadInitThunk (:0) RtlInitializeExceptionChain (:0) RtlInitializeExceptionChain (:0) errno = 0 (No error reported here) OS error = 487 (Attempt to access invalid address.)
#3:
Function call failed: return value was -100703 (Invalid UTF-8 sequence) Location: utf8.cpp:84 (RaiseError) Call stack: RaiseError (utf8.cpp:84) err = -100703 (0xFFFFFFFFFFFE76A1) perr = (unavailable) UTF8Codec::Decode (utf8.cpp:134) srcPos = 0x0030F92C -> 0x001EF4F0 -> "" ], "y": true }" srcEnd = 0x001EF504 -> [8] { 0 (0x00), 240 (0xF0), 173 (0xAD), 186 (0xBA), 171 (0xAB), 171 (0xAB), 171 (0xAB), 171 (0xAB) } err = 0x00000000 offsets = [5] { 0 (0x00000000), 0 (0x00000000), 12416 (0x00003080), 925824 (0x000E2080), 63447168 (0x03C82080) } wstring_from_utf8 (utf8.cpp:237) src = 0x0030FA4C -> (error -100500 while analyzing string >) err = 0x00000000 srcPos = 0x00000001 ScriptInterface::ParseJSON (scriptinterface.cpp:897) this = (unavailable) string_utf8 = 0x0030FA4C (see above) attrsW = (error -100500 while analyzing basic_string<wchar_t,char_traits<wchar_t> >) string = (error -100500 while analyzing wstring<utf16_traits >) vp = 8 (0x0000000000000008) TestScriptInterface::test_json (test_scriptinterface.h:140) this = (unavailable) val = m_Val = px = 0x05E0B1B0 -> 7118796211726961984 (0x62CB0B700461CD40) pn = pi_ = 0x0030F998 -> use_count_ = 2029312 (0x001EF700) weak_count_ = 1955361129 (0x748C7169) script = m = (error -100406 while analyzing auto_ptr<ScriptInterface_impl>) input = (error -100500 while analyzing string >) stringified = (error -100500 while analyzing string >) e = 0x0030F9B8 -> (error -100406 while analyzing exception) e = 0x00000405 e = 0x001EDCA8 -> (error -100406 while analyzing exception) CxxTest::RealTestDescription::run (realdescriptions.cpp:99) this = (unavailable) e = 0x0030FA84 -> (error -100406 while analyzing exception) CxxTest::TestRunner::runTest (testrunner.h:77) this = (unavailable) td = 0x00D26FC4 -> _next = 0x00000000 _prev = 0x00D26FA8 -> _next = 0x00D26FC4 (see above) _prev = 0x00D26F8C -> _next = 0x00D26FA8 (see above) _prev = 0x00D26F70 -> _next = 0x00D26F8C (see above) _prev = 0x00D26F54 -> _next = 0x00D26F70 (see above) _prev = 0x00D26F38 -> _next = 0x00D26F54 (see above) _prev = 0x00D26F1C -> _next = 0x00D26F38 (see above) _prev = 0x00D26F00 -> _next = 0x00D26F1C (see above) _prev = 0x00D26EE4 -> _next = 0x00D26F00 (see above) _prev = 0x00000000 _active = true _active = true _active = true _active = true _active = true _active = true _active = true _active = true _active = true sg = _abortTestOnFail = false _maxDumpSize = 3209980 (0x0030FAFC) CxxTest::TestRunner::runSuite (testrunner.h:63) this = (unavailable) sd = 0x00D26EC0 -> _next = 0x00D26FE8 -> _next = 0x00D27030 -> _next = 0x00D27078 -> _next = 0x00D270DC -> _next = 0x00D27140 -> _next = 0x00D27190 -> _next = 0x00D27224 -> _next = 0x00D2726C -> _next = 0x00D27538 -> _next = 0x00D27668 -> _next = 0x00D27814 -> _next = 0x00D27878 -> _next = 0x00D278F8 -> _next = 0x00000000 _prev = 0x00D27878 (see above) _active = true _prev = 0x00D27814 (see above) _active = true _prev = 0x00D27668 (see above) _active = true _prev = 0x00D27538 (see above) _active = true _prev = 0x00D2726C (see above) _active = true _prev = 0x00D27224 (see above) _active = true _prev = 0x00D27190 (see above) _active = true _prev = 0x00D27140 (see above) _active = true _prev = 0x00D270DC (see above) _active = true _prev = 0x00D27078 (see above) _active = true _prev = 0x00D27030 (see above) _active = true _prev = 0x00D26FE8 (see above) _active = true _prev = 0x00D26EC0 (see above) _active = true _prev = 0x00D26E24 -> _next = 0x00D26EC0 (see above) _prev = 0x00D26CFC -> _next = 0x00D26E24 (see above) _prev = 0x00D26C28 -> _next = 0x00D26CFC (see above) _prev = 0x00D26BC4 -> _next = 0x00D26C28 (see above) (too much output; skipping to next top-level symbol) _active = true _active = true _active = true _active = true sg = _abortTestOnFail = false _maxDumpSize = 3210048 (0x0030FB40) CxxTest::PsTestRunner::runWorld (pstestwrapper.h:80) this = (unavailable) wd = _next = 0x00000000 _prev = 0x00C45501 -> _next = 0xC01BC82B -> _next = (unavailable - internal error) _prev = (unavailable - internal error) _active = (unavailable - internal error) _prev = 0xC823D0F7 -> _next = (unavailable - internal error) _prev = (unavailable - internal error) _active = (unavailable - internal error) _active = (bool)0x8B _active = (bool)0x64 sg = _abortTestOnFail = false _maxDumpSize = 13393572 (0x00CC5EA4) CxxTest::PsTestRunner::runAllTests (pstestwrapper.h:16707566) listener = 0x00D2ABC8 -> (CxxTest::TestListener) CxxTest::PsTestWrapper::runGui (pstestwrapper.h:96) this = (unavailable) argc = 0x0030FD50 -> 1 (0x00000001) argv = 0x001E42C0 -> 0x001E42C8 -> "c:\Users\Ben\devel\ps\binaries\system\test.exe" listener = 0x0030FBA0 -> (CxxTest::TestListener) main (test_root.cpp:17) argc = 1 (0x00000001) argv = 0x001E42C0 (see above) __tmainCRTStartup (crtexe.c:586) nested = 4187511306 (0xF9985A0A) BaseThreadInitThunk (:0) RtlInitializeExceptionChain (:0) RtlInitializeExceptionChain (:0) errno = 0 (No error reported here) OS error = 487 (Attempt to access invalid address.)
Change History (11)
comment:1 by , 13 years ago
Milestone: | Alpha 6 → Alpha 7 |
---|
comment:2 by , 13 years ago
Summary: | TestScriptInterface::test_json fails with errors → Test failures on Windows |
---|
comment:3 by , 13 years ago
heh, I hate to say this again, but "it works for me" :/ Apart from the usual exceptions and even some of the announced access violations in release builds, all tests succeed without incident. This is with VC2010 (debug or release).
Investigating the foundFunctionBits problem (i.e. not all of the Func1..3 functions showed up in the stack trace) should provide information why the other one is failing as well. First question: what is the value of numCallers after Func3()? Would you please also record the callerName strings after the invocation of: ret = debug_ResolveSymbol(callers[idxCaller], callerName, 0, 0); and also funcName after ret = debug_ResolveSymbol(funcAddresses[idxFunc], funcName, 0, 0); ?
That should rule out any name mangling. The other cause I can think of is that your compiler doesn't include a recent version of the dbghelp library that we use to walk the stack - but there's a copy in binaries/system, so it doesn't appear terribly likely, either.
comment:4 by , 13 years ago
Hmm, no Func1 but RtlInitializeExceptionChain appears twice:
numCallers: 14 callerName: Func2 funcName: Func1 funcName: Func2 funcName: Func3 callerName: Func3 funcName: Func1 funcName: Func2 funcName: Func3 callerName: TestWdbgSym::test_stack_walk funcName: Func1 funcName: Func2 funcName: Func3 callerName: CxxTest::RealTestDescription::run funcName: Func1 funcName: Func2 funcName: Func3 callerName: CxxTest::TestRunner::runTest funcName: Func1 funcName: Func2 funcName: Func3 callerName: CxxTest::TestRunner::runSuite funcName: Func1 funcName: Func2 funcName: Func3 callerName: CxxTest::PsTestRunner::runWorld funcName: Func1 funcName: Func2 funcName: Func3 callerName: CxxTest::PsTestRunner::runAllTests funcName: Func1 funcName: Func2 funcName: Func3 callerName: CxxTest::PsTestWrapper::runGui funcName: Func1 funcName: Func2 funcName: Func3 callerName: main funcName: Func1 funcName: Func2 funcName: Func3 callerName: __tmainCRTStartup funcName: Func1 funcName: Func2 funcName: Func3 callerName: BaseThreadInitThunk funcName: Func1 funcName: Func2 funcName: Func3 callerName: RtlInitializeExceptionChain funcName: Func1 funcName: Func2 funcName: Func3 callerName: RtlInitializeExceptionChain funcName: Func1 funcName: Func2 funcName: Func3
comment:5 by , 13 years ago
Just to add to jan's comment; the tests also run fine for me in 64-bit VS2010 and VS2008, using the new workspaces (Premake4).
comment:6 by , 13 years ago
Thanks for getting the call stack, Ben! Looks pretty good. The 2x RtlInitializeExceptionChain is weird, but not cause for alarm. We usually don't see it because the normal stack walks stop at BaseThreadInitThunk. The OS does wrap us in an SEH handler, so RtlInitializeExceptionChain sounds legit. I see it also occurs twice in someone else's call stack: http://www.noxeos.com/2011/04/20/function-call-stack-windows/
As to the lack of Func1, that's got me perpexed. The context capturing is no different here (same OS). I'm tempted to blame it on VC2008 Express. Are you using the new Premake 4 to generate? Any chance of upgrading to VC2010 (preferably the real thing)?
Ross: thanks for the confirmation!
comment:7 by , 13 years ago
The test failures occurred in VC2008 Express with both old and new premake. I should point out it's a fairly new change in our code that triggers that, because they used to be OK. But maybe not worth worrying about.
Just tried VC2010 Express with new premake and there were no test failures.
comment:8 by , 13 years ago
Yeah, that code recently changed to work around a long-standing Windows bug that let to incorrect addresses and therefore much less useful stack traces. We definitely don't want to back out that change, and I don't see any particular mistake that would lead to such a problem, AND it works on VC2010, so it really is tempting to mark as works-for-me. It appears increasingly likely that this related/due to the compiler. After all, MS do fix hundreds of bugs in compiler service packs. Any objections to leaving this as-is and closing the ticket?
comment:9 by , 13 years ago
Resolution: | → wontfix |
---|---|
Status: | new → closed |
Nope, sounds good to me :) It may be worth mentioning in the BuildInstructions though.
comment:11 by , 12 years ago
Summary: | Test failures on Windows → VC2008 Express test failures |
---|
The tests appear to work in Linux and OS X but fail for me in Windows.
OS: Windows 7 Pro 64-bit
IDE: VS 2008 Express
There's two other failed tests btw:
and there's a build warning for test_wdbg_sym.h, perhaps unrelated: