1*7594170eSAndroid Build Coastguard Worker"""Copyright (C) 2022 The Android Open Source Project 2*7594170eSAndroid Build Coastguard Worker 3*7594170eSAndroid Build Coastguard WorkerLicensed under the Apache License, Version 2.0 (the "License"); 4*7594170eSAndroid Build Coastguard Workeryou may not use this file except in compliance with the License. 5*7594170eSAndroid Build Coastguard WorkerYou may obtain a copy of the License at 6*7594170eSAndroid Build Coastguard Worker 7*7594170eSAndroid Build Coastguard Worker http://www.apache.org/licenses/LICENSE-2.0 8*7594170eSAndroid Build Coastguard Worker 9*7594170eSAndroid Build Coastguard WorkerUnless required by applicable law or agreed to in writing, software 10*7594170eSAndroid Build Coastguard Workerdistributed under the License is distributed on an "AS IS" BASIS, 11*7594170eSAndroid Build Coastguard WorkerWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*7594170eSAndroid Build Coastguard WorkerSee the License for the specific language governing permissions and 13*7594170eSAndroid Build Coastguard Workerlimitations under the License. 14*7594170eSAndroid Build Coastguard Worker""" 15*7594170eSAndroid Build Coastguard Worker 16*7594170eSAndroid Build Coastguard Workerload("@bazel_skylib//lib:unittest.bzl", "analysistest", "asserts") 17*7594170eSAndroid Build Coastguard Workerload("//build/bazel/rules/test_common:args.bzl", "get_arg_value") 18*7594170eSAndroid Build Coastguard Workerload( 19*7594170eSAndroid Build Coastguard Worker "//build/bazel/rules/test_common:paths.bzl", 20*7594170eSAndroid Build Coastguard Worker "get_output_and_package_dir_based_path", 21*7594170eSAndroid Build Coastguard Worker "get_package_dir_based_path", 22*7594170eSAndroid Build Coastguard Worker) 23*7594170eSAndroid Build Coastguard Workerload(":flex.bzl", "genlex") 24*7594170eSAndroid Build Coastguard Worker 25*7594170eSAndroid Build Coastguard Workerdef _single_l_file_to_c_test_impl(ctx): 26*7594170eSAndroid Build Coastguard Worker env = analysistest.begin(ctx) 27*7594170eSAndroid Build Coastguard Worker 28*7594170eSAndroid Build Coastguard Worker actions = analysistest.target_actions(env) 29*7594170eSAndroid Build Coastguard Worker 30*7594170eSAndroid Build Coastguard Worker asserts.equals(env, 1, len(actions)) 31*7594170eSAndroid Build Coastguard Worker 32*7594170eSAndroid Build Coastguard Worker actual_list_foo = [input.path for input in actions[0].inputs.to_list()] 33*7594170eSAndroid Build Coastguard Worker expected_path_foo = get_package_dir_based_path(env, "foo.l") 34*7594170eSAndroid Build Coastguard Worker asserts.true( 35*7594170eSAndroid Build Coastguard Worker env, 36*7594170eSAndroid Build Coastguard Worker expected_path_foo in actual_list_foo, 37*7594170eSAndroid Build Coastguard Worker ("Input file %s not present or incorrect in Bazel action for " + 38*7594170eSAndroid Build Coastguard Worker "target foo. Actual list of inputs: %s") % ( 39*7594170eSAndroid Build Coastguard Worker expected_path_foo, 40*7594170eSAndroid Build Coastguard Worker actual_list_foo, 41*7594170eSAndroid Build Coastguard Worker ), 42*7594170eSAndroid Build Coastguard Worker ) 43*7594170eSAndroid Build Coastguard Worker expected_output = get_output_and_package_dir_based_path(env, "foo.c") 44*7594170eSAndroid Build Coastguard Worker actual_outputs = [output.path for output in actions[0].outputs.to_list()] 45*7594170eSAndroid Build Coastguard Worker asserts.true( 46*7594170eSAndroid Build Coastguard Worker env, 47*7594170eSAndroid Build Coastguard Worker expected_output in actual_outputs, 48*7594170eSAndroid Build Coastguard Worker ("Expected output %s not present or incorrect in Bazel action\n" + 49*7594170eSAndroid Build Coastguard Worker "Actual list of outputs: %s") % ( 50*7594170eSAndroid Build Coastguard Worker expected_output, 51*7594170eSAndroid Build Coastguard Worker actual_outputs, 52*7594170eSAndroid Build Coastguard Worker ), 53*7594170eSAndroid Build Coastguard Worker ) 54*7594170eSAndroid Build Coastguard Worker 55*7594170eSAndroid Build Coastguard Worker return analysistest.end(env) 56*7594170eSAndroid Build Coastguard Worker 57*7594170eSAndroid Build Coastguard Workersingle_l_file_to_c_test = analysistest.make(_single_l_file_to_c_test_impl) 58*7594170eSAndroid Build Coastguard Worker 59*7594170eSAndroid Build Coastguard Workerdef _test_single_l_file_to_c(): 60*7594170eSAndroid Build Coastguard Worker name = "single_l_file_to_c" 61*7594170eSAndroid Build Coastguard Worker test_name = name + "_test" 62*7594170eSAndroid Build Coastguard Worker genlex( 63*7594170eSAndroid Build Coastguard Worker name = name, 64*7594170eSAndroid Build Coastguard Worker srcs = ["foo.l"], 65*7594170eSAndroid Build Coastguard Worker tags = ["manual"], 66*7594170eSAndroid Build Coastguard Worker ) 67*7594170eSAndroid Build Coastguard Worker single_l_file_to_c_test( 68*7594170eSAndroid Build Coastguard Worker name = test_name, 69*7594170eSAndroid Build Coastguard Worker target_under_test = name, 70*7594170eSAndroid Build Coastguard Worker ) 71*7594170eSAndroid Build Coastguard Worker return test_name 72*7594170eSAndroid Build Coastguard Worker 73*7594170eSAndroid Build Coastguard Workerdef _single_ll_file_to_cc_test_impl(ctx): 74*7594170eSAndroid Build Coastguard Worker env = analysistest.begin(ctx) 75*7594170eSAndroid Build Coastguard Worker 76*7594170eSAndroid Build Coastguard Worker actions = analysistest.target_actions(env) 77*7594170eSAndroid Build Coastguard Worker 78*7594170eSAndroid Build Coastguard Worker asserts.equals(env, 1, len(actions)) 79*7594170eSAndroid Build Coastguard Worker 80*7594170eSAndroid Build Coastguard Worker actual_list_foo = [input.path for input in actions[0].inputs.to_list()] 81*7594170eSAndroid Build Coastguard Worker expected_path_foo = get_package_dir_based_path(env, "foo.ll") 82*7594170eSAndroid Build Coastguard Worker asserts.true( 83*7594170eSAndroid Build Coastguard Worker env, 84*7594170eSAndroid Build Coastguard Worker expected_path_foo in actual_list_foo, 85*7594170eSAndroid Build Coastguard Worker ("Input file %s not present or incorrect in Bazel action for " + 86*7594170eSAndroid Build Coastguard Worker "target foo. Actual list of inputs: %s") % ( 87*7594170eSAndroid Build Coastguard Worker expected_path_foo, 88*7594170eSAndroid Build Coastguard Worker actual_list_foo, 89*7594170eSAndroid Build Coastguard Worker ), 90*7594170eSAndroid Build Coastguard Worker ) 91*7594170eSAndroid Build Coastguard Worker expected_output = get_output_and_package_dir_based_path(env, "foo.cc") 92*7594170eSAndroid Build Coastguard Worker actual_outputs = [output.path for output in actions[0].outputs.to_list()] 93*7594170eSAndroid Build Coastguard Worker asserts.true( 94*7594170eSAndroid Build Coastguard Worker env, 95*7594170eSAndroid Build Coastguard Worker expected_output in actual_outputs, 96*7594170eSAndroid Build Coastguard Worker ("Expected output %s not present or incorrect in Bazel action\n" + 97*7594170eSAndroid Build Coastguard Worker "Actual list of outputs: %s") % ( 98*7594170eSAndroid Build Coastguard Worker expected_output, 99*7594170eSAndroid Build Coastguard Worker actual_outputs, 100*7594170eSAndroid Build Coastguard Worker ), 101*7594170eSAndroid Build Coastguard Worker ) 102*7594170eSAndroid Build Coastguard Worker 103*7594170eSAndroid Build Coastguard Worker return analysistest.end(env) 104*7594170eSAndroid Build Coastguard Worker 105*7594170eSAndroid Build Coastguard Workersingle_ll_file_to_cc_test = analysistest.make(_single_ll_file_to_cc_test_impl) 106*7594170eSAndroid Build Coastguard Worker 107*7594170eSAndroid Build Coastguard Workerdef _test_single_ll_file_to_cc(): 108*7594170eSAndroid Build Coastguard Worker name = "single_ll_file_to_cc" 109*7594170eSAndroid Build Coastguard Worker test_name = name + "_test" 110*7594170eSAndroid Build Coastguard Worker genlex( 111*7594170eSAndroid Build Coastguard Worker name = name, 112*7594170eSAndroid Build Coastguard Worker srcs = ["foo.ll"], 113*7594170eSAndroid Build Coastguard Worker tags = ["manual"], 114*7594170eSAndroid Build Coastguard Worker ) 115*7594170eSAndroid Build Coastguard Worker single_ll_file_to_cc_test( 116*7594170eSAndroid Build Coastguard Worker name = test_name, 117*7594170eSAndroid Build Coastguard Worker target_under_test = name, 118*7594170eSAndroid Build Coastguard Worker ) 119*7594170eSAndroid Build Coastguard Worker return test_name 120*7594170eSAndroid Build Coastguard Worker 121*7594170eSAndroid Build Coastguard Workerdef _multiple_files_correct_type_test_impl(ctx): 122*7594170eSAndroid Build Coastguard Worker env = analysistest.begin(ctx) 123*7594170eSAndroid Build Coastguard Worker 124*7594170eSAndroid Build Coastguard Worker actions = analysistest.target_actions(env) 125*7594170eSAndroid Build Coastguard Worker 126*7594170eSAndroid Build Coastguard Worker asserts.equals(env, 2, len(actions)) 127*7594170eSAndroid Build Coastguard Worker 128*7594170eSAndroid Build Coastguard Worker actual_list_foo = [input.path for input in actions[0].inputs.to_list()] 129*7594170eSAndroid Build Coastguard Worker expected_path_foo = get_package_dir_based_path(env, "foo.l") 130*7594170eSAndroid Build Coastguard Worker asserts.true( 131*7594170eSAndroid Build Coastguard Worker env, 132*7594170eSAndroid Build Coastguard Worker expected_path_foo in actual_list_foo, 133*7594170eSAndroid Build Coastguard Worker ("Input file %s not present or incorrect in Bazel action for " + 134*7594170eSAndroid Build Coastguard Worker "target foo. Actual list of inputs: %s") % ( 135*7594170eSAndroid Build Coastguard Worker expected_path_foo, 136*7594170eSAndroid Build Coastguard Worker actual_list_foo, 137*7594170eSAndroid Build Coastguard Worker ), 138*7594170eSAndroid Build Coastguard Worker ) 139*7594170eSAndroid Build Coastguard Worker actual_list_bar = [input.path for input in actions[1].inputs.to_list()] 140*7594170eSAndroid Build Coastguard Worker expected_path_bar = get_package_dir_based_path(env, "bar.l") 141*7594170eSAndroid Build Coastguard Worker asserts.true( 142*7594170eSAndroid Build Coastguard Worker env, 143*7594170eSAndroid Build Coastguard Worker expected_path_bar in actual_list_bar, 144*7594170eSAndroid Build Coastguard Worker ("Input file %s not present or incorrect in Bazel action for " + 145*7594170eSAndroid Build Coastguard Worker "target bar. Actual list of inputs: %s") % ( 146*7594170eSAndroid Build Coastguard Worker expected_path_bar, 147*7594170eSAndroid Build Coastguard Worker actual_list_bar, 148*7594170eSAndroid Build Coastguard Worker ), 149*7594170eSAndroid Build Coastguard Worker ) 150*7594170eSAndroid Build Coastguard Worker 151*7594170eSAndroid Build Coastguard Worker expected_output = get_output_and_package_dir_based_path(env, "foo.c") 152*7594170eSAndroid Build Coastguard Worker actual_outputs = [output.path for output in actions[0].outputs.to_list()] 153*7594170eSAndroid Build Coastguard Worker asserts.true( 154*7594170eSAndroid Build Coastguard Worker env, 155*7594170eSAndroid Build Coastguard Worker expected_output in actual_outputs, 156*7594170eSAndroid Build Coastguard Worker ("Expected output %s not present or incorrect in Bazel action" + 157*7594170eSAndroid Build Coastguard Worker "for source file foo.l\n" + 158*7594170eSAndroid Build Coastguard Worker "Actual list of outputs: %s") % ( 159*7594170eSAndroid Build Coastguard Worker expected_output, 160*7594170eSAndroid Build Coastguard Worker actual_outputs, 161*7594170eSAndroid Build Coastguard Worker ), 162*7594170eSAndroid Build Coastguard Worker ) 163*7594170eSAndroid Build Coastguard Worker expected_output = get_output_and_package_dir_based_path(env, "bar.c") 164*7594170eSAndroid Build Coastguard Worker actual_outputs = [output.path for output in actions[1].outputs.to_list()] 165*7594170eSAndroid Build Coastguard Worker asserts.true( 166*7594170eSAndroid Build Coastguard Worker env, 167*7594170eSAndroid Build Coastguard Worker expected_output in actual_outputs, 168*7594170eSAndroid Build Coastguard Worker ("Expected output %s not present or incorrect in Bazel action " + 169*7594170eSAndroid Build Coastguard Worker "for source file bar.l\n" + 170*7594170eSAndroid Build Coastguard Worker "Actual list of outputs: %s") % ( 171*7594170eSAndroid Build Coastguard Worker expected_output, 172*7594170eSAndroid Build Coastguard Worker actual_outputs, 173*7594170eSAndroid Build Coastguard Worker ), 174*7594170eSAndroid Build Coastguard Worker ) 175*7594170eSAndroid Build Coastguard Worker 176*7594170eSAndroid Build Coastguard Worker return analysistest.end(env) 177*7594170eSAndroid Build Coastguard Worker 178*7594170eSAndroid Build Coastguard Workermultiple_files_correct_type_test = analysistest.make( 179*7594170eSAndroid Build Coastguard Worker _multiple_files_correct_type_test_impl, 180*7594170eSAndroid Build Coastguard Worker) 181*7594170eSAndroid Build Coastguard Worker 182*7594170eSAndroid Build Coastguard Workerdef _test_multiple_files_correct_type(): 183*7594170eSAndroid Build Coastguard Worker name = "multiple_files_correct_type" 184*7594170eSAndroid Build Coastguard Worker test_name = name + "_test" 185*7594170eSAndroid Build Coastguard Worker genlex( 186*7594170eSAndroid Build Coastguard Worker name = name, 187*7594170eSAndroid Build Coastguard Worker srcs = ["foo.l", "bar.l"], 188*7594170eSAndroid Build Coastguard Worker tags = ["manual"], 189*7594170eSAndroid Build Coastguard Worker ) 190*7594170eSAndroid Build Coastguard Worker multiple_files_correct_type_test( 191*7594170eSAndroid Build Coastguard Worker name = test_name, 192*7594170eSAndroid Build Coastguard Worker target_under_test = name, 193*7594170eSAndroid Build Coastguard Worker ) 194*7594170eSAndroid Build Coastguard Worker return test_name 195*7594170eSAndroid Build Coastguard Worker 196*7594170eSAndroid Build Coastguard Workerdef _output_arg_test_impl(ctx): 197*7594170eSAndroid Build Coastguard Worker env = analysistest.begin(ctx) 198*7594170eSAndroid Build Coastguard Worker 199*7594170eSAndroid Build Coastguard Worker actions = analysistest.target_actions(env) 200*7594170eSAndroid Build Coastguard Worker actual_list = actions[0].argv 201*7594170eSAndroid Build Coastguard Worker cli_string = " ".join(actions[0].argv) 202*7594170eSAndroid Build Coastguard Worker expected_value = get_output_and_package_dir_based_path(env, "foo.c") 203*7594170eSAndroid Build Coastguard Worker 204*7594170eSAndroid Build Coastguard Worker asserts.equals( 205*7594170eSAndroid Build Coastguard Worker env, 206*7594170eSAndroid Build Coastguard Worker expected_value, 207*7594170eSAndroid Build Coastguard Worker get_arg_value(actual_list, "-o"), 208*7594170eSAndroid Build Coastguard Worker ("Argument -o not found or had unexpected value.\n" + 209*7594170eSAndroid Build Coastguard Worker "Expected value: %s\n" + 210*7594170eSAndroid Build Coastguard Worker "Command: %s") % ( 211*7594170eSAndroid Build Coastguard Worker expected_value, 212*7594170eSAndroid Build Coastguard Worker cli_string, 213*7594170eSAndroid Build Coastguard Worker ), 214*7594170eSAndroid Build Coastguard Worker ) 215*7594170eSAndroid Build Coastguard Worker 216*7594170eSAndroid Build Coastguard Worker return analysistest.end(env) 217*7594170eSAndroid Build Coastguard Worker 218*7594170eSAndroid Build Coastguard Workeroutput_arg_test = analysistest.make(_output_arg_test_impl) 219*7594170eSAndroid Build Coastguard Worker 220*7594170eSAndroid Build Coastguard Workerdef _test_output_arg(): 221*7594170eSAndroid Build Coastguard Worker name = "output_arg" 222*7594170eSAndroid Build Coastguard Worker test_name = name + "_test" 223*7594170eSAndroid Build Coastguard Worker genlex( 224*7594170eSAndroid Build Coastguard Worker name = name, 225*7594170eSAndroid Build Coastguard Worker srcs = ["foo.l"], 226*7594170eSAndroid Build Coastguard Worker tags = ["manual"], 227*7594170eSAndroid Build Coastguard Worker ) 228*7594170eSAndroid Build Coastguard Worker output_arg_test( 229*7594170eSAndroid Build Coastguard Worker name = test_name, 230*7594170eSAndroid Build Coastguard Worker target_under_test = name, 231*7594170eSAndroid Build Coastguard Worker ) 232*7594170eSAndroid Build Coastguard Worker return test_name 233*7594170eSAndroid Build Coastguard Worker 234*7594170eSAndroid Build Coastguard Workerdef _input_arg_test_impl(ctx): 235*7594170eSAndroid Build Coastguard Worker env = analysistest.begin(ctx) 236*7594170eSAndroid Build Coastguard Worker 237*7594170eSAndroid Build Coastguard Worker actions = analysistest.target_actions(env) 238*7594170eSAndroid Build Coastguard Worker actual_argv = actions[0].argv 239*7594170eSAndroid Build Coastguard Worker expected_value = get_package_dir_based_path(env, "foo.l") 240*7594170eSAndroid Build Coastguard Worker 241*7594170eSAndroid Build Coastguard Worker asserts.true( 242*7594170eSAndroid Build Coastguard Worker env, 243*7594170eSAndroid Build Coastguard Worker expected_value in actual_argv, 244*7594170eSAndroid Build Coastguard Worker "Input file %s not present or incorrect in flex command args" % 245*7594170eSAndroid Build Coastguard Worker expected_value, 246*7594170eSAndroid Build Coastguard Worker ) 247*7594170eSAndroid Build Coastguard Worker 248*7594170eSAndroid Build Coastguard Worker return analysistest.end(env) 249*7594170eSAndroid Build Coastguard Worker 250*7594170eSAndroid Build Coastguard Workerinput_arg_test = analysistest.make(_input_arg_test_impl) 251*7594170eSAndroid Build Coastguard Worker 252*7594170eSAndroid Build Coastguard Workerdef _test_input_arg(): 253*7594170eSAndroid Build Coastguard Worker name = "input_arg" 254*7594170eSAndroid Build Coastguard Worker test_name = name + "_test" 255*7594170eSAndroid Build Coastguard Worker genlex( 256*7594170eSAndroid Build Coastguard Worker name = name, 257*7594170eSAndroid Build Coastguard Worker srcs = ["foo.l"], 258*7594170eSAndroid Build Coastguard Worker tags = ["manual"], 259*7594170eSAndroid Build Coastguard Worker ) 260*7594170eSAndroid Build Coastguard Worker input_arg_test( 261*7594170eSAndroid Build Coastguard Worker name = test_name, 262*7594170eSAndroid Build Coastguard Worker target_under_test = name, 263*7594170eSAndroid Build Coastguard Worker ) 264*7594170eSAndroid Build Coastguard Worker return test_name 265*7594170eSAndroid Build Coastguard Worker 266*7594170eSAndroid Build Coastguard Workerdef _lexopts_test_impl(ctx): 267*7594170eSAndroid Build Coastguard Worker env = analysistest.begin(ctx) 268*7594170eSAndroid Build Coastguard Worker actions = analysistest.target_actions(env) 269*7594170eSAndroid Build Coastguard Worker 270*7594170eSAndroid Build Coastguard Worker actual_argv = actions[0].argv 271*7594170eSAndroid Build Coastguard Worker asserts.true( 272*7594170eSAndroid Build Coastguard Worker env, 273*7594170eSAndroid Build Coastguard Worker "foo_opt" in actual_argv, 274*7594170eSAndroid Build Coastguard Worker ("Did not find expected lexopt foo_opt %s for target foo in test " + 275*7594170eSAndroid Build Coastguard Worker "lexopts_test") % actual_argv, 276*7594170eSAndroid Build Coastguard Worker ) 277*7594170eSAndroid Build Coastguard Worker asserts.true( 278*7594170eSAndroid Build Coastguard Worker env, 279*7594170eSAndroid Build Coastguard Worker "bar_opt" in actual_argv, 280*7594170eSAndroid Build Coastguard Worker ("Did not find expected lexopt bar_opt %s for target bars in test " + 281*7594170eSAndroid Build Coastguard Worker "lexopts_test") % actual_argv, 282*7594170eSAndroid Build Coastguard Worker ) 283*7594170eSAndroid Build Coastguard Worker 284*7594170eSAndroid Build Coastguard Worker return analysistest.end(env) 285*7594170eSAndroid Build Coastguard Worker 286*7594170eSAndroid Build Coastguard Workerlexopts_test = analysistest.make(_lexopts_test_impl) 287*7594170eSAndroid Build Coastguard Worker 288*7594170eSAndroid Build Coastguard Workerdef _test_lexopts(): 289*7594170eSAndroid Build Coastguard Worker name = "lexopts" 290*7594170eSAndroid Build Coastguard Worker test_name = name + "_test" 291*7594170eSAndroid Build Coastguard Worker genlex( 292*7594170eSAndroid Build Coastguard Worker name = name, 293*7594170eSAndroid Build Coastguard Worker srcs = ["foo_lexopts.ll"], 294*7594170eSAndroid Build Coastguard Worker lexopts = ["foo_opt", "bar_opt"], 295*7594170eSAndroid Build Coastguard Worker tags = ["manual"], 296*7594170eSAndroid Build Coastguard Worker ) 297*7594170eSAndroid Build Coastguard Worker 298*7594170eSAndroid Build Coastguard Worker lexopts_test( 299*7594170eSAndroid Build Coastguard Worker name = test_name, 300*7594170eSAndroid Build Coastguard Worker target_under_test = name, 301*7594170eSAndroid Build Coastguard Worker ) 302*7594170eSAndroid Build Coastguard Worker return test_name 303*7594170eSAndroid Build Coastguard Worker 304*7594170eSAndroid Build Coastguard Worker# TODO(b/190006308): When fixed, l and ll sources can coexist. Remove this test. 305*7594170eSAndroid Build Coastguard Workerdef _l_and_ll_files_fails_test_impl(ctx): 306*7594170eSAndroid Build Coastguard Worker env = analysistest.begin(ctx) 307*7594170eSAndroid Build Coastguard Worker 308*7594170eSAndroid Build Coastguard Worker asserts.expect_failure( 309*7594170eSAndroid Build Coastguard Worker env, 310*7594170eSAndroid Build Coastguard Worker "srcs contains both .l and .ll files. Please use separate targets.", 311*7594170eSAndroid Build Coastguard Worker ) 312*7594170eSAndroid Build Coastguard Worker 313*7594170eSAndroid Build Coastguard Worker return analysistest.end(env) 314*7594170eSAndroid Build Coastguard Worker 315*7594170eSAndroid Build Coastguard Workerl_and_ll_files_fails_test = analysistest.make( 316*7594170eSAndroid Build Coastguard Worker _l_and_ll_files_fails_test_impl, 317*7594170eSAndroid Build Coastguard Worker expect_failure = True, 318*7594170eSAndroid Build Coastguard Worker) 319*7594170eSAndroid Build Coastguard Worker 320*7594170eSAndroid Build Coastguard Workerdef _test_l_and_ll_files_fails(): 321*7594170eSAndroid Build Coastguard Worker name = "l_and_ll_files_fails" 322*7594170eSAndroid Build Coastguard Worker test_name = name + "_test" 323*7594170eSAndroid Build Coastguard Worker genlex( 324*7594170eSAndroid Build Coastguard Worker name = name, 325*7594170eSAndroid Build Coastguard Worker srcs = ["foo_fails.l", "bar_fails.ll"], 326*7594170eSAndroid Build Coastguard Worker tags = ["manual"], 327*7594170eSAndroid Build Coastguard Worker ) 328*7594170eSAndroid Build Coastguard Worker l_and_ll_files_fails_test( 329*7594170eSAndroid Build Coastguard Worker name = test_name, 330*7594170eSAndroid Build Coastguard Worker target_under_test = name, 331*7594170eSAndroid Build Coastguard Worker ) 332*7594170eSAndroid Build Coastguard Worker return test_name 333*7594170eSAndroid Build Coastguard Worker 334*7594170eSAndroid Build Coastguard Workerdef flex_test_suite(name): 335*7594170eSAndroid Build Coastguard Worker native.test_suite( 336*7594170eSAndroid Build Coastguard Worker name = name, 337*7594170eSAndroid Build Coastguard Worker tests = [ 338*7594170eSAndroid Build Coastguard Worker _test_single_l_file_to_c(), 339*7594170eSAndroid Build Coastguard Worker _test_single_ll_file_to_cc(), 340*7594170eSAndroid Build Coastguard Worker _test_multiple_files_correct_type(), 341*7594170eSAndroid Build Coastguard Worker _test_output_arg(), 342*7594170eSAndroid Build Coastguard Worker _test_input_arg(), 343*7594170eSAndroid Build Coastguard Worker _test_lexopts(), 344*7594170eSAndroid Build Coastguard Worker _test_l_and_ll_files_fails(), 345*7594170eSAndroid Build Coastguard Worker ], 346*7594170eSAndroid Build Coastguard Worker ) 347