Skip to content

[bug] Mutation conditionals-negation only works partially with conditionals-boundary disabled #225

@hknutzen

Description

@hknutzen

🐞Bug Report

Bug Description

The mutation conditionals-negation is only applied to "==" and "!=" but not to ">", "<=", "<", ">=" if mutation conditionals-boundary is disabled.

To Reproduce

Steps to reproduce the behavior:

With this example code

package f

import "fmt"

func f(a, b int) string {
	return fmt.Sprintf("%v %v %v %v %v %v",
		a == b,
		a != b,
		a < b,
		a <= b,
		a > b,
		a >= b,
	)
}

run
gremlins run --dry-run --conditionals_boundary=false --workers 1
Output is

 NOT COVERED CONDITIONALS_NEGATION at f.go:7:5
 NOT COVERED CONDITIONALS_NEGATION at f.go:8:5

But with
gremlins run --dry-run --workers 1
we get

 NOT COVERED CONDITIONALS_NEGATION at f.go:7:5
 NOT COVERED CONDITIONALS_NEGATION at f.go:8:5
 NOT COVERED CONDITIONALS_BOUNDARY at f.go:9:5
 NOT COVERED CONDITIONALS_NEGATION at f.go:9:5
 NOT COVERED CONDITIONALS_BOUNDARY at f.go:10:5
 NOT COVERED CONDITIONALS_NEGATION at f.go:10:5
 NOT COVERED CONDITIONALS_BOUNDARY at f.go:11:5
 NOT COVERED CONDITIONALS_NEGATION at f.go:11:5
 NOT COVERED CONDITIONALS_BOUNDARY at f.go:12:5
 NOT COVERED CONDITIONALS_NEGATION at f.go:12:5

Found behaviour

Only two from six mutations of conditionals-negation are applied.

Expected behaviour

All six mutations should be applied, even if mutation conditionals-boundary is disabled.

Operating System

Metadata

Metadata

Assignees

Labels

c/bugCategory: A issue or PR related to a bug

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions