Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of mbed-sdk-tools by
tests.py
00001 """ 00002 mbed SDK 00003 Copyright (c) 2011-2013 ARM Limited 00004 00005 Licensed under the Apache License, Version 2.0 (the "License"); 00006 you may not use this file except in compliance with the License. 00007 You may obtain a copy of the License at 00008 00009 http://www.apache.org/licenses/LICENSE-2.0 00010 00011 Unless required by applicable law or agreed to in writing, software 00012 distributed under the License is distributed on an "AS IS" BASIS, 00013 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00014 See the License for the specific language governing permissions and 00015 limitations under the License. 00016 """ 00017 from tools.paths import * 00018 from tools.data.support import * 00019 from argparse import ArgumentTypeError 00020 from utils import columnate 00021 00022 try: 00023 import tools.private_settings as ps 00024 except: 00025 ps = object() 00026 00027 TEST_CMSIS_LIB = join(TEST_DIR, "cmsis", "lib") 00028 TEST_MBED_LIB = join(TEST_DIR, "mbed", "env") 00029 00030 PERIPHERALS = join(TEST_DIR, "peripherals") 00031 BENCHMARKS_DIR = join(TEST_DIR, "benchmarks") 00032 00033 SD = join(TEST_DIR, "sd") 00034 TMP102 = join(PERIPHERALS, 'TMP102') 00035 AT30TSE75X = join(PERIPHERALS, 'AT30TSE75X') 00036 00037 """ 00038 Wiring: 00039 * Ground: 00040 * LPC1*: p1 00041 * KL25Z: GND 00042 00043 * Vout 00044 * LPC1*: p40 00045 * KL25Z: P3V3 00046 00047 * TMP102 (I2C): 00048 * LPC1*: (SDA=p28 , SCL=p27) 00049 * KL25Z: (SDA=PTC9, SCL=PTC8) 00050 * MAXWSNENV: (SDA=TP6, SCL=TP5) 00051 00052 * digital_loop (Digital(In|Out|InOut), InterruptIn): 00053 * Arduino headers: (D0 <-> D7) 00054 * NUCLEO_*: (D2 <-> D9) 00055 * LPC1549: (D2 <-> D7) 00056 * LPC1*: (p5 <-> p25 ) 00057 * KL25Z: (PTA5<-> PTC6) 00058 * MAXWSNENV: (TP3 <-> TP4) 00059 * MAX32600MBED: (P1_0 <-> P4_7) 00060 * VK_RZ_A1H: (P3_2 <-> P5_6) 00061 00062 * port_loop (Port(In|Out|InOut)): 00063 * Arduino headers: (D0 <-> D7), (D1 <-> D6) 00064 * LPC1*: (p5 <-> p25), (p6 <-> p26) 00065 * KL25Z: (PTA5 <-> PTC6), (PTA4 <-> PTC5) 00066 * NUCLEO_F103RB: (PC_6 <-> PB_8), (PC_5 <-> PB_9) 00067 * MAXWSNENV: (TP1 <-> TP3), (TP2 <-> TP4) 00068 * MAX32600MBED: (P1_0 <-> P4_7), (P1_1 <-> P4_6) 00069 * VK_RZ_A1H: (P3_2 <-> P5_6), (P3_7 <-> P5_1) 00070 00071 * analog_loop (AnalogIn, AnalogOut): 00072 * Arduino headers: (A0 <-> A5) 00073 * NUCLEO64: (A0 <-> A2) 00074 * NUCLEO144: (A0 <-> D13) 00075 * LPC1549: (A0 <-> D12) 00076 * LPC1*: (p17 <-> p18 ) 00077 * KL25Z: (PTE30 <-> PTC2) 00078 00079 * analog_pot (AnalogIn): 00080 * Arduino headers: (A0, A1) 00081 * VK_RZ_A1H: (AN0, AN1) 00082 00083 * SD (SPI): 00084 * LPC1*: (mosi=p11 , miso=p12 , sclk=p13 , cs=p14 ) 00085 * KL25Z: (mosi=PTD2, miso=PTD3, sclk=PTD1, cs=PTD0) 00086 00087 * MMA7660 (I2C): 00088 * LPC1*: (SDA=p28 , SCL=p27) 00089 00090 * i2c_loop: 00091 * LPC1768: (p28 <-> p9), (p27 <-> p10) 00092 * NUCLEO64: (D14 <-> D3), (D15 <-> D6) 00093 * NUCLEO144: (D14 <-> PB_11), (D15 <-> PB_10) 00094 00095 * i2c_eeprom: 00096 * LPC1*: (SDA=p28 , SCL=p27) 00097 * KL25Z: (SDA=PTE0, SCL=PTE1) 00098 * VK_RZ_A1H:(SDA=P1_1, SCL=P1_0) 00099 00100 * can_transceiver: 00101 * LPC1768: (RX=p9, TX=p10) 00102 * LPC1549: (RX=D9, TX=D8) 00103 * LPC4088: (RX=p9, TX=p10) 00104 * VK_RZ_A1H:(RX=P5_9, TX=P5_10) 00105 * NUCLEO_F091RC: (RX=PA_11, TX=PA_12) 00106 * NUCLEO_F072RB: (RX=PA_11, TX=PA_12) 00107 * NUCLEO_F042K6: (RX=PA_11, TX=PA_12) 00108 * NUCLEO_F334R8: (RX=PA_11, TX=PA_12) 00109 * NUCLEO_F303RE: (RX=PA_11, TX=PA_12) 00110 * NUCLEO_F303K8: (RX=PA_11, TX=PA_12) 00111 * NUCLEO_F302R8: (RX=PA_11, TX=PA_12) 00112 * NUCLEO_F446RE: (RX=PA_11, TX=PA_12) 00113 * NUCLEO_F446ZE: (RX=PA_11, TX=PA_12) 00114 * DISCO_F469NI: (RX=PB_8, TX=PB_9) 00115 * DISCO_F4269ZI: (RX=PA_11, TX=PA_12) 00116 * NUCLEO_F103RB: (RX=PA_11, TX=PA_12) 00117 * NUCLEO_F746ZG: (RX=PA_11, TX=PA_12) 00118 * DISCO_F746NG: (RX=PB_8, TX=PB_9) 00119 * DISCO_L476VG: (RX=PA_11, TX=PA_12) 00120 * NUCLEO_L476RG: (RX=PA_11, TX=PA_12) 00121 * NUCLEO_L432KC: (RX=PA_11, TX=PA_12) 00122 00123 """ 00124 TESTS = [ 00125 # Automated MBED tests 00126 { 00127 "id": "MBED_A1", "description": "Basic", 00128 "source_dir": join(TEST_DIR, "mbed", "basic"), 00129 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00130 "automated": True, 00131 }, 00132 { 00133 "id": "MBED_A2", "description": "Semihost file system", 00134 "source_dir": join(TEST_DIR, "mbed", "file"), 00135 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00136 "automated": True, 00137 "mcu": ["LPC1768", "LPC2368", "LPC11U24"] 00138 }, 00139 { 00140 "id": "MBED_A3", "description": "C++ STL", 00141 "source_dir": join(TEST_DIR, "mbed", "stl"), 00142 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00143 "automated": False, 00144 }, 00145 { 00146 "id": "MBED_A4", "description": "I2C TMP102", 00147 "source_dir": join(TEST_DIR, "mbed", "i2c_TMP102"), 00148 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB, TMP102], 00149 "automated": True, 00150 "peripherals": ["TMP102"] 00151 }, 00152 { 00153 "id": "MBED_AT30TSE75X", "description": "I2C Temperature Sensor / EEPROM", 00154 "source_dir": join(TEST_DIR, "mbed", "i2c_at30tse75x"), 00155 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB, AT30TSE75X], 00156 "automated": False, 00157 "peripherals": ["AT30TSE75X"] 00158 }, 00159 { 00160 "id": "MBED_A5", "description": "DigitalIn DigitalOut", 00161 "source_dir": join(TEST_DIR, "mbed", "digitalin_digitalout"), 00162 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00163 "automated": True, 00164 "peripherals": ["digital_loop"] 00165 }, 00166 { 00167 "id": "MBED_A6", "description": "DigitalInOut", 00168 "source_dir": join(TEST_DIR, "mbed", "digitalinout"), 00169 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00170 "automated": True, 00171 "peripherals": ["digital_loop"] 00172 }, 00173 { 00174 "id": "MBED_A7", "description": "InterruptIn", 00175 "source_dir": join(TEST_DIR, "mbed", "interruptin"), 00176 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00177 "automated": True, 00178 "peripherals": ["digital_loop"] 00179 }, 00180 { 00181 "id": "MBED_A8", "description": "Analog", 00182 "source_dir": join(TEST_DIR, "mbed", "analog"), 00183 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00184 "automated": True, 00185 "peripherals": ["analog_loop"], 00186 "mcu": ["LPC1768", "LPC2368", "LPC2460", "KL25Z", "K64F", "K66F", "K22F", "LPC4088", "LPC1549", 00187 "NUCLEO_F072RB", "NUCLEO_F091RC", "NUCLEO_F302R8", "NUCLEO_F303K8", "NUCLEO_F303RE", "NUCLEO_F207ZG", 00188 "NUCLEO_F334R8", "NUCLEO_F303ZE", "NUCLEO_L053R8", "NUCLEO_L073RZ", "NUCLEO_L152RE", 00189 "NUCLEO_F410RB", "NUCLEO_F446RE", "NUCLEO_F446ZE", "NUCLEO_F429ZI", 00190 "DISCO_F407VG", "NUCLEO_F746ZG", "NUCLEO_L476RG", 00191 "DISCO_L053C8", "DISCO_F334C8", "DISCO_L476VG", "DISCO_F469NI", "DISCO_F429ZI", 00192 "ARCH_MAX", "MAX32600MBED", "MOTE_L152RC", "B96B_F446VE"] 00193 }, 00194 { 00195 "id": "MBED_A9", "description": "Serial Echo at 115200", 00196 "source_dir": join(TEST_DIR, "mbed", "echo"), 00197 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00198 "automated": True, 00199 #"host_test": "echo" 00200 }, 00201 { 00202 "id": "MBED_A10", "description": "PortOut PortIn", 00203 "source_dir": join(TEST_DIR, "mbed", "portout_portin"), 00204 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00205 "peripherals": ["port_loop"], 00206 "supported": DEFAULT_SUPPORT, 00207 "automated": True, 00208 }, 00209 { 00210 "id": "MBED_A11", "description": "PortInOut", 00211 "source_dir": join(TEST_DIR, "mbed", "portinout"), 00212 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00213 "peripherals": ["port_loop"], 00214 "supported": DEFAULT_SUPPORT, 00215 "automated": True, 00216 }, 00217 { 00218 "id": "MBED_A12", "description": "SD File System", 00219 "source_dir": join(TEST_DIR, "mbed", "sd"), 00220 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB, FS_LIBRARY], 00221 "automated": True, 00222 "peripherals": ["SD"] 00223 }, 00224 { 00225 "id": "MBED_A13", "description": "I2C MMA7660 accelerometer", 00226 "source_dir": join(TEST_DIR, "mbed", "i2c_MMA7660"), 00227 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB, join(PERIPHERALS, 'MMA7660')], 00228 "automated": True, 00229 "peripherals": ["MMA7660"] 00230 }, 00231 { 00232 "id": "MBED_A14", "description": "I2C Master", 00233 "source_dir": join(TEST_DIR, "mbed", "i2c_master"), 00234 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB,], 00235 }, 00236 { 00237 "id": "MBED_A15", "description": "I2C Slave", 00238 "source_dir": join(TEST_DIR, "mbed", "i2c_slave"), 00239 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB,], 00240 }, 00241 { 00242 "id": "MBED_A16", "description": "SPI Master", 00243 "source_dir": join(TEST_DIR, "mbed", "spi_master"), 00244 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB,], 00245 }, 00246 { 00247 "id": "MBED_A17", "description": "SPI Slave", 00248 "source_dir": join(TEST_DIR, "mbed", "spi_slave"), 00249 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB,], 00250 }, 00251 { 00252 "id": "MBED_A18", "description": "Interrupt vector relocation", 00253 "source_dir": join(TEST_DIR, "mbed", "vtor_reloc"), 00254 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB,], 00255 "mcu": ["LPC1768"], 00256 "automated": True, 00257 }, 00258 { 00259 "id": "MBED_A19", "description": "I2C EEPROM read/write test", 00260 "source_dir": join(TEST_DIR, "mbed", "i2c_eeprom"), 00261 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00262 "peripherals": ["24LC256"], 00263 "automated": True, 00264 }, 00265 { 00266 "id": "MBED_A20", "description": "I2C master/slave test", 00267 "source_dir": join(TEST_DIR, "mbed", "i2c_master_slave"), 00268 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB,], 00269 "automated": True, 00270 "peripherals": ["i2c_loop"] 00271 }, 00272 { 00273 "id": "MBED_A21", "description": "Call function before main (mbed_main)", 00274 "source_dir": join(TEST_DIR, "mbed", "call_before_main"), 00275 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00276 "automated": True, 00277 }, 00278 { 00279 "id": "MBED_A22", "description": "SPIFI for LPC4088 (test 1)", 00280 "source_dir": join(TEST_DIR, "mbed", "spifi1"), 00281 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00282 "automated": True, 00283 "mcu": ["LPC4088","LPC4088_DM"] 00284 }, 00285 { 00286 "id": "MBED_A23", "description": "SPIFI for LPC4088 (test 2)", 00287 "source_dir": join(TEST_DIR, "mbed", "spifi2"), 00288 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00289 "automated": True, 00290 "mcu": ["LPC4088","LPC4088_DM"] 00291 }, 00292 { 00293 "id": "MBED_A24", "description": "Serial echo with RTS/CTS flow control", 00294 "source_dir": join(TEST_DIR, "mbed", "echo_flow_control"), 00295 "dependencies": [MBED_LIBRARIES], 00296 "automated": "True", 00297 "host_test": "echo_flow_control", 00298 "mcu": ["LPC1768"], 00299 "peripherals": ["extra_serial"] 00300 }, 00301 { 00302 "id": "MBED_A25", "description": "I2C EEPROM line read/write test", 00303 "source_dir": join(TEST_DIR, "mbed", "i2c_eeprom_line"), 00304 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00305 "peripherals": ["24LC256"], 00306 "automated": True, 00307 }, 00308 { 00309 "id": "MBED_A26", "description": "AnalogIn potentiometer test", 00310 "source_dir": join(TEST_DIR, "mbed", "analog_pot"), 00311 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00312 "peripherals": ["analog_pot"], 00313 "automated": True, 00314 }, 00315 { 00316 "id": "MBED_A27", "description": "CAN loopback test", 00317 "source_dir": join(TEST_DIR, "mbed", "can_loopback"), 00318 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00319 "automated": True, 00320 "peripherals": ["can_transceiver"], 00321 "mcu": ["LPC1549", "LPC1768","B96B_F446VE", "VK_RZ_A1H", 00322 "NUCLEO_F091RC", "NUCLEO_F072RB", "NUCLEO_F042K6", "NUCLEO_F334R8", "NUCLEO_F207ZG", 00323 "NUCLEO_F303RE", "NUCLEO_F303K8", "NUCLEO_F302R8", "NUCLEO_F446RE","NUCLEO_F446ZE", 00324 "DISCO_F469NI", "DISCO_F429ZI", "NUCLEO_F103RB", "NUCLEO_F746ZG", 00325 "DISCO_F746NG", "DISCO_L476VG", "NUCLEO_L476RG", "NUCLEO_L432KC", 00326 "DISCO_F769NI", "NUCLEO_F767ZI"] 00327 }, 00328 { 00329 "id": "MBED_A28", "description": "CAN loopback test", 00330 "source_dir": join(TEST_DIR, "mbed", "can_loopback"), 00331 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00332 "automated": True, 00333 "mcu": ["B96B_F446VE", 00334 "NUCLEO_F091RC", "NUCLEO_F072RB", "NUCLEO_F042K6", "NUCLEO_F334R8", "NUCLEO_F207ZG", 00335 "NUCLEO_F303RE", "NUCLEO_F303K8", "NUCLEO_F302R8", "NUCLEO_F303ZE", "NUCLEO_F446RE","NUCLEO_F446ZE", 00336 "DISCO_F469NI", "DISCO_F429ZI", "NUCLEO_F103RB", "NUCLEO_F746ZG", 00337 "DISCO_F746NG", "DISCO_L476VG", "NUCLEO_L476RG", "NUCLEO_L432KC", 00338 "DISCO_F769NI", "NUCLEO_F767ZI"] 00339 }, 00340 { 00341 "id": "MBED_A29", "description": "i2c_master_slave_asynch", 00342 "source_dir": join(TEST_DIR, "mbed", "i2c_master_slave_asynch"), 00343 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00344 "automated": True, 00345 "peripherals": ["i2c_loop"] 00346 }, 00347 { 00348 "id": "MBED_BLINKY", "description": "Blinky", 00349 "source_dir": join(TEST_DIR, "mbed", "blinky"), 00350 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00351 "automated": False, 00352 }, 00353 { 00354 "id": "MBED_BUS", "description": "Blinky BUS", 00355 "source_dir": join(TEST_DIR, "mbed", "bus"), 00356 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00357 "automated": False, 00358 }, 00359 00360 { 00361 "id": "MBED_BUSOUT", "description": "BusOut", 00362 "source_dir": join(TEST_DIR, "mbed", "bus_out"), 00363 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00364 "exclude_mcu": ["NUCLEO_L011K4"], 00365 "automated": True, 00366 }, 00367 00368 # Size benchmarks 00369 { 00370 "id": "BENCHMARK_1", "description": "Size (c environment)", 00371 "source_dir": join(BENCHMARKS_DIR, "cenv"), 00372 "dependencies": [MBED_LIBRARIES] 00373 }, 00374 { 00375 "id": "BENCHMARK_2", "description": "Size (float math)", 00376 "source_dir": join(BENCHMARKS_DIR, "float_math"), 00377 "dependencies": [MBED_LIBRARIES] 00378 }, 00379 { 00380 "id": "BENCHMARK_3", "description": "Size (printf)", 00381 "source_dir": join(BENCHMARKS_DIR, "printf"), 00382 "dependencies": [MBED_LIBRARIES] 00383 }, 00384 { 00385 "id": "BENCHMARK_4", "description": "Size (mbed libs)", 00386 "source_dir": join(BENCHMARKS_DIR, "mbed"), 00387 "dependencies": [MBED_LIBRARIES] 00388 }, 00389 { 00390 "id": "BENCHMARK_5", "description": "Size (all)", 00391 "source_dir": join(BENCHMARKS_DIR, "all"), 00392 "dependencies": [MBED_LIBRARIES] 00393 }, 00394 00395 # performance related tests 00396 { 00397 "id": "PERF_1", "description": "SD Stdio R/W Speed", 00398 "source_dir": join(TEST_DIR, "mbed", "sd_perf_stdio"), 00399 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB, FS_LIBRARY], 00400 "automated": True, 00401 "peripherals": ["SD"] 00402 }, 00403 { 00404 "id": "PERF_2", "description": "SD FileHandle R/W Speed", 00405 "source_dir": join(TEST_DIR, "mbed", "sd_perf_fhandle"), 00406 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB, FS_LIBRARY], 00407 "automated": True, 00408 "peripherals": ["SD"] 00409 }, 00410 { 00411 "id": "PERF_3", "description": "SD FatFS R/W Speed", 00412 "source_dir": join(TEST_DIR, "mbed", "sd_perf_fatfs"), 00413 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB, FS_LIBRARY], 00414 "automated": True, 00415 "peripherals": ["SD"] 00416 }, 00417 00418 00419 # Not automated MBED tests 00420 { 00421 "id": "MBED_1", "description": "I2C SRF08", 00422 "source_dir": join(TEST_DIR, "mbed", "i2c_SRF08"), 00423 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB, join(PERIPHERALS, 'SRF08')], 00424 "peripherals": ["SRF08"] 00425 }, 00426 { 00427 "id": "MBED_2", "description": "stdio", 00428 "source_dir": join(TEST_DIR, "mbed", "stdio"), 00429 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00430 "automated": True, 00431 #"host_test": "stdio_auto" 00432 }, 00433 { 00434 "id": "MBED_3", "description": "PortOut", 00435 "source_dir": join(TEST_DIR, "mbed", "portout"), 00436 "dependencies": [MBED_LIBRARIES], 00437 }, 00438 { 00439 "id": "MBED_4", "description": "Sleep", 00440 "source_dir": join(TEST_DIR, "mbed", "sleep"), 00441 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00442 "mcu": ["LPC1768", "LPC11U24", "LPC4088","LPC4088_DM","NRF51822", "LPC11U68"] 00443 }, 00444 { 00445 "id": "MBED_5", "description": "PWM", 00446 "source_dir": join(TEST_DIR, "mbed", "pwm"), 00447 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB] 00448 }, 00449 { 00450 "id": "MBED_6", "description": "SW Reset", 00451 "source_dir": join(TEST_DIR, "mbed", "reset"), 00452 "dependencies": [MBED_LIBRARIES], 00453 }, 00454 { 00455 "id": "MBED_7", "description": "stdio benchmark", 00456 "source_dir": join(TEST_DIR, "mbed", "stdio_benchmark"), 00457 "dependencies": [MBED_LIBRARIES], 00458 }, 00459 { 00460 "id": "MBED_8", "description": "SPI", 00461 "source_dir": join(TEST_DIR, "mbed", "spi"), 00462 "dependencies": [MBED_LIBRARIES], 00463 }, 00464 { 00465 "id": "MBED_9", "description": "Sleep Timeout", 00466 "source_dir": join(TEST_DIR, "mbed", "sleep_timeout"), 00467 "dependencies": [MBED_LIBRARIES], 00468 }, 00469 { 00470 "id": "MBED_10", "description": "Hello World", 00471 "source_dir": join(TEST_DIR, "mbed", "hello"), 00472 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00473 "automated": True, 00474 #"host_test": "hello_auto", 00475 }, 00476 { 00477 "id": "MBED_11", "description": "Ticker Int", 00478 "source_dir": join(TEST_DIR, "mbed", "ticker"), 00479 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00480 "automated": True, 00481 #"host_test": "wait_us_auto", 00482 }, 00483 { 00484 "id": "MBED_12", "description": "C++", 00485 "source_dir": join(TEST_DIR, "mbed", "cpp"), 00486 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00487 "automated": True 00488 }, 00489 { 00490 "id": "MBED_13", "description": "Heap & Stack", 00491 "source_dir": join(TEST_DIR, "mbed", "heap_and_stack"), 00492 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00493 }, 00494 { 00495 "id": "MBED_14", "description": "Serial Interrupt", 00496 "source_dir": join(TEST_DIR, "mbed", "serial_interrupt"), 00497 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00498 }, 00499 { 00500 "id": "MBED_15", "description": "RPC", 00501 "source_dir": join(TEST_DIR, "mbed", "rpc"), 00502 "dependencies": [MBED_LIBRARIES, join(LIB_DIR, "rpc"), TEST_MBED_LIB], 00503 "automated": False, 00504 "mcu": ["LPC1768"] 00505 }, 00506 { 00507 "id": "MBED_16", "description": "RTC", 00508 "source_dir": join(TEST_DIR, "mbed", "rtc"), 00509 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00510 "automated": True, 00511 "exclude_mcu": ["NRF51822", "NRF51822_BOOT", "NRF51822_OTA", "NRF51822_Y5_MBUG", 00512 "NRF51_DK", "NRF51_DK_BOOT", "NRF51_DK_OTA", 00513 "NRF51_MICROBIT", "NRF51_MICROBIT_B", "NRF51_MICROBIT_BOOT", 00514 "NRF51_MICROBIT_B_BOOT", "NRF51_MICROBIT_B_OTA", "NRF51_MICROBIT_OTA", 00515 "HRM1017", "HRM1017_BOOT", "HRM1701_OTA", 00516 "NUCLEO_L011K4", 00517 "TY51822R3", "TY51822R3_BOOT", "TY51822R3_OTA", 00518 "NRF15_DONGLE", "NRF15_DONGLE_BOOT", "NRF15_DONGLE_OTA", 00519 "ARCH_BLE", "ARCH_BLE_BOOT", "ARCH_BLE_OTA", 00520 "ARCH_LINK", "ARCH_LINK_BOOT", "ARCH_LINK_OTA", 00521 "RBLAB_BLENANO", "RBLAB_BLENANO_BOOT", "RBLAB_BLENANO_OTA", 00522 "RBLAB_NRF51822", "RBLAB_NRF51822_BOOT", "RBLAB_NRF51822_OTA", 00523 "SEEED_TINY_BLE", "SEEED_TINY_BLE_BOOT", "SEEED_TINY_BLE_OTA", 00524 "WALLBOT_BLE", "WALLBOT_BLE_BOOT", "WALLBOT_BLE_OTA", 00525 "DELTA_DFCM_NNN40", "DELTA_DFCM_NNN40_BOOT", "DELTA_DFCM_NNN40_OTA", 00526 "LPC1114"], 00527 #"host_test": "rtc_auto", 00528 }, 00529 { 00530 "id": "MBED_17", "description": "Serial Interrupt 2", 00531 "source_dir": join(TEST_DIR, "mbed", "serial_interrupt_2"), 00532 "dependencies": [MBED_LIBRARIES], 00533 }, 00534 { 00535 "id": "MBED_18", "description": "Local FS Directory", 00536 "source_dir": join(TEST_DIR, "mbed", "dir"), 00537 "dependencies": [MBED_LIBRARIES], 00538 }, 00539 { 00540 "id": "MBED_19", "description": "SD FS Directory", 00541 "source_dir": join(TEST_DIR, "mbed", "dir_sd"), 00542 "dependencies": [MBED_LIBRARIES, FS_LIBRARY], 00543 "peripherals": ["SD"] 00544 }, 00545 { 00546 "id": "MBED_20", "description": "InterruptIn 2", 00547 "source_dir": join(TEST_DIR, "mbed", "interruptin_2"), 00548 "dependencies": [MBED_LIBRARIES], 00549 }, 00550 { 00551 "id": "MBED_21", "description": "freopen Stream", 00552 "source_dir": join(TEST_DIR, "mbed", "freopen"), 00553 "dependencies": [MBED_LIBRARIES], 00554 }, 00555 { 00556 "id": "MBED_22", "description": "Semihost", 00557 "source_dir": join(TEST_DIR, "mbed", "semihost"), 00558 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00559 "automated": True, 00560 "mcu": ["LPC1768", "LPC2368", "LPC11U24"] 00561 }, 00562 { 00563 "id": "MBED_23", "description": "Ticker Int us", 00564 "source_dir": join(TEST_DIR, "mbed", "ticker_2"), 00565 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00566 "automated": True, 00567 #"host_test": "wait_us_auto" 00568 }, 00569 { 00570 "id": "MBED_24", "description": "Timeout Int us", 00571 "source_dir": join(TEST_DIR, "mbed", "timeout"), 00572 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00573 "automated": True, 00574 #"host_test": "wait_us_auto" 00575 }, 00576 { 00577 "id": "MBED_25", "description": "Time us", 00578 "source_dir": join(TEST_DIR, "mbed", "time_us"), 00579 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00580 "automated": True, 00581 #"host_test": "wait_us_auto" 00582 }, 00583 { 00584 "id": "MBED_26", "description": "Integer constant division", 00585 "source_dir": join(TEST_DIR, "mbed", "div"), 00586 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00587 "automated": True, 00588 }, 00589 { 00590 "id": "MBED_27", "description": "SPI ADXL345", 00591 "source_dir": join(TEST_DIR, "mbed", "spi_ADXL345"), 00592 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB, join(PERIPHERALS, 'ADXL345')], 00593 "peripherals": ["ADXL345"] 00594 }, 00595 { 00596 "id": "MBED_28", "description": "Interrupt chaining (InterruptManager)", 00597 "source_dir": join(TEST_DIR, "mbed", "interrupt_chaining"), 00598 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00599 }, 00600 { 00601 "id": "MBED_29", "description": "CAN network test", 00602 "source_dir": join(TEST_DIR, "mbed", "can"), 00603 "dependencies": [MBED_LIBRARIES], 00604 "mcu": ["LPC1768", "LPC4088", "LPC1549", "RZ_A1H", "B96B_F446VE", "NUCLEO_F091RC", 00605 "NUCLEO_F072RB", "NUCLEO_F042K6", "NUCLEO_F334R8", "NUCLEO_F303RE", 00606 "NUCLEO_F303K8", "NUCLEO_F302R8", "NUCLEO_F446RE","NUCLEO_F446ZE", "DISCO_F469NI", "NUCLEO_F207ZG", 00607 "DISCO_F429ZI", "NUCLEO_F103RB", "NUCLEO_F746ZG", "DISCO_F746NG", 00608 "NUCLEO_L476RG", "NUCLEO_L432KC"] 00609 }, 00610 { 00611 "id": "MBED_30", "description": "CAN network test using interrupts", 00612 "source_dir": join(TEST_DIR, "mbed", "can_interrupt"), 00613 "dependencies": [MBED_LIBRARIES], 00614 "mcu": ["LPC1768", "LPC4088", "LPC1549", "RZ_A1H", "B96B_F446VE", "NUCLEO_F091RC", "NUCLEO_F207ZG", 00615 "NUCLEO_F072RB", "NUCLEO_F042K6", "NUCLEO_F334R8", "NUCLEO_F303RE", 00616 "NUCLEO_F303K8", "NUCLEO_F302R8", "NUCLEO_F446RE", "NUCLEO_F446ZE", "DISCO_F469NI", 00617 "DISCO_F429ZI", "NUCLEO_F103RB", "NUCLEO_F746ZG", "DISCO_F746NG", 00618 "NUCLEO_L476RG", "NUCLEO_L432KC"] 00619 }, 00620 { 00621 "id": "MBED_31", "description": "PWM LED test", 00622 "source_dir": join(TEST_DIR, "mbed", "pwm_led"), 00623 "dependencies": [MBED_LIBRARIES], 00624 }, 00625 { 00626 "id": "MBED_32", "description": "Pin toggling", 00627 "source_dir": join(TEST_DIR, "mbed", "pin_toggling"), 00628 "dependencies": [MBED_LIBRARIES], 00629 }, 00630 { 00631 "id": "MBED_33", "description": "C string operations", 00632 "source_dir": join(TEST_DIR, "mbed", "cstring"), 00633 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00634 "automated": False, 00635 }, 00636 { 00637 "id": "MBED_34", "description": "Ticker Two callbacks", 00638 "source_dir": join(TEST_DIR, "mbed", "ticker_3"), 00639 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00640 "automated": True, 00641 #"host_test": "wait_us_auto" 00642 }, 00643 { 00644 "id": "MBED_35", "description": "SPI C12832 display", 00645 "source_dir": join(TEST_DIR, "mbed", "spi_C12832"), 00646 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB, join(PERIPHERALS, 'C12832')], 00647 "peripherals": ["C12832"], 00648 "automated": True, 00649 }, 00650 { 00651 "id": "MBED_36", "description": "WFI correct behavior", 00652 "source_dir": join(TEST_DIR, "mbed", "wfi"), 00653 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00654 "automated": False 00655 }, 00656 { 00657 "id": "MBED_37", "description": "Serial NC RX", 00658 "source_dir": join(TEST_DIR, "mbed", "serial_nc_rx"), 00659 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00660 "exclude_mcu": ["NUCLEO_L011K4"], 00661 "automated": True 00662 }, 00663 { 00664 "id": "MBED_38", "description": "Serial NC TX", 00665 "source_dir": join(TEST_DIR, "mbed", "serial_nc_tx"), 00666 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00667 "exclude_mcu": ["NUCLEO_L011K4"], 00668 "automated": True 00669 }, 00670 { 00671 "id": "MBED_39", "description": "Serial Complete", 00672 "source_dir": join(TEST_DIR, "mbed", "serial_complete"), 00673 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 00674 "automated": False 00675 }, 00676 00677 # CMSIS RTOS tests 00678 { 00679 "id": "CMSIS_RTOS_1", "description": "Basic", 00680 "source_dir": join(TEST_DIR, "rtos", "cmsis", "basic"), 00681 "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES], 00682 }, 00683 { 00684 "id": "CMSIS_RTOS_2", "description": "Mutex", 00685 "source_dir": join(TEST_DIR, "rtos", "cmsis", "mutex"), 00686 "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES], 00687 }, 00688 { 00689 "id": "CMSIS_RTOS_3", "description": "Semaphore", 00690 "source_dir": join(TEST_DIR, "rtos", "cmsis", "semaphore"), 00691 "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES], 00692 }, 00693 { 00694 "id": "CMSIS_RTOS_4", "description": "Signals", 00695 "source_dir": join(TEST_DIR, "rtos", "cmsis", "signals"), 00696 "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES], 00697 }, 00698 { 00699 "id": "CMSIS_RTOS_5", "description": "Queue", 00700 "source_dir": join(TEST_DIR, "rtos", "cmsis", "queue"), 00701 "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES], 00702 }, 00703 { 00704 "id": "CMSIS_RTOS_6", "description": "Mail", 00705 "source_dir": join(TEST_DIR, "rtos", "cmsis", "mail"), 00706 "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES], 00707 }, 00708 { 00709 "id": "CMSIS_RTOS_7", "description": "Timer", 00710 "source_dir": join(TEST_DIR, "rtos", "cmsis", "timer"), 00711 "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES], 00712 }, 00713 { 00714 "id": "CMSIS_RTOS_8", "description": "ISR", 00715 "source_dir": join(TEST_DIR, "rtos", "cmsis", "isr"), 00716 "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES], 00717 }, 00718 00719 # mbed RTOS tests 00720 { 00721 "id": "RTOS_1", "description": "Basic thread", 00722 "source_dir": join(TEST_DIR, "rtos", "mbed", "basic"), 00723 "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES, TEST_MBED_LIB], 00724 "automated": True, 00725 #"host_test": "wait_us_auto", 00726 "mcu": ["LPC1768", "LPC1549", "LPC11U24", "LPC812", "LPC2460", "LPC824", "SSCI824", 00727 "KL25Z", "KL05Z", "K22F", "K64F", "K66F", "KL43Z", "KL46Z", "HEXIWEAR", 00728 "RZ_A1H", "VK_RZ_A1H", "DISCO_F407VG", "DISCO_F429ZI", "NUCLEO_F411RE", "DISCO_F469NI", "NUCLEO_F410RB", "NUCLEO_F429ZI", 00729 "NUCLEO_F401RE", "NUCLEO_F334R8", "DISCO_F334C8", "NUCLEO_F302R8", "NUCLEO_F070RB", "NUCLEO_F207ZG", 00730 "NUCLEO_L073RZ", "NUCLEO_F072RB", "NUCLEO_F091RC", "NUCLEO_L432KC", "DISCO_L476VG", "NUCLEO_L476RG", 00731 "DISCO_F401VC", "NUCLEO_F303RE", "NUCLEO_F303ZE", "NUCLEO_F303K8", "MAXWSNENV", "MAX32600MBED", "NUCLEO_L152RE", "NUCLEO_F446RE", "NUCLEO_F446ZE", "NUCLEO_F103RB", "DISCO_F746NG", "NUCLEO_F746ZG", "MOTE_L152RC", "B96B_F446VE", 00732 "EFM32HG_STK3400", "EFM32PG_STK3401", "EFM32LG_STK3600", "EFM32GG_STK3700", "EFM32WG_STK3800", 00733 "NRF51822", "NRF51_DK", "SEEED_TINY_BLE", "ARM_BEETLE_SOC", "NUCLEO_F767ZI", "DISCO_F769NI"], 00734 }, 00735 { 00736 "id": "RTOS_2", "description": "Mutex resource lock", 00737 "source_dir": join(TEST_DIR, "rtos", "mbed", "mutex"), 00738 "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES, TEST_MBED_LIB], 00739 "automated": True, 00740 "mcu": ["LPC1768", "LPC1549", "LPC11U24", "LPC812", "LPC2460", "LPC824", "SSCI824", 00741 "KL25Z", "KL05Z", "K22F", "K64F", "K66F", "KL43Z", "KL46Z", "HEXIWEAR", 00742 "RZ_A1H", "VK_RZ_A1H", "DISCO_F407VG", "DISCO_F429ZI", "NUCLEO_F411RE", "DISCO_F469NI", "NUCLEO_F410RB", "NUCLEO_F429ZI", 00743 "NUCLEO_F401RE", "NUCLEO_F334R8", "DISCO_F334C8", "NUCLEO_F302R8", "NUCLEO_F303ZE", "NUCLEO_F070RB", "NUCLEO_F207ZG", 00744 "NUCLEO_L073RZ", "NUCLEO_F072RB", "NUCLEO_F091RC", "NUCLEO_L432KC", "DISCO_L476VG", "NUCLEO_L476RG", 00745 "DISCO_F401VC", "NUCLEO_F303RE", "NUCLEO_F303K8", "MAXWSNENV", "MAX32600MBED", "NUCLEO_L152RE", "NUCLEO_F446RE", "NUCLEO_F103RB", "DISCO_F746NG", 00746 "NUCLEO_F446ZE", "NUCLEO_F746ZG", "MOTE_L152RC", "B96B_F446VE", 00747 "EFM32HG_STK3400", "EFM32PG_STK3401", "EFM32LG_STK3600", "EFM32GG_STK3700", "EFM32WG_STK3800", 00748 "NRF51822", "NRF51_DK", "SEEED_TINY_BLE", "ARM_BEETLE_SOC", "NUCLEO_F767ZI", "DISCO_F769NI"], 00749 }, 00750 { 00751 "id": "RTOS_3", "description": "Semaphore resource lock", 00752 "source_dir": join(TEST_DIR, "rtos", "mbed", "semaphore"), 00753 "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES, TEST_MBED_LIB], 00754 "automated": True, 00755 "mcu": ["LPC1768", "LPC1549", "LPC11U24", "LPC812", "LPC2460", "LPC824", "SSCI824", 00756 "KL25Z", "KL05Z", "K22F", "K64F", "K66F", "KL43Z", "KL46Z", "HEXIWEAR", 00757 "RZ_A1H", "VK_RZ_A1H", "DISCO_F407VG", "DISCO_F429ZI", "NUCLEO_F411RE", "DISCO_F469NI", "NUCLEO_F410RB", "NUCLEO_F429ZI", 00758 "NUCLEO_F401RE", "NUCLEO_F334R8", "DISCO_F334C8", "NUCLEO_F302R8", "NUCLEO_F303ZE", "NUCLEO_F070RB", "NUCLEO_F207ZG", 00759 "NUCLEO_L073RZ", "NUCLEO_F072RB", "NUCLEO_F091RC", "NUCLEO_L432KC", "DISCO_L476VG", "NUCLEO_L476RG", 00760 "DISCO_F401VC", "NUCLEO_F303RE", "NUCLEO_F303K8", "MAXWSNENV", "MAX32600MBED", "NUCLEO_L152RE", "NUCLEO_F446RE", "NUCLEO_F446ZE", 00761 "NUCLEO_F103RB", "DISCO_F746NG", 00762 "NUCLEO_F746ZG", "MOTE_L152RC", "B96B_F446VE", 00763 "EFM32HG_STK3400", "EFM32PG_STK3401", "EFM32LG_STK3600", "EFM32GG_STK3700", "EFM32WG_STK3800", 00764 "NRF51822", "NRF51_DK", "SEEED_TINY_BLE", "ARM_BEETLE_SOC", "NUCLEO_F767ZI", "DISCO_F769NI"], 00765 }, 00766 { 00767 "id": "RTOS_4", "description": "Signals messaging", 00768 "source_dir": join(TEST_DIR, "rtos", "mbed", "signals"), 00769 "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES, TEST_MBED_LIB], 00770 "automated": True, 00771 "mcu": ["LPC1768", "LPC1549", "LPC11U24", "LPC812", "LPC2460", "LPC824", "SSCI824", 00772 "KL25Z", "KL05Z", "K22F", "K64F", "K66F", "KL43Z", "KL46Z", "HEXIWEAR", 00773 "RZ_A1H", "VK_RZ_A1H", "DISCO_F407VG", "DISCO_F429ZI", "NUCLEO_F411RE", "DISCO_F469NI", "NUCLEO_F410RB", "NUCLEO_F429ZI", 00774 "NUCLEO_F401RE", "NUCLEO_F334R8", "DISCO_F334C8", "NUCLEO_F302R8", "NUCLEO_F303ZE", "NUCLEO_F070RB", "NUCLEO_F207ZG", 00775 "NUCLEO_L073RZ", "NUCLEO_F072RB", "NUCLEO_F091RC", "NUCLEO_L432KC", "DISCO_L476VG", "NUCLEO_L476RG", 00776 "DISCO_F401VC", "NUCLEO_F303RE", "NUCLEO_F303K8", "MAXWSNENV", "MAX32600MBED", "NUCLEO_L152RE", "NUCLEO_F446RE", "NUCLEO_F446ZE", 00777 "NUCLEO_F103RB", "DISCO_F746NG", 00778 "NUCLEO_F746ZG", "MOTE_L152RC", "B96B_F446VE", 00779 "EFM32HG_STK3400", "EFM32PG_STK3401", "EFM32LG_STK3600", "EFM32GG_STK3700", "EFM32WG_STK3800", 00780 "NRF51822", "NRF51_DK", "SEEED_TINY_BLE", "ARM_BEETLE_SOC", "NUCLEO_F767ZI", "DISCO_F769NI"], 00781 }, 00782 { 00783 "id": "RTOS_5", "description": "Queue messaging", 00784 "source_dir": join(TEST_DIR, "rtos", "mbed", "queue"), 00785 "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES, TEST_MBED_LIB], 00786 "automated": True, 00787 "mcu": ["LPC1768", "LPC1549", "LPC11U24", "LPC812", "LPC2460", "LPC824", "SSCI824", 00788 "KL25Z", "KL05Z", "K22F", "K64F", "K66F", "KL43Z", "KL46Z", "HEXIWEAR", 00789 "RZ_A1H", "VK_RZ_A1H", "DISCO_F407VG", "DISCO_F429ZI", "NUCLEO_F411RE", "DISCO_F469NI", "NUCLEO_F410RB", "NUCLEO_F429ZI", 00790 "NUCLEO_F401RE", "NUCLEO_F334R8", "DISCO_F334C8", "NUCLEO_F302R8", "NUCLEO_F303ZE", "NUCLEO_F070RB", "NUCLEO_F207ZG", 00791 "NUCLEO_L073RZ", "NUCLEO_F072RB", "NUCLEO_F091RC", "NUCLEO_L432KC", "DISCO_L476VG", "NUCLEO_L476RG", 00792 "DISCO_F401VC", "NUCLEO_F303RE", "NUCLEO_F303K8", "MAXWSNENV", "MAX32600MBED", "NUCLEO_L152RE", 00793 "NUCLEO_F446RE", "NUCLEO_F446ZE", "NUCLEO_F103RB", "DISCO_F746NG", "NUCLEO_F746ZG", "MOTE_L152RC", "B96B_F446VE", 00794 "EFM32HG_STK3400", "EFM32PG_STK3401", "EFM32LG_STK3600", "EFM32GG_STK3700", "EFM32WG_STK3800", 00795 "NRF51822", "NRF51_DK", "SEEED_TINY_BLE", "ARM_BEETLE_SOC", "NUCLEO_F767ZI", "DISCO_F769NI"], 00796 }, 00797 { 00798 "id": "RTOS_6", "description": "Mail messaging", 00799 "source_dir": join(TEST_DIR, "rtos", "mbed", "mail"), 00800 "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES, TEST_MBED_LIB], 00801 "automated": True, 00802 "mcu": ["LPC1768", "LPC1549", "LPC11U24", "LPC812", "LPC2460", "LPC824", "SSCI824", 00803 "KL25Z", "KL05Z", "K22F", "K64F", "K66F", "KL43Z", "KL46Z", "HEXIWEAR", 00804 "RZ_A1H", "VK_RZ_A1H", "DISCO_F407VG", "DISCO_F429ZI", "NUCLEO_F411RE", "DISCO_F469NI", "NUCLEO_F410RB", "NUCLEO_F429ZI", 00805 "NUCLEO_F401RE", "NUCLEO_F334R8", "DISCO_F334C8", "NUCLEO_F302R8", "NUCLEO_F303ZE", "NUCLEO_F070RB", "NUCLEO_F207ZG", 00806 "NUCLEO_L073RZ", "NUCLEO_F072RB", "NUCLEO_F091RC", "NUCLEO_L432KC", "DISCO_L476VG", "NUCLEO_L476RG", 00807 "DISCO_F401VC", "NUCLEO_F303RE", "NUCLEO_F303K8", "MAXWSNENV", "MAX32600MBED", "NUCLEO_L152RE", 00808 "NUCLEO_F446RE", "NUCLEO_F446ZE", "NUCLEO_F103RB", "DISCO_F746NG", "NUCLEO_F746ZG", "MOTE_L152RC", "B96B_F446VE", 00809 "EFM32HG_STK3400", "EFM32PG_STK3401", "EFM32LG_STK3600", "EFM32GG_STK3700", "EFM32WG_STK3800", 00810 "NRF51822", "NRF51_DK", "SEEED_TINY_BLE", "ARM_BEETLE_SOC", "NUCLEO_F767ZI", "DISCO_F769NI"], 00811 }, 00812 { 00813 "id": "RTOS_7", "description": "Timer", 00814 "source_dir": join(TEST_DIR, "rtos", "mbed", "timer"), 00815 "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES, TEST_MBED_LIB], 00816 "automated": True, 00817 #"host_test": "wait_us_auto", 00818 "mcu": ["LPC1768", "LPC1549", "LPC11U24", "LPC812", "LPC2460", "LPC824", "SSCI824", 00819 "KL25Z", "KL05Z", "K22F", "K64F", "K66F", "KL43Z", "KL46Z", "HEXIWEAR", 00820 "RZ_A1H", "VK_RZ_A1H", "DISCO_F407VG", "DISCO_F429ZI", "NUCLEO_F411RE", "DISCO_F469NI", "NUCLEO_F410RB", "NUCLEO_F429ZI", 00821 "NUCLEO_F401RE", "NUCLEO_F334R8", "DISCO_F334C8", "NUCLEO_F302R8", "NUCLEO_F303ZE", "NUCLEO_F070RB", "NUCLEO_F207ZG", 00822 "NUCLEO_L073RZ", "NUCLEO_F072RB", "NUCLEO_F091RC", "NUCLEO_L432KC", "DISCO_L476VG", "NUCLEO_L476RG", 00823 "DISCO_F401VC", "NUCLEO_F303RE", "NUCLEO_F303K8", "MAXWSNENV", "MAX32600MBED", "NUCLEO_L152RE", 00824 "NUCLEO_F446RE", "NUCLEO_F446ZE", "NUCLEO_F103RB", "DISCO_F746NG", "NUCLEO_F746ZG", "MOTE_L152RC", "B96B_F446VE", 00825 "EFM32HG_STK3400", "EFM32PG_STK3401", "EFM32LG_STK3600", "EFM32GG_STK3700", "EFM32WG_STK3800", 00826 "NRF51822", "NRF51_DK", "SEEED_TINY_BLE", "ARM_BEETLE_SOC", "NUCLEO_F767ZI", "DISCO_F769NI"], 00827 }, 00828 { 00829 "id": "RTOS_8", "description": "ISR (Queue)", 00830 "source_dir": join(TEST_DIR, "rtos", "mbed", "isr"), 00831 "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES, TEST_MBED_LIB], 00832 "automated": True, 00833 "mcu": ["LPC1768", "LPC1549", "LPC11U24", "LPC812", "LPC2460", "LPC824", "SSCI824", 00834 "KL25Z", "KL05Z", "K22F", "K64F", "K66F", "KL43Z", "KL46Z", "HEXIWEAR", 00835 "RZ_A1H", "VK_RZ_A1H", "DISCO_F407VG", "DISCO_F429ZI", "NUCLEO_F411RE", "DISCO_F469NI", "NUCLEO_F410RB", "NUCLEO_F429ZI", 00836 "NUCLEO_F401RE", "NUCLEO_F334R8", "DISCO_F334C8", "NUCLEO_F302R8", "NUCLEO_F303ZE", "NUCLEO_F070RB", "NUCLEO_F207ZG", 00837 "NUCLEO_L073RZ", "NUCLEO_F072RB", "NUCLEO_F091RC", "NUCLEO_L432KC", "DISCO_L476VG", "NUCLEO_L476RG", 00838 "DISCO_F401VC", "NUCLEO_F303RE", "NUCLEO_F303K8", "MAXWSNENV", "MAX32600MBED", "NUCLEO_L152RE", 00839 "NUCLEO_F446RE", "NUCLEO_F446ZE", "NUCLEO_F103RB", "DISCO_F746NG", "NUCLEO_F746ZG", "MOTE_L152RC", "B96B_F446VE", 00840 "EFM32HG_STK3400", "EFM32PG_STK3401", "EFM32LG_STK3600", "EFM32GG_STK3700", "EFM32WG_STK3800", 00841 "NRF51822", "NRF51_DK", "SEEED_TINY_BLE", "ARM_BEETLE_SOC", "NUCLEO_F767ZI", "DISCO_F769NI"], 00842 }, 00843 { 00844 "id": "RTOS_9", "description": "SD File write-read", 00845 "source_dir": join(TEST_DIR, "rtos", "mbed", "file"), 00846 "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES, TEST_MBED_LIB, FS_LIBRARY], 00847 "automated": True, 00848 "peripherals": ["SD"], 00849 "mcu": ["LPC1768", "LPC11U24", "LPC812", "KL25Z", "HEXIWEAR", 00850 "KL05Z", "K64F", "K66F", "KL46Z", "RZ_A1H", 00851 "DISCO_F407VG", "DISCO_F429ZI", "NUCLEO_F429ZI", "NUCLEO_F411RE", "NUCLEO_F401RE", "NUCLEO_F410RB", "DISCO_F469NI", "NUCLEO_F207ZG"], 00852 }, 00853 00854 # Networking Tests 00855 { 00856 "id": "NET_1", "description": "TCP client hello world", 00857 "source_dir": join(TEST_DIR, "net", "helloworld", "tcpclient"), 00858 "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES, ETH_LIBRARY, TEST_MBED_LIB], 00859 "automated": True, 00860 "peripherals": ["ethernet"], 00861 }, 00862 { 00863 "id": "NET_2", "description": "NIST Internet Time Service", 00864 "source_dir": join(TEST_DIR, "net", "helloworld", "udpclient"), 00865 "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES, ETH_LIBRARY, TEST_MBED_LIB], 00866 "automated": True, 00867 "peripherals": ["ethernet"], 00868 }, 00869 { 00870 "id": "NET_3", "description": "TCP echo server", 00871 "source_dir": join(TEST_DIR, "net", "echo", "tcp_server"), 00872 "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES, ETH_LIBRARY, TEST_MBED_LIB], 00873 "automated": True, 00874 #"host_test" : "tcpecho_server_auto", 00875 "peripherals": ["ethernet"], 00876 }, 00877 { 00878 "id": "NET_4", "description": "TCP echo client", 00879 "source_dir": join(TEST_DIR, "net", "echo", "tcp_client"), 00880 "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES, ETH_LIBRARY, TEST_MBED_LIB], 00881 "automated": True, 00882 #"host_test": "tcpecho_client_auto", 00883 "peripherals": ["ethernet"] 00884 }, 00885 { 00886 "id": "NET_5", "description": "UDP echo server", 00887 "source_dir": join(TEST_DIR, "net", "echo", "udp_server"), 00888 "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES, ETH_LIBRARY, TEST_MBED_LIB], 00889 "automated": True, 00890 #"host_test" : "udpecho_server_auto", 00891 "peripherals": ["ethernet"] 00892 }, 00893 { 00894 "id": "NET_6", "description": "UDP echo client", 00895 "source_dir": join(TEST_DIR, "net", "echo", "udp_client"), 00896 "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES, ETH_LIBRARY, TEST_MBED_LIB], 00897 "automated": True, 00898 #"host_test" : "udpecho_client_auto", 00899 "peripherals": ["ethernet"], 00900 }, 00901 { 00902 "id": "NET_7", "description": "HTTP client hello world", 00903 "source_dir": join(TEST_DIR, "net", "protocols", "HTTPClient_HelloWorld"), 00904 "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES, ETH_LIBRARY, TEST_MBED_LIB], 00905 "automated": True, 00906 "peripherals": ["ethernet"], 00907 }, 00908 { 00909 "id": "NET_8", "description": "NTP client", 00910 "source_dir": join(TEST_DIR, "net", "protocols", "NTPClient_HelloWorld"), 00911 "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES, ETH_LIBRARY, TEST_MBED_LIB], 00912 "automated": True, 00913 "peripherals": ["ethernet"], 00914 }, 00915 { 00916 "id": "NET_9", "description": "Multicast Send", 00917 "source_dir": join(TEST_DIR, "net", "helloworld", "multicast_send"), 00918 "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES, ETH_LIBRARY], 00919 "peripherals": ["ethernet"], 00920 }, 00921 { 00922 "id": "NET_10", "description": "Multicast Receive", 00923 "source_dir": join(TEST_DIR, "net", "helloworld", "multicast_receive"), 00924 "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES, ETH_LIBRARY], 00925 "peripherals": ["ethernet"], 00926 }, 00927 { 00928 "id": "NET_11", "description": "Broadcast Send", 00929 "source_dir": join(TEST_DIR, "net", "helloworld", "broadcast_send"), 00930 "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES, ETH_LIBRARY], 00931 "peripherals": ["ethernet"], 00932 }, 00933 { 00934 "id": "NET_12", "description": "Broadcast Receive", 00935 "source_dir": join(TEST_DIR, "net", "helloworld", "broadcast_receive"), 00936 "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES, ETH_LIBRARY], 00937 "peripherals": ["ethernet"], 00938 }, 00939 { 00940 "id": "NET_13", "description": "TCP client echo loop", 00941 "source_dir": join(TEST_DIR, "net", "echo", "tcp_client_loop"), 00942 "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES, ETH_LIBRARY, TEST_MBED_LIB], 00943 "automated": True, 00944 #"host_test": "tcpecho_client_auto", 00945 "peripherals": ["ethernet"], 00946 }, 00947 { 00948 "id": "NET_14", "description": "UDP PHY/Data link layer", 00949 "source_dir": join(TEST_DIR, "net", "echo", "udp_link_layer"), 00950 "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES, ETH_LIBRARY], 00951 "automated": False, 00952 "host_test": "udp_link_layer_auto", 00953 "peripherals": ["ethernet"], 00954 }, 00955 00956 # u-blox tests 00957 { 00958 "id": "UB_1", "description": "u-blox USB modem: HTTP client", 00959 "source_dir": [join(TEST_DIR, "net", "cellular", "http", "ubloxusb"), join(TEST_DIR, "net", "cellular", "http", "common")], 00960 "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES, USB_HOST_LIBRARIES, UBLOX_LIBRARY], 00961 "supported": CORTEX_ARM_SUPPORT, 00962 }, 00963 { 00964 "id": "UB_2", "description": "u-blox USB modem: SMS test", 00965 "source_dir": [join(TEST_DIR, "net", "cellular", "sms", "ubloxusb"), join(TEST_DIR, "net", "cellular", "sms", "common")], 00966 "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES, USB_HOST_LIBRARIES, UBLOX_LIBRARY], 00967 "supported": CORTEX_ARM_SUPPORT, 00968 }, 00969 00970 # USB Tests 00971 { 00972 "id": "USB_1", "description": "Mouse", 00973 "source_dir": join(TEST_DIR, "usb", "device", "basic"), 00974 "dependencies": [MBED_LIBRARIES, USB_LIBRARIES], 00975 }, 00976 { 00977 "id": "USB_2", "description": "Keyboard", 00978 "source_dir": join(TEST_DIR, "usb", "device", "keyboard"), 00979 "dependencies": [MBED_LIBRARIES, USB_LIBRARIES], 00980 }, 00981 { 00982 "id": "USB_3", "description": "Mouse_Keyboard", 00983 "source_dir": join(TEST_DIR, "usb", "device", "keyboard"), 00984 "dependencies": [MBED_LIBRARIES, USB_LIBRARIES], 00985 }, 00986 { 00987 "id": "USB_4", "description": "Serial Port", 00988 "source_dir": join(TEST_DIR, "usb", "device", "serial"), 00989 "dependencies": [MBED_LIBRARIES, USB_LIBRARIES], 00990 }, 00991 { 00992 "id": "USB_5", "description": "Generic HID", 00993 "source_dir": join(TEST_DIR, "usb", "device", "raw_hid"), 00994 "dependencies": [MBED_LIBRARIES, USB_LIBRARIES], 00995 }, 00996 { 00997 "id": "USB_6", "description": "MIDI", 00998 "source_dir": join(TEST_DIR, "usb", "device", "midi"), 00999 "dependencies": [MBED_LIBRARIES, USB_LIBRARIES], 01000 }, 01001 { 01002 "id": "USB_7", "description": "AUDIO", 01003 "source_dir": join(TEST_DIR, "usb", "device", "audio"), 01004 "dependencies": [MBED_LIBRARIES, USB_LIBRARIES], 01005 }, 01006 01007 # CMSIS DSP 01008 { 01009 "id": "CMSIS_DSP_1", "description": "FIR", 01010 "source_dir": join(TEST_DIR, "dsp", "cmsis", "fir_f32"), 01011 "dependencies": [MBED_LIBRARIES, DSP_LIBRARIES], 01012 }, 01013 01014 # mbed DSP 01015 { 01016 "id": "DSP_1", "description": "FIR", 01017 "source_dir": join(TEST_DIR, "dsp", "mbed", "fir_f32"), 01018 "dependencies": [MBED_LIBRARIES, DSP_LIBRARIES], 01019 }, 01020 01021 # KL25Z 01022 { 01023 "id": "KL25Z_1", "description": "LPTMR", 01024 "source_dir": join(TEST_DIR, "KL25Z", "lptmr"), 01025 "dependencies": [MBED_LIBRARIES], 01026 "supported": CORTEX_ARM_SUPPORT, 01027 "mcu": ["KL25Z"], 01028 }, 01029 { 01030 "id": "KL25Z_2", "description": "PIT", 01031 "source_dir": join(TEST_DIR, "KL25Z", "pit"), 01032 "dependencies": [MBED_LIBRARIES], 01033 "supported": CORTEX_ARM_SUPPORT, 01034 "mcu": ["KL25Z"], 01035 }, 01036 { 01037 "id": "KL25Z_3", "description": "TSI Touch Sensor", 01038 "source_dir": join(TEST_DIR, "mbed", "tsi"), 01039 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB, join(PERIPHERALS, 'TSI')], 01040 "mcu": ["KL25Z"], 01041 }, 01042 { 01043 "id": "KL25Z_4", "description": "RTC", 01044 "source_dir": join(TEST_DIR, "KL25Z", "rtc"), 01045 "dependencies": [MBED_LIBRARIES], 01046 "mcu": ["KL25Z"], 01047 }, 01048 { 01049 "id": "KL25Z_5", "description": "MMA8451Q accelerometer", 01050 "source_dir": join(TEST_DIR, "mbed", "i2c_MMA8451Q"), 01051 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB, join(PERIPHERALS, 'MMA8451Q')], 01052 "mcu": ["KL25Z", "KL05Z", "KL46Z", "K20D50M"], 01053 "automated": True, 01054 }, 01055 01056 # Examples 01057 { 01058 "id": "EXAMPLE_1", "description": "/dev/null", 01059 "source_dir": join(TEST_DIR, "mbed", "dev_null"), 01060 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 01061 "exclude_mcu": ["NUCLEO_L011K4"], 01062 "automated": True, 01063 #"host_test" : "dev_null_auto", 01064 }, 01065 { 01066 "id": "EXAMPLE_2", "description": "FS + RTOS", 01067 "source_dir": join(TEST_DIR, "mbed", "fs"), 01068 "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES, TEST_MBED_LIB, FS_LIBRARY], 01069 }, 01070 01071 # CPPUTEST Library provides Unit testing Framework 01072 # 01073 # To write TESTs and TEST_GROUPs please add CPPUTEST_LIBRARY to 'dependencies' 01074 # 01075 # This will also include: 01076 # 1. test runner - main function with call to CommandLineTestRunner::RunAllTests(ac, av) 01077 # 2. Serial console object to print test result on serial port console 01078 # 01079 01080 # Unit testing with cpputest library 01081 { 01082 "id": "UT_1", "description": "Basic", 01083 "source_dir": join(TEST_DIR, "utest", "basic"), 01084 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB, CPPUTEST_LIBRARY], 01085 "automated": False, 01086 }, 01087 { 01088 "id": "UT_2", "description": "Semihost file system", 01089 "source_dir": join(TEST_DIR, "utest", "semihost_fs"), 01090 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB, CPPUTEST_LIBRARY], 01091 "automated": False, 01092 "mcu": ["LPC1768", "LPC2368", "LPC11U24"] 01093 }, 01094 { 01095 "id": "UT_3", "description": "General tests", 01096 "source_dir": join(TEST_DIR, "utest", "general"), 01097 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB, CPPUTEST_LIBRARY], 01098 "automated": False, 01099 }, 01100 { 01101 "id": "UT_BUSIO", "description": "BusIn BusOut", 01102 "source_dir": join(TEST_DIR, "utest", "bus"), 01103 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB, CPPUTEST_LIBRARY], 01104 "automated": False, 01105 }, 01106 { 01107 "id": "UT_I2C_EEPROM_ASYNCH", "description": "I2C Asynch eeprom", 01108 "source_dir": join(TEST_DIR, "utest", "i2c_eeprom_asynch"), 01109 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB, CPPUTEST_LIBRARY], 01110 "automated": False, 01111 }, 01112 { 01113 "id": "UT_SERIAL_ASYNCH", "description": "Asynch serial test (req 2 serial peripherals)", 01114 "source_dir": join(TEST_DIR, "utest", "serial_asynch"), 01115 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB, CPPUTEST_LIBRARY], 01116 "automated": False, 01117 }, 01118 { 01119 "id": "UT_SPI_ASYNCH", "description": "Asynch spi test", 01120 "source_dir": join(TEST_DIR, "utest", "spi_asynch"), 01121 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB, CPPUTEST_LIBRARY], 01122 "automated": False, 01123 }, 01124 { 01125 "id": "UT_LP_TICKER", "description": "Low power ticker test", 01126 "source_dir": join(TEST_DIR, "utest", "lp_ticker"), 01127 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB, CPPUTEST_LIBRARY], 01128 "automated": False, 01129 }, 01130 01131 # Tests used for target information purposes 01132 { 01133 "id": "DTCT_1", "description": "Simple detect test", 01134 "source_dir": join(TEST_DIR, "mbed", "detect"), 01135 "dependencies": [MBED_LIBRARIES, TEST_MBED_LIB], 01136 "automated": True, 01137 #"host_test" : "detect_auto", 01138 }, 01139 01140 ] 01141 01142 # Group tests with the same goals into categories 01143 GROUPS = { 01144 "core": ["MBED_A1", "MBED_A2", "MBED_A3", "MBED_A18"], 01145 "digital_io": ["MBED_A5", "MBED_A6", "MBED_A7", "MBED_A10", "MBED_A11"], 01146 "analog_io": ["MBED_A8"], 01147 "i2c": ["MBED_A19", "MBED_A20"], 01148 "spi": ["MBED_A12"], 01149 } 01150 GROUPS["rtos"] = [test["id"] for test in TESTS if test["id"].startswith("RTOS_")] 01151 GROUPS["net"] = [test["id"] for test in TESTS if test["id"].startswith("NET_")] 01152 GROUPS["automated"] = [test["id"] for test in TESTS if test.get("automated", False)] 01153 # Look for 'TEST_GROUPS' in mbed_settings.py and update the GROUPS dictionary 01154 # with the information in test_groups if found 01155 try: 01156 from mbed_settings import TEST_GROUPS 01157 except: 01158 TEST_GROUPS = {} 01159 GROUPS.update(TEST_GROUPS) 01160 01161 class Test: 01162 DEFAULTS = { 01163 #'mcu': None, 01164 'description': None, 01165 'dependencies': None, 01166 'duration': 30, 01167 'host_test': 'host_test', 01168 'automated': False, 01169 'peripherals': None, 01170 #'supported': None, 01171 'source_dir': None, 01172 'extra_files': None 01173 } 01174 def __init__(self, n): 01175 self.n = n 01176 self.__dict__.update(Test.DEFAULTS) 01177 self.__dict__.update(TESTS[n]) 01178 01179 def is_supported(self, target, toolchain): 01180 if hasattr(self, 'mcu') and not target in self.mcu: 01181 return False 01182 if hasattr(self, 'exclude_mcu') and target in self.exclude_mcu: 01183 return False 01184 if not hasattr(self, 'supported'): 01185 return True 01186 return (target in self.supported) and (toolchain in self.supported[target]) 01187 01188 def get_description(self): 01189 if self.description: 01190 return self.description 01191 else: 01192 return self.id 01193 01194 def __cmp__(self, other): 01195 return cmp(self.n, other.n) 01196 01197 def __str__(self): 01198 return "[%3d] %s: %s" % (self.n, self.id, self.get_description()) 01199 01200 def __getitem__(self, key): 01201 if key == "id": return self.id 01202 elif key == "mcu": return self.mcu 01203 elif key == "exclude_mcu": return self.exclude_mcu 01204 elif key == "dependencies": return self.dependencies 01205 elif key == "description": return self.description 01206 elif key == "duration": return self.duration 01207 elif key == "host_test": return self.host_test 01208 elif key == "automated": return self.automated 01209 elif key == "peripherals": return self.peripherals 01210 elif key == "supported": return self.supported 01211 elif key == "source_dir": return self.source_dir 01212 elif key == "extra_files": return self.extra_files 01213 else: 01214 return None 01215 01216 TEST_MAP = dict([(test['id'], Test(i)) for i, test in enumerate(TESTS)]) 01217 01218 # parser helpers 01219 def test_known(string): 01220 i = int(string) 01221 if i >= 0 and i < len(TESTS): 01222 return i 01223 else: 01224 raise ArgumentTypeError("{0} does not index a test. The accepted range is 0 to {1}\nThe test mapping is:\n{2}".format(i, len(TEST_MAP) - 1, columnate([str(i) + ":" + t['id'] for i,t in zip(range(len(TESTS)), TESTS)]))) 01225 01226 def test_name_known(string): 01227 if string not in TEST_MAP.keys() and \ 01228 (getattr(ps, "test_alias", None) is None or \ 01229 ps.test_alias.get(string, "") not in TEST_MAP.keys()): 01230 raise ArgumentTypeError("Program with name '{0}' not found. Supported tests are: \n{1}".format(string, columnate([t['id'] for t in TESTS]))) 01231 01232 return TEST_MAP[string].n
Generated on Tue Jul 12 2022 21:14:59 by
1.7.2
