[libvirt] [PATCH v4 12/12] tests: add a test for driver.c:virConnectValidateURIPath()

Cole Robinson crobinso at redhat.com
Wed Oct 2 17:51:04 UTC 2019


On 9/27/19 5:32 PM, Daniel Henrique Barboza wrote:
> 
> 
> On 9/27/19 5:33 PM, Cole Robinson wrote:
>> On 9/26/19 10:56 AM, Daniel Henrique Barboza wrote:
>>> Signed-off-by: Daniel Henrique Barboza <danielhb413 at gmail.com>
>>> ---
>>>
>>> I've made this test file to make sure I wasn't messing
>>> up with the logic at patch 8. The idea of having this
>>> test seems okay, but probably I could do it shorter/cleaner.
>>>
>>> Feel free to discard it if it's not applicable or
>>> unnecessary. Adding this new file make the whole patch series,
>>> aimed at reduce code repetition and lines of code, add more
>>> lines than before. The irony is real.
>>>
>>
>> It will reduce lines if you fold the data.entityName = X bit into the 
>> TEST_ calls, passing the string value as the first argument for example
> 
> Got it.
> 
>>
>> We don't have a ton of fine grained unittesting like this in libvirt, 
>> but it doesn't hurt. Though in this case it seems kinda overkill IMO 
>> to call it for possible combo that it's used in. I think it's better 
>> to just call it in all the invocations to give full code coverage. If 
>> we want to test the individual driver usage of the function then we 
>> would want to find a way to test those entry points directly IMO. 
>> Maybe others have opinions.
> 
> Do you mean we should just test the actual usage of the function in the 
> code
> instead of testing all possible fail scenarios? For example, the code 
> does not
> call virConnectValidateURIPath("/system", X , false) anywhere, so it's 
> ok to
> not test them since it's not being exercised anyway - otherwise we're
> entering TDD territory (which I don't mind - kind of a fan TBH), testing 
> all
> possible stuff just for sake of testing.
> 
> 
> Is that what you're saying? I'm fine with it, and it will cut a good 
> chunk of
> lines in this file too.
> 

I was thinking, add test cases that are needed to hit every bit of logic 
in the function. So

privileged=false, /session path
privileged=false, non-/session path failure
privileged=true, /system path
privileged=true, non-/system path failure
privileged=true, vbox /session
privileged=true, qemu /session
privileged=true, other driver /session failure

- Cole




More information about the libvir-list mailing list