github.phpd.cn/thought-machine/please@v12.2.0+incompatible/tools/please_diff_graphs/diff/plz_diff_graphs_test.go (about) 1 package diff 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 8 "core" 9 ) 10 11 func TestDiffGraphsSimple(t *testing.T) { 12 changes := readAndDiffGraphs("tools/please_diff_graphs/diff/test_data/before.json", "tools/please_diff_graphs/diff/test_data/after.json", nil, nil, nil) 13 expected := []core.BuildLabel{ 14 core.ParseBuildLabel("//src/misc:plz_diff_graphs", ""), 15 core.ParseBuildLabel("//src/misc:plz_diff_graphs_test", ""), 16 } 17 assert.Equal(t, expected, changes) 18 } 19 20 func TestDiffGraphsRemovedPackage(t *testing.T) { 21 changes := readAndDiffGraphs("tools/please_diff_graphs/diff/test_data/before.json", "tools/please_diff_graphs/diff/test_data/removed_package.json", nil, nil, nil) 22 expected := []core.BuildLabel{} // Nothing because targets no longer exist 23 assert.Equal(t, expected, changes) 24 } 25 26 func TestDiffGraphsRemovedPackage2(t *testing.T) { 27 changes := readAndDiffGraphs("tools/please_diff_graphs/diff/test_data/removed_package.json", "tools/please_diff_graphs/diff/test_data/before.json", nil, nil, nil) 28 expected := []core.BuildLabel{ 29 core.ParseBuildLabel("//:all_tools", ""), 30 core.ParseBuildLabel("//src/cache/tools:cache_cleaner", ""), 31 core.ParseBuildLabel("//src/cache/tools:cache_cleaner_platform", ""), 32 } 33 assert.Equal(t, expected, changes) 34 } 35 36 func TestDiffGraphsChangedHash(t *testing.T) { 37 changes := readAndDiffGraphs("tools/please_diff_graphs/diff/test_data/before.json", "tools/please_diff_graphs/diff/test_data/changed_hash.json", nil, nil, nil) 38 expected := []core.BuildLabel{ 39 core.ParseBuildLabel("//:all_tools", ""), 40 core.ParseBuildLabel("//src/cache/server:http_cache_server_bin", ""), 41 } 42 assert.Equal(t, expected, changes) 43 } 44 45 func TestDiffGraphsChangedFile(t *testing.T) { 46 changedFile := []string{"src/build/java/net/thoughtmachine/please/test/TestCoverage.java"} 47 changes := readAndDiffGraphs("tools/please_diff_graphs/diff/test_data/before.json", "tools/please_diff_graphs/diff/test_data/before.json", changedFile, nil, nil) 48 expected := []core.BuildLabel{ 49 core.ParseBuildLabel("//:all_tools", ""), 50 core.ParseBuildLabel("//src/build/java:_junit_runner#jar", ""), 51 core.ParseBuildLabel("//src/build/java:junit_runner", ""), 52 core.ParseBuildLabel("//src/build/java/net/thoughtmachine/please/test:_junit_runner_parameterized_test#jar", ""), 53 core.ParseBuildLabel("//src/build/java/net/thoughtmachine/please/test:_junit_runner_parameterized_test#lib", ""), 54 core.ParseBuildLabel("//src/build/java/net/thoughtmachine/please/test:_junit_runner_test#jar", ""), 55 core.ParseBuildLabel("//src/build/java/net/thoughtmachine/please/test:_junit_runner_test#lib", ""), 56 core.ParseBuildLabel("//src/build/java/net/thoughtmachine/please/test:_please_coverage_class_loader_test#jar", ""), 57 core.ParseBuildLabel("//src/build/java/net/thoughtmachine/please/test:_please_coverage_class_loader_test#lib", ""), 58 core.ParseBuildLabel("//src/build/java/net/thoughtmachine/please/test:_resources_root_test#jar", ""), 59 core.ParseBuildLabel("//src/build/java/net/thoughtmachine/please/test:_resources_root_test#lib", ""), 60 core.ParseBuildLabel("//src/build/java/net/thoughtmachine/please/test:_test_coverage_test#jar", ""), 61 core.ParseBuildLabel("//src/build/java/net/thoughtmachine/please/test:_test_coverage_test#lib", ""), 62 core.ParseBuildLabel("//src/build/java/net/thoughtmachine/please/test:junit_runner", ""), 63 core.ParseBuildLabel("//src/build/java/net/thoughtmachine/please/test:junit_runner_parameterized_test", ""), 64 core.ParseBuildLabel("//src/build/java/net/thoughtmachine/please/test:junit_runner_test", ""), 65 core.ParseBuildLabel("//src/build/java/net/thoughtmachine/please/test:please_coverage_class_loader_test", ""), 66 core.ParseBuildLabel("//src/build/java/net/thoughtmachine/please/test:resources_root_test", ""), 67 core.ParseBuildLabel("//src/build/java/net/thoughtmachine/please/test:test_coverage_test", ""), 68 } 69 assert.Equal(t, expected, changes) 70 } 71 72 func TestDiffGraphsExcludeLabels(t *testing.T) { 73 changes := readAndDiffGraphs("tools/please_diff_graphs/diff/test_data/before.json", "tools/please_diff_graphs/diff/test_data/labels.json", nil, nil, []string{"manual"}) 74 expected := []core.BuildLabel{} 75 assert.Equal(t, expected, changes) 76 } 77 78 func TestDiffGraphsIncludeLabels(t *testing.T) { 79 changes := readAndDiffGraphs("tools/please_diff_graphs/diff/test_data/before.json", "tools/please_diff_graphs/diff/test_data/labels2.json", nil, []string{"py"}, nil) 80 expected := []core.BuildLabel{ 81 core.ParseBuildLabel("//src/build/python:pex_import_test", ""), 82 } 83 assert.Equal(t, expected, changes) 84 } 85 86 func readAndDiffGraphs(before, after string, changedFiles, include, exclude []string) []core.BuildLabel { 87 beforeGraph := ParseGraphOrDie(before) 88 afterGraph := ParseGraphOrDie(after) 89 return Graphs(beforeGraph, afterGraph, changedFiles, include, exclude, true) 90 }