summaryrefslogtreecommitdiff
path: root/src/plugins/autotest/catch/catchtestsettings.cpp
blob: 07dac310ebe76229612d95d901efe0388b90a57f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
// Copyright (C) 2020 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0

#include "catchtestsettings.h"

#include "../autotestconstants.h"
#include "../autotesttr.h"

#include <coreplugin/icore.h>

#include <utils/layoutbuilder.h>

using namespace Layouting;
using namespace Utils;

namespace Autotest::Internal {

CatchTestSettings::CatchTestSettings(Id settingsId)
{
    setId(settingsId);
    setCategory(Constants::AUTOTEST_SETTINGS_CATEGORY);
    setDisplayName(Tr::tr("Catch Test"));
    setSettingsGroups("Autotest", "Catch2");

    setLayouter([this](QWidget *widget) {
        Row { Form {
            showSuccess, br,
            breakOnFailure, br,
            noThrow, br,
            visibleWhitespace, br,
            abortAfterChecked, abortAfter, br,
            samplesChecked, benchmarkSamples, br,
            resamplesChecked, benchmarkResamples, br,
            confidenceIntervalChecked, confidenceInterval, br,
            warmupChecked, benchmarkWarmupTime, br,
            noAnalysis
        }, st }.attachTo(widget);
    });

    registerAspect(&abortAfter);
    abortAfter.setSettingsKey("AbortAfter");
    abortAfter.setRange(1, 9999);
    abortAfter.setEnabler(&abortAfterChecked);

    registerAspect(&benchmarkSamples);
    benchmarkSamples.setSettingsKey("BenchSamples");
    benchmarkSamples.setRange(1, 999999);
    benchmarkSamples.setDefaultValue(100);
    benchmarkSamples.setEnabler(&samplesChecked);

    registerAspect(&benchmarkResamples);
    benchmarkResamples.setSettingsKey("BenchResamples");
    benchmarkResamples.setRange(1, 9999999);
    benchmarkResamples.setDefaultValue(100000);
    benchmarkResamples.setToolTip(Tr::tr("Number of resamples for bootstrapping."));
    benchmarkResamples.setEnabler(&resamplesChecked);

    registerAspect(&confidenceInterval);
    confidenceInterval.setSettingsKey("BenchConfInt");
    confidenceInterval.setRange(0., 1.);
    confidenceInterval.setSingleStep(0.05);
    confidenceInterval.setDefaultValue(0.95);
    confidenceInterval.setEnabler(&confidenceIntervalChecked);

    registerAspect(&benchmarkWarmupTime);
    benchmarkWarmupTime.setSettingsKey("BenchWarmup");
    benchmarkWarmupTime.setSuffix(Tr::tr(" ms"));
    benchmarkWarmupTime.setRange(0, 10000);
    benchmarkWarmupTime.setEnabler(&warmupChecked);

    registerAspect(&abortAfterChecked);
    abortAfterChecked.setSettingsKey("AbortChecked");
    abortAfterChecked.setLabelText(Tr::tr("Abort after"));
    abortAfterChecked.setToolTip(Tr::tr("Aborts after the specified number of failures."));

    registerAspect(&samplesChecked);
    samplesChecked.setSettingsKey("SamplesChecked");
    samplesChecked.setLabelText(Tr::tr("Benchmark samples"));
    samplesChecked.setToolTip(Tr::tr("Number of samples to collect while running benchmarks."));

    registerAspect(&resamplesChecked);
    resamplesChecked.setSettingsKey("ResamplesChecked");
    resamplesChecked.setLabelText(Tr::tr("Benchmark resamples"));
    resamplesChecked.setToolTip(Tr::tr("Number of resamples used for statistical bootstrapping."));

    registerAspect(&confidenceIntervalChecked);
    confidenceIntervalChecked.setSettingsKey("ConfIntChecked");
    confidenceIntervalChecked.setToolTip(Tr::tr("Confidence interval used for statistical bootstrapping."));
    confidenceIntervalChecked.setLabelText(Tr::tr("Benchmark confidence interval"));

    registerAspect(&warmupChecked);
    warmupChecked.setSettingsKey("WarmupChecked");
    warmupChecked.setLabelText(Tr::tr("Benchmark warmup time"));
    warmupChecked.setToolTip(Tr::tr("Warmup time for each test."));

    registerAspect(&noAnalysis);
    noAnalysis.setSettingsKey("NoAnalysis");
    noAnalysis.setLabelText(Tr::tr("Disable analysis"));
    noAnalysis.setToolTip(Tr::tr("Disables statistical analysis and bootstrapping."));

    registerAspect(&showSuccess);
    showSuccess.setSettingsKey("ShowSuccess");
    showSuccess.setLabelText(Tr::tr("Show success"));
    showSuccess.setToolTip(Tr::tr("Show success for tests."));

    registerAspect(&breakOnFailure);
    breakOnFailure.setSettingsKey("BreakOnFailure");
    breakOnFailure.setDefaultValue(true);
    breakOnFailure.setLabelText(Tr::tr("Break on failure while debugging"));
    breakOnFailure.setToolTip(Tr::tr("Turns failures into debugger breakpoints."));

    registerAspect(&noThrow);
    noThrow.setSettingsKey("NoThrow");
    noThrow.setLabelText(Tr::tr("Skip throwing assertions"));
    noThrow.setToolTip(Tr::tr("Skips all assertions that test for thrown exceptions."));

    registerAspect(&visibleWhitespace);
    visibleWhitespace.setSettingsKey("VisibleWS");
    visibleWhitespace.setLabelText(Tr::tr("Visualize whitespace"));
    visibleWhitespace.setToolTip(Tr::tr("Makes whitespace visible."));

    registerAspect(&warnOnEmpty);
    warnOnEmpty.setSettingsKey("WarnEmpty");
    warnOnEmpty.setLabelText(Tr::tr("Warn on empty tests"));
    warnOnEmpty.setToolTip(Tr::tr("Warns if a test section does not check any assertion."));
}

} // Autotest::Internal