xusheng6 wrote:

> > or do we already have some infra that I can use?
> 
> `lldb/test/API/functionalities/gdb_remote_client/TestStopPCs.py` is an 
> example of that infrastructure. The `threadStopInfo` is where you would 
> insert the swbreak hwbreak key.
> 
> In fact, if i386 is an architecture where this correction of PC might happen 
> (or not) you could just extend that test. The result should be the same 
> whether the mock gdbserver returns "swbreak" "hwbreak" or leaves that field 
> out completely.
> 
> If i386 isn't an architecture where correction would be done, you should be 
> able to find some other target xml stubs elsewhere in tests. I don't think 
> this test case is i386 specific. It can be tricky because that XML needs to 
> include a minimal set of registers before lldb will function, so if in doubt, 
> copy paste a working one.
> 
> > By the way, do I always need some unit test change to get a PR accepted? In 
> > this particular case I do not see a compelling reason to add a new test, 
> > though if this is a LLVM development policy then I will start looking into 
> > it.
> 
> Not 100% of the time but you will always have to justify why it does not have 
> tests, or has the sort of tests that it has. This justification is useful for 
> auditing code later, it also serves as a guide to anyone trying to reproduce 
> an old bug that has no test cases.
> 
> https://llvm.org/docs/DeveloperPolicy.html#test-cases is written from the 
> llvm perspective but applies to lldb as well 
> https://lldb.llvm.org/resources/contributing.html#test-infrastructure.
> 
> In this case because no one does lldb -> gdbserver testing within the llvm 
> project, so my worry is that this "easy fix" will get forgotten over time and 
> someone will remove it as dead code or forget it in a refactoring. This is 
> not a case of "if it has no tests it will get deleted" but it will certainly 
> be at higher risk.
> 
> We have had cases like this before for example, someone fixed a bug handling 
> an msp430 simulator and the test for that replays the packets that it sent to 
> lldb so we don't have to have the actual simulator to hand.

Yes, i386 is an architecture where the PC adjustment happens, and I have 
tentatively added a unit test for it in 
https://github.com/llvm/llvm-project/pull/102873/commits/55f9473b8832723b96db45103bf4d5aa0b10da90

https://github.com/llvm/llvm-project/pull/102873
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to