123456789101112131415161718192021222324252627282930313233343536373839404142 |
- # This test fails on Win32 currently
- if (platform != "Win64") Stop()
- # Tests that even when removing an old virtual method, adding a new one, and then
- # adding back a method with the same name as the old one, we can call this new
- # method using an old virtual call
- ShowFile("src/HotSwap.bf")
- GotoText("//HotStart_VirtualRemap")
- ToggleBreakpoint()
- RunWithCompiling()
- # Turn off MethodB
- ToggleCommentAt("HotA_MethodB")
- ToggleCommentAt("HotTester_Test1")
- ToggleCommentAt("HotTester_TestVirtualRemap_MethodBCall")
- ToggleCommentAt("HotTester_TestVirtualRemap_MethodBCall_2")
- Compile()
- # Make sure we can call the old 'MethodB'
- StepOver()
- StepOver()
- AssertEvalEquals("val", "11")
- # Turn on MethodC
- ShowCurrent()
- ToggleCommentAt("HotA_MethodC")
- ToggleCommentAt("HotTester_TestVirtualRemap2_MethodCCall")
- Compile()
- StepInto()
- StepOver()
- AssertEvalEquals("val", "12")
- # Turn on MethodB (version 2)
- ToggleCommentAt("HotA_MethodB_2")
- ToggleCommentAt("HotTester_TestVirtualRemap_MethodBCall")
- Compile()
- StepOver()
- StepOver()
- # We are running an old version of TestVirtualRemap that used the old virtual slot
- # number for the MethodB call, but the new MethodB should be mapped to that same
- # slot because it mangles the same
- AssertEvalEquals("val", "111")
|