mutator

package
v0.4.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 7, 2026 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ProfileGremlinsCompatible = "gremlins-compatible"
	ProfileConservativeFast   = "conservative-fast"
	ProfileConservative       = "conservative"
	ProfileDefault            = "default"
	ProfileAggressive         = "aggressive"
)

Variables

This section is empty.

Functions

func FormatNode

func FormatNode(fset *token.FileSet, node ast.Node) string

func ValidateInlineIgnores

func ValidateInlineIgnores(filename string, src []byte, requireReason bool) ([]inlineIgnore, error)

Types

type Definition

type Definition struct {
	Name                 string   `json:"name"`
	Profile              string   `json:"profile"`
	Risk                 string   `json:"risk"`
	EquivalentMutantRisk string   `json:"equivalent_mutant_risk"`
	CompileErrorRisk     string   `json:"compile_error_risk"`
	ASTNodes             []string `json:"ast_nodes"`
	Example              string   `json:"example"`
	Reason               string   `json:"reason"`
}

func Definitions

func Definitions() []Definition

type Generator

type Generator interface {
	Generate(pkg, filename string, src []byte, profile string) ([]Mutant, error)
}

func ChainGenerators

func ChainGenerators(generators ...Generator) Generator

func DefaultGenerator

func DefaultGenerator() Generator

type GeneratorFunc

type GeneratorFunc func(pkg, filename string, src []byte, profile string) ([]Mutant, error)

func (GeneratorFunc) Generate

func (f GeneratorFunc) Generate(pkg, filename string, src []byte, profile string) ([]Mutant, error)

type Mutant

type Mutant struct {
	ID                  string   `json:"id"`
	Module              string   `json:"module"`
	Package             string   `json:"package"`
	File                string   `json:"file"`
	Line                int      `json:"line"`
	Function            string   `json:"function"`
	Operator            string   `json:"operator"`
	Original            string   `json:"original"`
	Mutated             string   `json:"mutated"`
	StartOffset         int      `json:"start_offset"`
	EndOffset           int      `json:"end_offset"`
	Diff                string   `json:"unified_diff"`
	Fingerprint         string   `json:"fingerprint"`
	Hint                string   `json:"hint"`
	Description         string   `json:"description"`
	EquivalentRisk      string   `json:"equivalent_risk"`
	Recommendation      string   `json:"recommendation"`
	CompileErrorRisk    string   `json:"compile_error_risk"`
	SemanticTags        []string `json:"semantic_tags,omitempty"`
	SemanticGroup       string   `json:"semantic_group,omitempty"`
	GroupLabel          string   `json:"group_label,omitempty"`
	GroupReason         string   `json:"group_reason,omitempty"`
	PlatformSensitive   bool     `json:"platform_sensitive,omitempty"`
	NonProgressRisk     string   `json:"non_progress_risk,omitempty"`
	SuggestedSkipReason string   `json:"suggested_skip_reason,omitempty"`
}

func Generate

func Generate(pkg, filename string, src []byte, profile string) ([]Mutant, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL