ON Semiconductor / mbed-os

Dependents:   mbed-TFT-example-NCS36510 mbed-Accelerometer-example-NCS36510 mbed-Accelerometer-example-NCS36510

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers tests.py Source File

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