Merge pull request #745 from geeksville/portduino

add CI integration test using meshtastic-native
This commit is contained in:
Kevin Hester 2021-03-18 19:59:27 +08:00 committed by GitHub
commit d735e3006e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 25 additions and 6 deletions

View File

@ -15,10 +15,10 @@ jobs:
uses: actions/setup-python@v2
with:
python-version: 3.x
- name: Install Platform IO
- name: Install Platform IO and meshtastic-python
run: |
python -m pip install --upgrade pip
pip install -U platformio
pip install -U platformio meshtastic
- name: Install extra python tools
run: |
pip install -U adafruit-nrfutil
@ -31,6 +31,11 @@ jobs:
run: platformio run -e heltec
- name: Build for lora-relay-v1
run: platformio run -e lora-relay-v1
# Turn off linux for now
name: Build for native
- name: Build for native
run: platformio run -e native
- name: Integration test
run: |
.pio/build/native/program &
sleep 1
python3 -c 'from meshtastic.test import testSimulator; testSimulator()'

2
proto

@ -1 +1 @@
Subproject commit 39bb8b26bbc107aae3586d5a5e11a06ea12680bc
Subproject commit b8c0499f28f9673d1df17d04da562e30703f01cb

View File

@ -25,6 +25,7 @@ typedef struct _AdminMessage {
Channel get_channel_response;
bool confirm_set_channel;
bool confirm_set_radio;
bool exit_simulator;
};
} AdminMessage;
@ -47,6 +48,7 @@ extern "C" {
#define AdminMessage_get_channel_response_tag 7
#define AdminMessage_confirm_set_channel_tag 32
#define AdminMessage_confirm_set_radio_tag 33
#define AdminMessage_exit_simulator_tag 34
/* Struct field encoding specification for nanopb */
#define AdminMessage_FIELDLIST(X, a) \
@ -58,7 +60,8 @@ X(a, STATIC, ONEOF, MESSAGE, (variant,get_radio_response,get_radio_respons
X(a, STATIC, ONEOF, UINT32, (variant,get_channel_request,get_channel_request), 6) \
X(a, STATIC, ONEOF, MESSAGE, (variant,get_channel_response,get_channel_response), 7) \
X(a, STATIC, ONEOF, BOOL, (variant,confirm_set_channel,confirm_set_channel), 32) \
X(a, STATIC, ONEOF, BOOL, (variant,confirm_set_radio,confirm_set_radio), 33)
X(a, STATIC, ONEOF, BOOL, (variant,confirm_set_radio,confirm_set_radio), 33) \
X(a, STATIC, ONEOF, BOOL, (variant,exit_simulator,exit_simulator), 34)
#define AdminMessage_CALLBACK NULL
#define AdminMessage_DEFAULT NULL
#define AdminMessage_variant_set_radio_MSGTYPE RadioConfig

View File

@ -6,6 +6,10 @@
#include "configuration.h"
#include "main.h"
#ifdef PORTDUINO
#include "unistd.h"
#endif
AdminPlugin *adminPlugin;
void AdminPlugin::handleGetChannel(const MeshPacket &req, uint32_t channelIndex)
@ -65,6 +69,13 @@ bool AdminPlugin::handleReceivedProtobuf(const MeshPacket &mp, const AdminMessag
handleGetRadio(mp);
break;
#ifdef PORTDUINO
case AdminMessage_exit_simulator_tag:
DEBUG_MSG("Exiting simulator\n");
_exit(0);
break;
#endif
default:
// Probably a message sent by us or sent to our local node. FIXME, we should avoid scanning these messages
DEBUG_MSG("Ignoring nonrelevant admin %d\n", r->which_variant);