Debugger Expression Evaluation and Watch Tool
To test that the Debugger's Expression Evaluation and Watch Facilities
1) Step in to system, click the Auto Expression button. The expressions inserted in to the Watch Tool should be only within the scope of the make routine, not the inline agent. Try this in both single and multi-threaded modes. Repeat this from scratch to make sure that the same behavior is experienced.
2) With the Expression Evaluator perform a variety of expressions that aren't relative to the system, these being
- (create {STRING_8}.make (0)).generating_type
- (create {STRING_32}.make (0)).generating_type
- ("abc").count -- Value should be 3
- ([1, "abc", <<1, "abc">>]).twin.count -- Value should be three
- (<<1, "abc, <<1, "abc">>>>) [3].generating_type -- Should be ARRAY [ANY]
- create {SPECIAL [INTEGER]}.make (0) -- Value should be a SPECIAL [INTEGER] object
- create {SPECIAL [STRING]).make (0) -- Value should be a SPECIAL [STRING] object
- create {SPECIAL [INTEGER]}.make (-1) -- Precondition Violation of 'non_negative_argument' should be raised.
- ("abc").blahblahblah - Should get VEEN error saying that blahblahblah is unknown identifier
3) Perform the sames test as test 3 but after the object has been created change the expression to 'out', make sure that the object for each is changed to a STRING object representing "DEBUGGER_BREAKPOINTS_TEST_MONO_THREADED"
4) Now the Expression Evaluator can be tested with respect to context of the debuggee.
- Step in to the system and perform the following expression evaluations
- out -- Value should be DEBUGGER_BREAKPOINTS_TEST_MONO_THREADED
- generator -- Value should also be DEBUGGER_BREAKPOINTS_TEST_MONO_THREADED
- l_test_agent.out -- An Error Occurs with Feature Call on Void target should be the result
- Step a line and then perform the following expression evaluations
- l_test_agent.generating_type -- Should return 'PROCEDURE [DEBUGGER_BREAKPOINTS_TEST_MONO_THREADED, TUPLE]
5) Now the Expression Evaluation can be tested with respect to dynamic procedure execution
- Step in to the system and perform the following calls on evaluated expressions.
- (create {STRING_8}.make (0)).generating_type.append (create {STRING_8}.make (0)).generating_type) -- Inspect the value to make sure it is "STRING_8STRING_8"
- (create {STRING_8}.make (0)).generating_type.append (Void) -- Should receive a feature call on Void target internally in append.
- Turn on supplier preconditions, the revaluate previous expression -- Should now receive a precondition violation
- (create {STRING_32}.make (0)).generating_type.extend (Void) -- Should get non-conforming VUAR error
- (create {SPECIAL [NATURAL_8]}.make (10)).put (1, 1) -- Should get a SPECIAL [NATURAL_8] object with that value one in the second position.
6) Now the Watch Tool Functionality can be tested.
- Add an expression, edit the expression and make sure it gets updated, then delete the expression via the Context Menu/PND and then try again via the keyboard when expression is selected.
- Check the expressions can be reordered correctly via the 'Move item down' and 'Move item up' buttons.
- Check that the tooltips accurately describe the expression that they mouse is hovering over.
Compile attached example for both single and multi-threaded modes
As mentioned after the specified test.
- Login or register to post comments
- Add new test run report
Test runs
| ID | Date | Platform | Result |
|---|---|---|---|
| trr#300 | 1 year 11 weeks ago | Linux 64bit | Failed |