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 }