[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lmi] Input-sequence editor testing
From: |
Greg Chicares |
Subject: |
[lmi] Input-sequence editor testing |
Date: |
Sun, 04 Jul 2010 22:01:31 +0000 |
User-agent: |
Thunderbird 2.0.0.24 (Windows/20100228) |
These are in chronological order of discovery, which turns out to be
about the same thing as reverse priority order.
* Repaint lmi tabbed-dialog background when "..." pop-up dialog is moved
alt-F N I
"Individual mode"
"..."
move the pop-up
Cancel
Background is not repainted: what was turned from white to gray,
remains gray.
A repaint problem with different symptoms:
alt-F N I
"Individual mode"
"..."
switch to another application
switch back
Cancel
In the portion of the lmi tabbed dialog that was obscured by the other
application, enabled text controls change from white to gray. Cancel
repaints only the portion that was under the "..." dialog.
* Use default keyword in new keyword-only controls
alt-F N I
"Individual mode"
"..."
choose "until retirement"
Second row, first column: no mode selected. The best choice would be
the 'default_keyword' argument of realize_sequence_string(). Today,
that is hardcoded in these functions:
Input::RealizePaymentMode()
RealizeCorporationPaymentMode()
but probably it should be moved into class mode_sequence, e.g. as
in this casual sketch:
mode_sequence& operator=(std::string const&);
virtual bool numeric_values_are_allowable() const {return false;}
virtual bool keyword_values_are_allowable() const {return true;}
+ virtual std::string const default_keyword() const {return "annual";}
virtual std::map<std::string,std::string> const allowed_keywords() const;
};
A secondary consequence is that the actions above produce the string
annual retirement;
but editing that result by re-invoking "..." pops up a dialog with
only one "until maturity" row; the "retirement" breakpoint is lost.
* Cannot reenter "..." with a sequence produced by "..."
alt-F N I
"Individual payment"
"..."
choose "until age"
OK
"..."
messagebox:
The sequence is invalid and cannot be edited visually.
Interval [ 55, 56 ) is improper: it ends after the last possible duration.
The default "until age" is 100; 99 would be better, but much better
would be DBDictionary::MaturityAge.
Changing the default would prevent the symptom, but this example
seems to demonstrate a deeper problem. The pop-up exits normally,
changing the sequence-string to
20000 @100; 0
but then it refuses to edit that string. It seems that validation
upon entering the pop-up is stricter than that performed when
leaving it.
* Pressing "Remove" buttons leads to segfault
alt-F N I
"Individual payment"
"..."
change "until maturity" to "until age"
change "until maturity" to "until retirement"
click the lower "Remove" button
click the remaining "Remove" button
DEBUG_EVENT:
dwDebugEventCode = EXCEPTION_DEBUG_EVENT
dwProcessId = EB0
dwThreadId = 778
ExceptionCode = C0000005
ExceptionFlags = 0
ExceptionAddress = 77C43283
dwFirstChance = 0
lmi_wx_shared.exe caused an Access Violation at location 77c43283 in module
msvcrt.dll Reading from location 0205d000.
Registers:
eax=020555c0 ebx=020555c0 ecx=3fffe170 edx=00000000 esi=0205d000 edi=0205cffc
eip=77c43283 esp=0022a700 ebp=0022a708 iopl=0 nv up ei pl nz na pe nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202
Call stack:
AddrPC AddrReturn AddrFrame AddrStack Params
77C43283 00526EF2 0022A708 0022A700 020555C0 020555C4 FFFFFFFC
00000000
77C43283 msvcrt.dll:77C43283 memmove
00526EF2 0043D2B4 0022A728 0022A700 0022BD30 020555C0 00000000
00000006
00526EF2 lmi_wx_shared.exe:00526EF2C:\opt\lmi\bin\lmi_wx_shared.exe: No symbol
found
0043D2B4 0043D41E 0022A758 0022A700 0022BB50 00000002 05F21024
00000148
0043D2B4 lmi_wx_shared.exe:0043D2B4C:\opt\lmi\bin\lmi_wx_shared.exe: No symbol
found
0043D41E 6184184E 0022A788 0022A700 0022BB50 0022A980 0043D3B0
00000000
0043D41E lmi_wx_shared.exe:0043D41EC:\opt\lmi\bin\lmi_wx_shared.exe: No symbol
found
6184184E 6199FBDE 0022A7B8 0022A700 01E9D260 0022BB50 020531C0
0022A980
6184184E
wxmsw290u_gcc_gcc-345-09058928eeb72853142c062bdec056ce.dll:6184184EC:\opt\lmi\local\lib\wxmsw290u_gcc_gcc-345-09058928eeb72853142c062bdec056ce.dll:
No symbol found
_ZNK16wxAppConsoleBase16CallEventHandlerEP12wxEvtHandlerR14wxEventFunctorR7wxEvent
6199FBDE 619A019C 0022A7E8 0022A700 02054618 0022BB50 0022A980
05F21024
6199FBDE
wxmsw290u_gcc_gcc-345-09058928eeb72853142c062bdec056ce.dll:6199FBDEC:\opt\lmi\local\lib\wxmsw290u_gcc_gcc-345-09058928eeb72853142c062bdec056ce.dll:
No symbol found
_ZN12wxEvtHandler23ProcessEventIfMatchesIdERK21wxEventTableEntryBasePS_R7wxEvent
619A019C 619A2C1E 0022A838 0022A700 020538E0 0022A980 020D0AB0
0022A83C
619A019C
wxmsw290u_gcc_gcc-345-09058928eeb72853142c062bdec056ce.dll:619A019CC:\opt\lmi\local\lib\wxmsw290u_gcc_gcc-345-09058928eeb72853142c062bdec056ce.dll:
No symbol found
_ZN12wxEvtHandler23SearchDynamicEventTableER7wxEvent
619A2C1E 619A2CBE 0022A858 0022A700 020538E0 0022A980 77F57D70
019312A0
619A2C1E
wxmsw290u_gcc_gcc-345-09058928eeb72853142c062bdec056ce.dll:619A2C1EC:\opt\lmi\local\lib\wxmsw290u_gcc_gcc-345-09058928eeb72853142c062bdec056ce.dll:
No symbol found
_ZN12wxEvtHandler16ProcessEventHereER7wxEvent
619A2CBE 6199FE9C 0022A878 0022A700 020538E0 0022A980 77D6CC9A
77D45CD6
619A2CBE
wxmsw290u_gcc_gcc-345-09058928eeb72853142c062bdec056ce.dll:619A2CBEC:\opt\lmi\local\lib\wxmsw290u_gcc_gcc-345-09058928eeb72853142c062bdec056ce.dll:
No symbol found
_ZN12wxEvtHandler12ProcessEventER7wxEvent
6199FE9C 61C402BB 0022A8E8 0022A700 020538E0 0022A980 0022A908
61A9F998
[...many lines snipped]
- [lmi] Input-sequence editor testing,
Greg Chicares <=