Brian Daniels / mbed-tools

Fork of mbed-tools by Morpheus

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