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 }