Skip to content
  • Ilya Dmitrichenko's avatar
    qemu-arm: fully integrated test suite. · c1c32d65
    Ilya Dmitrichenko authored
    This is primarily intended to provide testing of Thumb-specific code within
    Travis CI as well as if anyone else want to run it locally.  As discussed in
    purposes.  This is currently agains an emulated Cortex-M3 core, however in
    the near future it can extended to support M0, M0+ as well M4 (work in
    progress exists in sushihangover/qemu).
    
    It's probably true that most of the code base can be covered running uPy
    natively on a POSIX system, however we do have the tiny bit of assembly
    code.  There may exist bugs related to endianness and type aliases, let
    alone potential standard library or compiler bugs or even
    architecture-specific optimisations.
    
    This could also incorporate lwIP (or other TCP/IP stack) integration as well
    as SDIO+FATFS drivers.
    
    The solution to inline the test cases was chose due to simplicity. It could
    alternatively be implemented in a number of different way (see #515), but
    this looked the simplest.
    
    Inclusion of tinytest was just to avoid writing boilerplate code for
    counting failed tests and other utility functions.  Currently only a few
    functions are used, however this could be extended.  Checking in the code
    instead of using submodule was a personal preference, but if people do want
    the pain of submodules, this can provided.  This particular framework is
    also pretty good if one desires to run unit test on target.  The approach
    with scripts being inlined is probably not quite suited for the size of
    memory an MCU has, but the tinytest itself should be good, if lower-level C
    code is to be unit tested.
    c1c32d65