Testing & Debugging environment - achlysproject/achlys GitHub Wiki

Introduction

The full guide for local testing and deployment can be found in the Deployment Guide.

The following page provides instructions that are applicable for the v0.3.0 pre-release of Achlys and its underlying dependencies. A separate section will be added for the incoming v.0.4.0 version. Although the codebase is being restructured and separated into independent subcomponents, these modifications will be done with a particular focus on retro-compatibility and API changes will be introduced only if necessary.

NOTE : in case of any inconsistent behavior noticed after upgrading, users are welcome to open an issue describing such problem.

Local environment setup

⚠️ WARNING FOR macOS USERS ⚠️

At the time of writing, macOS Catalina (version 10.15) has compatibility issues with Achlys and it is recommended to remain on macOS Mojave (version 10.14) if possible. Currently, upgrading to macOS Catalina will automatically enable stack checking which enforces 8-byte stack alignment while a 16-byte alignment is expected. The cause of this issue seems to be that Xcode releases 11.0 now come with stack-checking on by default. Similar issues can be reproduced when running these versions of Xcode even on macOS Mojave, but only if the beta release is manually installed. This problem has been reported several times but is still not fixed and macOS users should be particularly careful when updating their development environment. See details below :

Dependencies

The test rebar profile declares the grisp_emulation layer as an additional dependency that allows running GRiSP applications locally for testing/debugging. The emulated driver modules should be configured in config/test.config.src, for example :

{grisp , [
    {drivers , [
        {spi , grisp_emulation_spi_drv} ,
        {gpio , grisp_emulation_gpio_drv} ,
        {i2c , grisp_emulation_i2c_drv}
    ]} ,
    {devices , [
        {spi1 , pmod_nav}
]}