← Back to team overview

kicad-developers team mailing list archive

Re: Questions to the QA code

 

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> 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> 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 <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 <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
        <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     : 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 <tel:+1%20530-302-5483>‬
        Long Beach, CA
        www.kipro-pcb.com <https://www.kipro-pcb.com/>
        info@xxxxxxxxxxxxx <mailto:info@xxxxxxxxxxxxx>

        _______________________________________________
        Mailing list: https://launchpad.net/~kicad-developers
        Post to     : 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
    <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



Follow ups

References