1# Copyright (C) 2018 and later: Unicode, Inc. and others. 2# License & terms of use: http://www.unicode.org/copyright.html 3 4from icutools.databuilder import * 5from icutools.databuilder.request_types import * 6 7 8def generate(config, io, common_vars): 9 requests = [] 10 requests += generate_rb(config, io, common_vars) 11 requests += generate_sprep(config, io, common_vars) 12 requests += generate_conv(config, io, common_vars) 13 requests += generate_other(config, io, common_vars) 14 requests += generate_copy(config, io, common_vars) 15 16 requests += [ 17 ListRequest( 18 name = "testdata_list", 19 variable_name = "testdata_all_output_files", 20 output_file = TmpFile("testdata.lst"), 21 include_tmp = True 22 ) 23 ] 24 25 return requests 26 27 28def generate_rb(config, io, common_vars): 29 basenames = [ 30 "calendar", 31 "casing", 32 "conversion", 33 "format", 34 "icuio", 35 "idna_rules", 36 "mc", 37 "root", 38 "sh_YU", 39 "sh", 40 "structLocale", 41 "te_IN_REVISED", 42 "te_IN", 43 "te", 44 "testaliases", 45 "testempty", 46 "testtypes", 47 # LSTM models 48 "Thai_graphclust_model4_heavy", 49 "Thai_codepoints_exclusive_model5_heavy", 50 "Burmese_graphclust_model5_heavy" 51 # "metaZones", 52 # "timezoneTypes", 53 # "windowsZones", 54 ] 55 return [ 56 # Inference rule for creating resource bundles 57 # Some test data resource bundles are known to have warnings and bad data. 58 # The -q option is there on purpose, so we don't see it normally. 59 # TODO: Use option -k? 60 RepeatedExecutionRequest( 61 name = "testrb", 62 category = "tests", 63 input_files = [InFile("%s.txt" % bn) for bn in basenames], 64 output_files = [OutFile("%s.res" % bn) for bn in basenames], 65 tool = IcuTool("genrb"), 66 args = "-q -s {IN_DIR} -d {OUT_DIR} {INPUT_FILE}", 67 format_with = {}, 68 repeat_with = {} 69 ), 70 # Other standalone res files 71 SingleExecutionRequest( 72 name = "encoded", 73 category = "tests", 74 input_files = [InFile("encoded.utf16be")], 75 output_files = [OutFile("encoded.res")], 76 tool = IcuTool("genrb"), 77 args = "-s {IN_DIR} -eUTF-16BE -d {OUT_DIR} {INPUT_FILES[0]}", 78 format_with = {} 79 ), 80 SingleExecutionRequest( 81 name = "zoneinfo64", 82 category = "tests", 83 input_files = [InFile("zoneinfo64.txt")], 84 output_files = [TmpFile("zoneinfo64.res")], 85 tool = IcuTool("genrb"), 86 args = "-s {IN_DIR} -d {TMP_DIR} {INPUT_FILES[0]}", 87 format_with = {} 88 ), 89 SingleExecutionRequest( 90 name = "filtertest", 91 category = "tests", 92 input_files = [InFile("filtertest.txt")], 93 output_files = [OutFile("filtertest.res")], 94 tool = IcuTool("genrb"), 95 args = "-s {IN_DIR} -d {OUT_DIR} -i {OUT_DIR} " 96 "--filterDir {IN_DIR}/filters filtertest.txt", 97 format_with = {} 98 ) 99 ] 100 101 102def generate_sprep(config, io, common_vars): 103 return [ 104 SingleExecutionRequest( 105 name = "nfscsi", 106 category = "tests", 107 input_files = [InFile("nfs4_cs_prep_ci.txt")], 108 output_files = [OutFile("nfscsi.spp")], 109 tool = IcuTool("gensprep"), 110 args = "-s {IN_DIR} -d {OUT_DIR} -b nfscsi -u 3.2.0 {INPUT_FILES[0]}", 111 format_with = {} 112 ), 113 SingleExecutionRequest( 114 name = "nfscss", 115 category = "tests", 116 input_files = [InFile("nfs4_cs_prep_cs.txt")], 117 output_files = [OutFile("nfscss.spp")], 118 tool = IcuTool("gensprep"), 119 args = "-s {IN_DIR} -d {OUT_DIR} -b nfscss -u 3.2.0 {INPUT_FILES[0]}", 120 format_with = {} 121 ), 122 SingleExecutionRequest( 123 name = "nfscis", 124 category = "tests", 125 input_files = [InFile("nfs4_cis_prep.txt")], 126 output_files = [OutFile("nfscis.spp")], 127 tool = IcuTool("gensprep"), 128 args = "-s {IN_DIR} -d {OUT_DIR} -b nfscis -u 3.2.0 -k -n {IN_DIR}/../../data/unidata {INPUT_FILES[0]}", 129 format_with = {} 130 ), 131 SingleExecutionRequest( 132 name = "nfsmxs", 133 category = "tests", 134 input_files = [InFile("nfs4_mixed_prep_s.txt")], 135 output_files = [OutFile("nfsmxs.spp")], 136 tool = IcuTool("gensprep"), 137 args = "-s {IN_DIR} -d {OUT_DIR} -b nfsmxs -u 3.2.0 -k -n {IN_DIR}/../../data/unidata {INPUT_FILES[0]}", 138 format_with = {} 139 ), 140 SingleExecutionRequest( 141 name = "nfsmxp", 142 category = "tests", 143 input_files = [InFile("nfs4_mixed_prep_p.txt")], 144 output_files = [OutFile("nfsmxp.spp")], 145 tool = IcuTool("gensprep"), 146 args = "-s {IN_DIR} -d {OUT_DIR} -b nfsmxp -u 3.2.0 -k -n {IN_DIR}/../../data/unidata {INPUT_FILES[0]}", 147 format_with = {} 148 ) 149 ] 150 151 152def generate_conv(config, io, common_vars): 153 basenames = [ 154 "test1", 155 "test1bmp", 156 "test2", 157 "test3", 158 "test4", 159 "test4x", 160 "test5", 161 "ibm9027" 162 ] 163 return [ 164 RepeatedExecutionRequest( 165 name = "test_conv", 166 category = "tests", 167 input_files = [InFile("%s.ucm" % bn) for bn in basenames], 168 output_files = [OutFile("%s.cnv" % bn) for bn in basenames], 169 tool = IcuTool("makeconv"), 170 args = "--small -d {OUT_DIR} {IN_DIR}/{INPUT_FILE}", 171 format_with = {}, 172 repeat_with = {} 173 ) 174 ] 175 176def generate_copy(config, io, common_vars): 177 return [ 178 CopyRequest( 179 name = "nam_typ", 180 input_file = OutFile("te.res"), 181 output_file = TmpFile("nam.typ") 182 ), 183 CopyRequest( 184 name = "old_l_testtypes", 185 input_file = InFile("old_l_testtypes.res"), 186 output_file = OutFile("old_l_testtypes.res") 187 ), 188 CopyRequest( 189 name = "old_e_testtypes", 190 input_file = InFile("old_e_testtypes.res"), 191 output_file = OutFile("old_e_testtypes.res") 192 ), 193 ] 194 195 196def generate_other(config, io, common_vars): 197 return [ 198 SingleExecutionRequest( 199 name = "testnorm", 200 category = "tests", 201 input_files = [InFile("testnorm.txt")], 202 output_files = [OutFile("testnorm.nrm")], 203 tool = IcuTool("gennorm2"), 204 args = "-s {IN_DIR} {INPUT_FILES[0]} -o {OUT_DIR}/{OUTPUT_FILES[0]}", 205 format_with = {} 206 ), 207 SingleExecutionRequest( 208 name = "test_icu", 209 category = "tests", 210 input_files = [], 211 output_files = [OutFile("test.icu")], 212 tool = IcuTool("gentest"), 213 args = "-d {OUT_DIR}", 214 format_with = {} 215 ), 216 SingleExecutionRequest( 217 name = "testtable32_txt", 218 category = "tests", 219 input_files = [], 220 output_files = [TmpFile("testtable32.txt")], 221 tool = IcuTool("gentest"), 222 args = "-r -d {TMP_DIR}", 223 format_with = {} 224 ), 225 SingleExecutionRequest( 226 name = "testtable32_res", 227 category = "tests", 228 input_files = [TmpFile("testtable32.txt")], 229 output_files = [OutFile("testtable32.res")], 230 tool = IcuTool("genrb"), 231 args = "-s {TMP_DIR} -d {OUT_DIR} {INPUT_FILES[0]}", 232 format_with = {} 233 ) 234 ] 235