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     /// As a HTML report
59     html,
60 }
61 
62 /// The level of reporting
63 enum ReportLevel {
64     /// Report a summary of the mutation statistics
65     summary,
66     /// Report alive mutants
67     alive,
68     /// Report all mutants
69     all
70 }
71 
72 /// Sections to include in the report
73 enum ReportSection {
74     /// alive mutants
75     alive,
76     /// killed mutants
77     killed,
78     /// all mutants
79     all_mut,
80     /// summary section of the mutation testing
81     summary,
82     /// mutation statistics
83     mut_stat,
84     /// test cases that killed the mutant
85     tc_killed,
86     /// test case statistics
87     tc_stat,
88     /// test case mapping to killed mutants
89     tc_map,
90     /// test case suggestions for killing mutants
91     tc_suggestion,
92     /// Test cases that has killed zero mutants
93     tc_killed_no_mutants,
94     /// Test cases that kill the same mutants
95     tc_full_overlap,
96     /// Test cases that kill the same mutants with a mutation ID column
97     tc_full_overlap_with_mutation_id,
98     /// Test groups defined by the user
99     tc_groups,
100     /// Minimal set of tests
101     tc_min_set,
102     /// Similarity between test cases
103     tc_similarity,
104     /// Similarity between test groups
105     tc_groups_similarity,
106 }
107 
108 /// How to sort test cases when reporting them by their kill statistics.
109 enum ReportKillSortOrder {
110     /// From the top down
111     top,
112     /// From the botton up
113     bottom,
114 }
115 
116 /// Administrative operation to perform
117 enum AdminOperation {
118     none,
119     /// Reset mutants to unknown
120     resetMutant,
121     ///
122     removeMutant,
123     ///
124     removeTestCase,
125 }
126 
127 /// Builtin analyzers for testing frameworks that find failing test cases
128 enum TestCaseAnalyzeBuiltin {
129     /// Tracker for the GoogleTest framework
130     gtest,
131     /// Tracker for the CTest binary test runner
132     ctest,
133     /// Tracker for failing makefile targets
134     makefile,
135 }