github.com/sercand/please@v13.4.0+incompatible/test/parse_test/BUILD (about) 1 # Simulates a code generating rule to test the require / provide mechanism. 2 genrule( 3 name = "test_require_py", 4 outs = ["test_require.py"], 5 cmd = "touch $OUT", 6 test_only = True, 7 ) 8 9 genrule( 10 name = "test_require_go", 11 outs = ["test_require.go"], 12 cmd = "touch $OUT", 13 test_only = True, 14 ) 15 16 filegroup( 17 name = "test_require", 18 srcs = [ 19 ":test_require_go", 20 ":test_require_py", 21 ], 22 provides = { 23 "py": ":test_require_py", 24 "go": ":test_require_go", 25 }, 26 test_only = True, 27 deps = [ 28 ":test_require_go", 29 ":test_require_py", 30 ], 31 ) 32 33 python_test( 34 name = "require_provide_test", 35 srcs = ["require_provide_test.py"], 36 deps = [ 37 ":test_require", 38 ], 39 ) 40 41 # Test for adding additional outputs to a target. 42 genrule( 43 name = "_gen_output_name", 44 cmd = "echo test_additional_output.txt", 45 post_build = lambda _, output: add_out( 46 "_gen_output", 47 "".join(output).strip(), 48 ), 49 ) 50 51 genrule( 52 name = "_gen_output", 53 cmd = "echo -n \"kittens\" > $OUT", 54 deps = [ 55 ":_gen_output_name", 56 ], 57 ) 58 59 go_test( 60 name = "additional_output_test", 61 srcs = ["additional_output_test.go"], 62 data = [":_gen_output"], 63 ) 64 65 # Test for a target with a missing tool; we should still be able to parse the package. 66 genrule( 67 name = "missing_tool", 68 cmd = "$TOOL --version", 69 labels = ["manual"], 70 tools = ["python4.7"], 71 )