mixxxdj / mixxx

Mixxx is Free DJ software that gives you everything you need to perform live mixes.
http://mixxx.org
Other
4.25k stars 1.24k forks source link

Parametric google-test for mapping validation #13281

Open JoergAtGithub opened 1 month ago

JoergAtGithub commented 1 month ago

For debugging https://github.com/mixxxdj/mixxx/pull/11625#issuecomment-2131243612 I modified the googletest setup for mapping validation to use a parametrized list of mappings. While the results look nice in my IDE, where I can easily debug a single mapping validation test now: grafik

I was disappointed to see that CTest combines all the single GTest instances:

        Start 121: */LegacyControllerMappingValidationTest.ValidateMappingXML/*
121/840 Test #121: */LegacyControllerMappingValidationTest.ValidateMappingXML/* ...............................   Passed    0.37 sec
        Start 122: */LegacyControllerMappingValidationTest.LoadMapping/*
122/840 Test #122: */LegacyControllerMappingValidationTest.LoadMapping/* ......................................***Failed    5.44 sec

I could solve that by using gtest_discover_tests in the CMakelist.txt, now the CTest output looks like this:

          Start 1039: MidiMappingsValid/LegacyControllerMappingValidationTest.LoadMapping/Pioneer_CDJ_350_CH2#GetParam()=<MappingInfo>
1039/1107 Test #1039: MidiMappingsValid/LegacyControllerMappingValidationTest.LoadMapping/Pioneer_CDJ_350_CH2#GetParam()=<MappingInfo> .................................   Passed    0.45 sec
          Start 1040: MidiMappingsValid/LegacyControllerMappingValidationTest.LoadMapping/Pioneer_CDJ_850#GetParam()=<MappingInfo>
1040/1107 Test #1040: MidiMappingsValid/LegacyControllerMappingValidationTest.LoadMapping/Pioneer_CDJ_850#GetParam()=<MappingInfo> .....................................   Passed    0.45 sec
          Start 1041: MidiMappingsValid/LegacyControllerMappingValidationTest.LoadMapping/Pioneer_DDJ_200#GetParam()=<MappingInfo>
1041/1107 Test #1041: MidiMappingsValid/LegacyControllerMappingValidationTest.LoadMapping/Pioneer_DDJ_200#GetParam()=<MappingInfo> .....................................   Passed    0.53 sec
          Start 1042: MidiMappingsValid/LegacyControllerMappingValidationTest.LoadMapping/Pioneer_DDJ_400#GetParam()=<MappingInfo>
1042/1107 Test #1042: MidiMappingsValid/LegacyControllerMappingValidationTest.LoadMapping/Pioneer_DDJ_400#GetParam()=<MappingInfo> .....................................   Passed    0.45 sec
          Start 1043: MidiMappingsValid/LegacyControllerMappingValidationTest.LoadMapping/Pioneer_DDJ_FLX4#GetParam()=<MappingInfo>
1043/1107 Test #1043: MidiMappingsValid/LegacyControllerMappingValidationTest.LoadMapping/Pioneer_DDJ_FLX4#GetParam()=<MappingInfo> ....................................   Passed    0.47 sec