1 /**
2 Copyright: Copyright (c) 2017, Joakim Brännström. All rights reserved.
3 License: MPL-2
4 Author: Joakim Brännström (joakim.brannstrom@gmx.com)
5 
6 This Source Code Form is subject to the terms of the Mozilla Public License,
7 v.2.0. If a copy of the MPL was not distributed with this file, You can obtain
8 one at http://mozilla.org/MPL/2.0/.
9 */
10 module dextool.plugin.mutate.type;
11 
12 /// The kind of mutation to perform
13 enum MutationKind {
14     /// any kind of mutation
15     any,
16     /// Relational operator replacement
17     ror,
18     /// Relational operator replacement for pointers
19     rorp,
20     /// Logical connector replacement
21     lcr,
22     /// Arithmetic operator replacement
23     aor,
24     /// Unary operator insert
25     uoi,
26     /// Absolute value replacement
27     abs,
28     /// Statement deletion
29     sdl,
30     /// Conditional operator replacement
31     cor,
32     /// Decision/Condition Coverage
33     dcc,
34     /// Decision/Condition Requirement
35     dcr,
36     /// Logical Connector Replacement Bit-wise
37     lcrb,
38 }
39 
40 /// The order the mutations are done when running in test_mutants mode
41 enum MutationOrder {
42     random,
43     consecutive,
44 }
45 
46 /// The kind of report to generate to the user
47 enum ReportKind {
48     /// As a plain text output
49     plain,
50     /// As a markdown report that
51     markdown,
52     /// As compiler warnings and a fix-it hint for the mutation
53     compiler,
54     /// As a JSON model
55     json,
56     /// In the CSV format
57     csv,
58 }
59 
60 /// The level of reporting
61 enum ReportLevel {
62     /// Report a summary of the mutation statistics
63     summary,
64     /// Report alive mutants
65     alive,
66     /// Report all mutants
67     all
68 }
69 
70 /// Sections to include in the report
71 enum ReportSection {
72     /// alive mutants
73     alive,
74     /// killed mutants
75     killed,
76     /// all mutants
77     all_mut,
78     /// summary section of the mutation testing
79     summary,
80     /// mutation statistics
81     mut_stat,
82     /// test cases that killed the mutant
83     tc_killed,
84     /// test case statistics
85     tc_stat,
86     /// test case mapping to killed mutants
87     tc_map,
88     /// test case suggestions for killing mutants
89     tc_suggestion,
90 }
91 
92 /// Administrative operation to perform
93 enum AdminOperation {
94     none,
95     /// Reset mutants to unknown
96     resetMutant,
97     ///
98     removeMutant,
99     ///
100     removeTestCase,
101 }
102 
103 /// Builtin analyzers for testing frameworks that find failing test cases
104 enum TestCaseAnalyzeBuiltin {
105     /// Tracker for the GoogleTest framework
106     gtest,
107     /// Tracker for the CTest binary test runner
108     ctest
109 }