From 7233dfbbdd22418d47e03430946d9f332cd4fff7 Mon Sep 17 00:00:00 2001 From: Atis Elsts Date: Tue, 28 Nov 2017 15:55:35 +0000 Subject: [PATCH] Add a regression test for the stack check library --- .../07-simulation-base/22-stack-guard-sky.csc | 81 +++++++++++++++++++ tests/07-simulation-base/js/22-stack-check.js | 25 ++++++ 2 files changed, 106 insertions(+) create mode 100644 tests/07-simulation-base/22-stack-guard-sky.csc create mode 100644 tests/07-simulation-base/js/22-stack-check.js diff --git a/tests/07-simulation-base/22-stack-guard-sky.csc b/tests/07-simulation-base/22-stack-guard-sky.csc new file mode 100644 index 000000000..5d57eb148 --- /dev/null +++ b/tests/07-simulation-base/22-stack-guard-sky.csc @@ -0,0 +1,81 @@ + + + + Stack guard test (Sky) + 123456 + 1000000 + + org.contikios.cooja.radiomediums.UDGM + 50.0 + 100.0 + 1.0 + 1.0 + + + 40000 + + + org.contikios.cooja.mspmote.SkyMoteType + sky1 + Sky Mote Type #1 + [CONTIKI_DIR]/examples/libs/stack-check/example-stack-check.c + make -j example-stack-check.sky TARGET=sky + [CONTIKI_DIR]/examples/libs/stack-check/example-stack-check.sky + org.contikios.cooja.interfaces.Position + org.contikios.cooja.interfaces.IPAddress + org.contikios.cooja.interfaces.Mote2MoteRelations + org.contikios.cooja.mspmote.interfaces.MspClock + org.contikios.cooja.mspmote.interfaces.MspMoteID + org.contikios.cooja.mspmote.interfaces.SkyButton + org.contikios.cooja.mspmote.interfaces.SkyFlash + org.contikios.cooja.mspmote.interfaces.Msp802154Radio + org.contikios.cooja.mspmote.interfaces.MspSerial + org.contikios.cooja.mspmote.interfaces.SkyLED + + + + + org.contikios.cooja.interfaces.Position + 64.11203103628397 + 93.06735634828134 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 1 + + sky1 + + + + org.contikios.cooja.plugins.ScriptRunner + + [CONFIG_DIR]/js/22-stack-check.js + true + + 541 + 0 + 448 + 299 + 7 + + + org.contikios.cooja.plugins.SimControl + 280 + 2 + 160 + 7 + 10 + + + org.contikios.cooja.plugins.LogListener + + + + 680 + 1 + 240 + 51 + 288 + + diff --git a/tests/07-simulation-base/js/22-stack-check.js b/tests/07-simulation-base/js/22-stack-check.js new file mode 100644 index 000000000..c6915cc66 --- /dev/null +++ b/tests/07-simulation-base/js/22-stack-check.js @@ -0,0 +1,25 @@ +TIMEOUT(100000); + +/* This script checks that the stack usage is dynamically changing */ + +var re = /stack usage: (\d+)/i; + +var minusage = 10000; +var maxusage = 0; + +while(true) { + log.log("> " + msg + "\n"); + + var found = msg.match(re); + + if(found) { + var n = parseInt(found[1]); + minusage = minusage < n ? minusage : n; + maxusage = maxusage > n ? maxusage : n; + + if(minusage < 800 && maxusage >= 1000) { + log.testOK(); + } + } + YIELD(); +}