1*333d2b36SAndroid Build Coastguard Workerpackage { 2*333d2b36SAndroid Build Coastguard Worker default_applicable_licenses: ["Android-Apache-2.0"], 3*333d2b36SAndroid Build Coastguard Worker} 4*333d2b36SAndroid Build Coastguard Worker 5*333d2b36SAndroid Build Coastguard Workerbootstrap_go_package { 6*333d2b36SAndroid Build Coastguard Worker name: "soong-genrule", 7*333d2b36SAndroid Build Coastguard Worker pkgPath: "android/soong/genrule", 8*333d2b36SAndroid Build Coastguard Worker deps: [ 9*333d2b36SAndroid Build Coastguard Worker "blueprint", 10*333d2b36SAndroid Build Coastguard Worker "blueprint-pathtools", 11*333d2b36SAndroid Build Coastguard Worker "sbox_proto", 12*333d2b36SAndroid Build Coastguard Worker "soong", 13*333d2b36SAndroid Build Coastguard Worker "soong-android", 14*333d2b36SAndroid Build Coastguard Worker "soong-shared", 15*333d2b36SAndroid Build Coastguard Worker ], 16*333d2b36SAndroid Build Coastguard Worker srcs: [ 17*333d2b36SAndroid Build Coastguard Worker "allowlists.go", 18*333d2b36SAndroid Build Coastguard Worker "genrule.go", 19*333d2b36SAndroid Build Coastguard Worker "locations.go", 20*333d2b36SAndroid Build Coastguard Worker ], 21*333d2b36SAndroid Build Coastguard Worker testSrcs: [ 22*333d2b36SAndroid Build Coastguard Worker "genrule_test.go", 23*333d2b36SAndroid Build Coastguard Worker ], 24*333d2b36SAndroid Build Coastguard Worker pluginFor: ["soong_build"], 25*333d2b36SAndroid Build Coastguard Worker // Used by plugins 26*333d2b36SAndroid Build Coastguard Worker visibility: ["//visibility:public"], 27*333d2b36SAndroid Build Coastguard Worker} 28*333d2b36SAndroid Build Coastguard Worker 29*333d2b36SAndroid Build Coastguard Workergenrule { 30*333d2b36SAndroid Build Coastguard Worker name: "nsjail_genrule_test_input", 31*333d2b36SAndroid Build Coastguard Worker cmd: "echo nsjail_genrule_test_input > $(out)", 32*333d2b36SAndroid Build Coastguard Worker out: ["nsjail_genrule_test_input.txt"], 33*333d2b36SAndroid Build Coastguard Worker} 34*333d2b36SAndroid Build Coastguard Worker 35*333d2b36SAndroid Build Coastguard Worker// Pseudo-test that's run on checkbuilds to verify consistent directory 36*333d2b36SAndroid Build Coastguard Worker// structure for genrules using sbox or nsjail. 37*333d2b36SAndroid Build Coastguard Workergenrule_defaults { 38*333d2b36SAndroid Build Coastguard Worker name: "nsjail_genrule_test_gen_defaults", 39*333d2b36SAndroid Build Coastguard Worker // verify both relative paths and its contents 40*333d2b36SAndroid Build Coastguard Worker cmd: "(echo $(out) $(genDir) && sha256sum " + 41*333d2b36SAndroid Build Coastguard Worker "$(location get_clang_version) " + 42*333d2b36SAndroid Build Coastguard Worker "$(location py3-cmd) " + 43*333d2b36SAndroid Build Coastguard Worker "$(location genrule.go) " + 44*333d2b36SAndroid Build Coastguard Worker "$(location :nsjail_genrule_test_input) " + 45*333d2b36SAndroid Build Coastguard Worker "$(locations *.go)) | sed 's@\\./@@g' > $(out)", 46*333d2b36SAndroid Build Coastguard Worker tools: [ 47*333d2b36SAndroid Build Coastguard Worker "get_clang_version", // random tool 48*333d2b36SAndroid Build Coastguard Worker "py3-cmd", // random prebuilt tool 49*333d2b36SAndroid Build Coastguard Worker ], 50*333d2b36SAndroid Build Coastguard Worker tool_files: ["genrule.go"], // random local file 51*333d2b36SAndroid Build Coastguard Worker srcs: [ 52*333d2b36SAndroid Build Coastguard Worker ":nsjail_genrule_test_input", // random OutputFileProducer 53*333d2b36SAndroid Build Coastguard Worker "*.go", // random glob 54*333d2b36SAndroid Build Coastguard Worker ], 55*333d2b36SAndroid Build Coastguard Worker out: ["nsjail_genrule_test.txt"], 56*333d2b36SAndroid Build Coastguard Worker} 57*333d2b36SAndroid Build Coastguard Worker 58*333d2b36SAndroid Build Coastguard Workergenrule { 59*333d2b36SAndroid Build Coastguard Worker name: "nsjail_genrule_test_gen_without_nsjail", 60*333d2b36SAndroid Build Coastguard Worker defaults: ["nsjail_genrule_test_gen_defaults"], 61*333d2b36SAndroid Build Coastguard Worker} 62*333d2b36SAndroid Build Coastguard Worker 63*333d2b36SAndroid Build Coastguard Workergenrule { 64*333d2b36SAndroid Build Coastguard Worker name: "nsjail_genrule_test_gen_with_nsjail", 65*333d2b36SAndroid Build Coastguard Worker defaults: ["nsjail_genrule_test_gen_defaults"], 66*333d2b36SAndroid Build Coastguard Worker use_nsjail: true, 67*333d2b36SAndroid Build Coastguard Worker} 68*333d2b36SAndroid Build Coastguard Worker 69*333d2b36SAndroid Build Coastguard Workergenrule { 70*333d2b36SAndroid Build Coastguard Worker name: "nsjail_genrule_test", 71*333d2b36SAndroid Build Coastguard Worker srcs: [ 72*333d2b36SAndroid Build Coastguard Worker ":nsjail_genrule_test_gen_without_nsjail", 73*333d2b36SAndroid Build Coastguard Worker ":nsjail_genrule_test_gen_with_nsjail", 74*333d2b36SAndroid Build Coastguard Worker ], 75*333d2b36SAndroid Build Coastguard Worker cmd: "diff $(in) > $(out)", 76*333d2b36SAndroid Build Coastguard Worker out: ["nsjail_genrule_test"], 77*333d2b36SAndroid Build Coastguard Worker} 78