github.com/tiagovtristao/plz@v13.4.0+incompatible/src/gc/gc_test.go (about)

     1  package gc
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  
     8  	"github.com/thought-machine/please/src/core"
     9  )
    10  
    11  func TestTargetsToRemoveWithTests(t *testing.T) {
    12  	graph := createGraph()
    13  	labels, _ := targetsToRemove(graph, nil, nil, nil, nil, true)
    14  	assert.EqualValues(t, []core.BuildLabel{
    15  		bl("//src/cli:cli"),
    16  		bl("//src/parse:parse"),
    17  	}, labels)
    18  }
    19  
    20  func TestTargetsToRemoveWithoutTests(t *testing.T) {
    21  	graph := createGraph()
    22  	labels, _ := targetsToRemove(graph, nil, nil, nil, nil, false)
    23  	assert.EqualValues(t, []core.BuildLabel{
    24  		bl("//src/cli:cli"),
    25  		bl("//src/parse:parse"),
    26  	}, labels)
    27  }
    28  
    29  func TestTargetsToRemoveWithArgs(t *testing.T) {
    30  	graph := createGraph()
    31  	labels, _ := targetsToRemove(graph, nil, []core.BuildLabel{bl("//src/cli:cli")}, nil, nil, false)
    32  	assert.EqualValues(t, []core.BuildLabel{
    33  		bl("//src/parse:parse"),
    34  	}, labels)
    35  }
    36  
    37  func TestTargetsToRemoveFiltered(t *testing.T) {
    38  	graph := createGraph()
    39  	labels, _ := targetsToRemove(graph, []core.BuildLabel{bl("//src/cli:all")}, nil, nil, nil, false)
    40  	assert.EqualValues(t, []core.BuildLabel{
    41  		bl("//src/cli:cli"),
    42  	}, labels)
    43  }
    44  
    45  func createGraph() *core.BuildGraph {
    46  	graph := core.NewGraph()
    47  	createTarget(graph, "//src/core:core")
    48  	createTarget(graph, "//src/gc:gc", "//src/core:core")
    49  	createTest(graph, "//src/core:core_test", "//src/core:core")
    50  	createTarget(graph, "//src:please", "//src/core:core", "//src/gc:gc").IsBinary = true
    51  	createTarget(graph, "//src/gc:test_lib", "//src/core:core").TestOnly = true
    52  	createTest(graph, "//src/gc:gc_test", "//src/gc:test_lib", "//src/gc:gc")
    53  	createTarget(graph, "//src/parse:parse", "//src/core:core")
    54  	createTarget(graph, "//src/cli:cli")
    55  	return graph
    56  }
    57  
    58  func createTarget(graph *core.BuildGraph, name string, deps ...string) *core.BuildTarget {
    59  	target := core.NewBuildTarget(bl(name))
    60  	graph.AddTarget(target)
    61  	for _, dep := range deps {
    62  		label := bl(dep)
    63  		target.AddDependency(label)
    64  		graph.AddDependency(target.Label, label)
    65  	}
    66  	return target
    67  }
    68  
    69  func createTest(graph *core.BuildGraph, name string, deps ...string) *core.BuildTarget {
    70  	target := createTarget(graph, name, deps...)
    71  	target.IsBinary = true
    72  	target.IsTest = true
    73  	return target
    74  }
    75  
    76  func bl(in string) core.BuildLabel {
    77  	return core.ParseBuildLabel(in, "")
    78  }