Opened 13 years ago

Closed 13 years ago

Last modified 12 years ago

#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 Kieran P, 13 years ago

Milestone: Alpha 6Alpha 7

comment:2 by historic_bruno, 13 years ago

Summary: TestScriptInterface::test_json fails with errorsTest failures on Windows

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:

In TestWdbgSym::test_stack_trace:
c:\Users\Ben\devel\ps\libraries\wxwidgets\include\../../../source/lib/sysdep/os/win/tests/test_wdbg_sym.h(113): Error: Assertion failed: wcslen(text) > 500
(done dumping stack frames)
In TestWdbgSym::test_stack_walk:
c:\Users\Ben\devel\ps\libraries\wxwidgets\include\../../../source/lib/sysdep/os/win/tests/test_wdbg_sym.h(319): Error: Assertion failed: foundFunctionBits == bit_mask<size_t>((sizeof(*ArraySizeDeducer(funcAddresses))))

and there's a build warning for test_wdbg_sym.h, perhaps unrelated:

c:\users\ben\devel\ps\source\lib\sysdep\os\win\tests\test_wdbg_sym.h(59) : warning C4748: /GS can not protect parameters and local variables from local buffer overrun because optimizations are disabled in function

comment:3 by Jan Wassenberg, 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 historic_bruno, 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 Ross Bearman, 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 Jan Wassenberg, 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 historic_bruno, 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 Jan Wassenberg, 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 historic_bruno, 13 years ago

Resolution: wontfix
Status: newclosed

Nope, sounds good to me :) It may be worth mentioning in the BuildInstructions though.

comment:10 by Jan Wassenberg, 13 years ago

Good call :) I've added a note.

comment:11 by historic_bruno, 12 years ago

Summary: Test failures on WindowsVC2008 Express test failures
Note: See TracTickets for help on using tickets.