← Back to team overview

kicad-developers team mailing list archive

Re: Questions to the QA code

 

Hi Sywester,

Turtle mocks looks like a better fit than gMock/gTest since it's based
on Boost which is already a dependency.  At least it looks like the
project is still maintained.  I don't know how it compares feature wise
to gMock so there may some things missing but are they significant
enough to warrant using it is unknown.

Cheers,

Wayne

On 1/26/21 5:38 PM, Sylwester Kocjan wrote:
> Hello,
> 
> Here's a follow-up about mocks in the qa tests. I prepared example use
> of Turtle library. My observations below:
> - integrates easily with Boost.Test (HippoMocks didn't require any
> integration, gmock will be harder,
> https://gitlab.com/kicad/code/kicad/-/merge_requests/652/diffs?commit_id=5fa5d228204506de71b265594fdcba5740b43f3e)
> - looks similar in use to google mocks
> - it's maintained on GitHub: https://github.com/mat007/turtle
> - it forced me to create more mocks than HippoMocks and rework the code
> a bit
> (https://gitlab.com/kicad/code/kicad/-/merge_requests/652/diffs?commit_id=c5df86c208156facc66a95ef60bdeabb6e66efb5),
> so:
>   - may require more work to create/maintain tests
>   - but I believe that in exchange it will result in better quality (I
> found missing 'virtual' keyword before destructor of SCHEMATIC!)
> 
> Best regards,
> Sylwester
> 
> Dnia 21 stycznia 2021 16:38 Jeff Young <jeff@xxxxxxxxx> napisał(a):
> 
>     Good point.  I have only used the Java one (which I guess is the
>     original?).
> 
>     Cheers,
>     Jeff.
> 
> 
>>     On 20 Jan 2021, at 21:18, Sylwester Kocjan
>>     <<mailto:s.kocjan@xxxxx>s.kocjan@xxxxx <mailto:s.kocjan@xxxxx>> wrote:
>>
>>     Hi Jeff,
>>
>>     Did you use https://github.com/tpounds/mockitopp or that one for
>>     Java https://github.com/mockito/mockito ?
>>     Mockitopp has it's last code update about ~1,5 year ago, so it
>>     looks it has the same downside as HippoMocks.
>>     There is also Mockpp, also not actively developed:
>>     https://sourceforge.net/projects/mockpp/
>>
>>     BR,
>>     SK
>>
>>     Dnia 17 stycznia 2021 16:45 Jeff Young
>>     <<mailto:jeff@xxxxxxxxx>jeff@xxxxxxxxx <mailto:jeff@xxxxxxxxx>>
>>     napisał(a):
>>
>>         I’ve used Mockito.  Can’t say I remember a thing about it,
>>         though (which could be good?).
>>
>>         Cheers,
>>         Jeff.
>>
>>>         On 17 Jan 2021, at 14:49, Sylwester Kocjan
>>>         <<mailto:s.kocjan@xxxxx><mailto:s.kocjan@xxxxx>s.kocjan@xxxxx
>>>         <mailto:s.kocjan@xxxxx>> wrote:
>>>
>>>         Hello,
>>>
>>>         On 17/01/2021 09:47, Alex wrote:
>>>         > ...GTest, Doctest and Catch2, (...) they'll all get the job
>>>         done
>>>
>>>         They are all testing frameworks without mocking capability.
>>>         We have already Boost.Test based tests and I find it
>>>         unnecessary effort to migrate them, and alone
>>>         they don't solve the problem.
>>>
>>>
>>>         On 17/01/2021 09:47, Alex wrote:
>>>         > I wasn't aware that GMock could operate separately from
>>>         GTest, but if it can, that's pretty neat.
>>>
>>>         On Sun, Jan 17, 2021, 12:15 AM Andrew Lutsenko
>>>         <anlutsenko@xxxxxxxxx> <mailto:anlutsenko@xxxxxxxxx> wrote:
>>>         > You can also use gmock separately from gtest.
>>>
>>>         Since some time gmock is a part of gtest. Any search results
>>>         in the topic of gmock with another testing frameworks are
>>>         quite old. I think there is a risk that it will not work.
>>>
>>>
>>>         On 17/01/2021 09:47, Alex wrote:
>>>         > Catch is a single header
>>>
>>>         I was instructed to avoid introducing new dependencies, hence
>>>         my initial choice of single-header HippoMocks:
>>>
>>>         https://gitlab.com/kicad/code/kicad/-/issues/4446#note_445185505
>>>
>>>         On Sat, Jan 16, 2021 at 6:47 AM Seth Hillbrand
>>>         <seth@xxxxxxxxxxxxx> <mailto:seth@xxxxxxxxxxxxx> wrote:
>>>         > The downside of HippoMocks from what I can gather is that
>>>         the project appears abandoned.
>>>
>>>         Sadly, this is true. There are also other choices, but I
>>>         don't have any hands-on experience with them and I don't know
>>>         which one to choose:
>>>         - http://turtle.sourceforge.net/
>>>         - https://github.com/tpounds/mockitopp
>>>         - https://github.com/rollbear/trompeloeil
>>>
>>>         Best regards,
>>>         Sylwester
>>>
>>>
>>>         On 17/01/2021 09:47, Alex wrote:
>>>>         I've used GTest, Doctest and Catch2, and they'll all get the
>>>>         job done; Doctest is definitely the fastest to compile, but
>>>>         also has the least of features; Catch and GTest have the
>>>>         most features.
>>>>
>>>>         I wasn't aware that GMock could operate separately from
>>>>         GTest, but if it can, that's pretty neat.
>>>>
>>>>         I believe Doctest and Catch both are single header - I know
>>>>         at least Catch is a single header; but I think it makes
>>>>         sense to use a git submodule in this case.
>>>>
>>>>
>>>>         On Sun, Jan 17, 2021, 12:15 AM Andrew Lutsenko
>>>>         <<mailto:anlutsenko@xxxxxxxxx><mailto:anlutsenko@xxxxxxxxx>anlutsenko@xxxxxxxxx
>>>>         <mailto:anlutsenko@xxxxxxxxx>> wrote:
>>>>
>>>>             I would also suggest to look towards gtest/gmock.
>>>>             It's widely adopted, works with cmake out of the box,
>>>>             has integrations with popular IDEs and a good choice of
>>>>             supporting tools like parallelized runners, GUI
>>>>             inspectors etc.
>>>>             You can also use gmock separately from gtest.
>>>>
>>>>             Andrew
>>>>
>>>>             On Sat, Jan 16, 2021 at 6:47 AM Seth Hillbrand
>>>>             <<mailto:seth@xxxxxxxxxxxxx><mailto:seth@xxxxxxxxxxxxx>seth@xxxxxxxxxxxxx
>>>>             <mailto:seth@xxxxxxxxxxxxx>> wrote:
>>>>
>>>>                 Hi Sylwester-
>>>>
>>>>                 I haven't used HippoMocks but in general, adding QA
>>>>                 tests is always welcome as long as they run as
>>>>                 expected under the Fedora docker we use for online
>>>>                 QA with GitLab.
>>>>
>>>>                 The downside of HippoMocks from what I can gather is
>>>>                 that the project appears abandoned.  If I'm
>>>>                 incorrect here, can you link to the current
>>>>                 repository/documentation?
>>>>
>>>>                 Thanks-
>>>>                 Seth
>>>>
>>>>                 On Fri, Jan 15, 2021 at 2:49 PM Sylwester Kocjan
>>>>                 <<mailto:s.kocjan@xxxxx><mailto:s.kocjan@xxxxx>s.kocjan@xxxxx
>>>>                 <mailto:s.kocjan@xxxxx>> wrote:
>>>>
>>>>                     Hello,
>>>>
>>>>                     I have two questions regarding QA code for KiCad
>>>>                     and I'd like to ask for your comments about them:
>>>>
>>>>                     1. I reviewed contents of qa directory in KiCad
>>>>                     repo and I saw some issues that can be fixed.
>>>>                        Could you please take a look at the summary
>>>>                     and let me know if they are valid:
>>>>
>>>>                     https://docs.google.com/spreadsheets/d/14QAy9rRIHqRr4YuXfQO2GicURAG1BgJmwKe7B1H6xXI/edit#gid=326687467
>>>>
>>>>                     2. What do you think about adding mocking
>>>>                     library to the KiCad code? I found that PGM
>>>>                     object is mocked few times
>>>>
>>>>                       
>>>>                     https://gitlab.com/kicad/code/kicad/-/issues/4446#note_342766728
>>>>                       
>>>>                        A libary for creating mocks would simplify
>>>>                     creting the tests. In this MR and commit:
>>>>                       
>>>>                       
>>>>                     https://gitlab.com/kicad/code/kicad/-/merge_requests/542
>>>>                       
>>>>                     https://gitlab.com/kicad/code/kicad/-/merge_requests/542/diffs?commit_id=b7b401d7128057831c049a723ffc895453d65a0e
>>>>                       
>>>>                        there is added HippoMocks, a single-header
>>>>                     mocking tool and it does it's job.
>>>>                        If that's ok, it could help to get rid of
>>>>                     these duplicated mocks (maybe even hand-written
>>>>                     mocks at all).
>>>>
>>>>                     Best regards,
>>>>                     Sylwester
>>>>                     _______________________________________________
>>>>                     Mailing list:
>>>>                     https://launchpad.net/~kicad-developers
>>>>                     Post to     :
>>>>                     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx><mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>kicad-developers@xxxxxxxxxxxxxxxxxxx
>>>>                     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>>>>                     Unsubscribe :
>>>>                     https://launchpad.net/~kicad-developers
>>>>                     More help   : https://help.launchpad.net/ListHelp
>>>>
>>>>
>>>>
>>>>                 --
>>>>
>>>>                 KiCad Services Corporation Logo
>>>>
>>>>                 Seth Hillbrand
>>>>                 *Lead Developer*
>>>>                 +1-530-302-5483‬
>>>>                 Long Beach, CA
>>>>                 www.kipro-pcb.com <https://www.kipro-pcb.com/>   
>>>>                 <mailto:info@xxxxxxxxxxxxx><mailto:info@xxxxxxxxxxxxx>info@xxxxxxxxxxxxx
>>>>                 <mailto:info@xxxxxxxxxxxxx>
>>>>
>>>>                 _______________________________________________
>>>>                 Mailing list: https://launchpad.net/~kicad-developers
>>>>                 Post to     :
>>>>                 <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx><mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>kicad-developers@xxxxxxxxxxxxxxxxxxx
>>>>                 <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>>>>                 Unsubscribe : https://launchpad.net/~kicad-developers
>>>>                 More help   : https://help.launchpad.net/ListHelp
>>>>
>>>>             _______________________________________________
>>>>             Mailing list: https://launchpad.net/~kicad-developers
>>>>             Post to     :
>>>>             <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx><mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>kicad-developers@xxxxxxxxxxxxxxxxxxx
>>>>             <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>>>>             Unsubscribe : https://launchpad.net/~kicad-developers
>>>>             More help   : https://help.launchpad.net/ListHelp
>>>>
>>>>
>>>>         _______________________________________________
>>>>         Mailing list: https://launchpad.net/~kicad-developers
>>>>         Post to     :  <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>kicad-developers@xxxxxxxxxxxxxxxxxxx <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>>>>         Unsubscribe : https://launchpad.net/~kicad-developers
>>>>         More help   : https://help.launchpad.net/ListHelp
>>>>
>>>
>>>         _______________________________________________
>>>         Mailing list: https://launchpad.net/~kicad-developers
>>>         Post to     :
>>>         <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx><mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>kicad-developers@xxxxxxxxxxxxxxxxxxx
>>>         <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>>>         Unsubscribe : https://launchpad.net/~kicad-developers
>>>         More help   : https://help.launchpad.net/ListHelp
>>
>>
>>     _______________________________________________
>>     Mailing list: https://launchpad.net/~kicad-developers
>>     Post to     :
>>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>kicad-developers@xxxxxxxxxxxxxxxxxxx
>>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>>     Unsubscribe : https://launchpad.net/~kicad-developers
>>     More help   : https://help.launchpad.net/ListHelp
> 
> 
> 
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp
> 


References