updated threaded contiki test scripts
This commit is contained in:
parent
17fa4513dc
commit
000fd29f4c
|
@ -1,34 +1,25 @@
|
||||||
/* Only handle receive messages */
|
TIMEOUT(120000);
|
||||||
if (!msg.contains('received')) {
|
|
||||||
return;
|
var nr_packets = new Array();
|
||||||
|
for (i=1; i <= 10; i++) {
|
||||||
|
nr_packets[i] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Log receiver */
|
while (true) {
|
||||||
count = global.get("count_" + id);
|
|
||||||
if (count == null) {
|
|
||||||
count = 0;
|
|
||||||
}
|
|
||||||
count++;
|
|
||||||
global.put("count_" + id, count);
|
|
||||||
|
|
||||||
log.log("Node " + id + " received message: " + count + "\n");
|
/* Listen for receive notifications */
|
||||||
|
if (msg.contains('abc message received')) {
|
||||||
|
|
||||||
/* Did all nodes (1-10) receive a message? */
|
/* Log receiving node */
|
||||||
for (i = 1; i <= 10; i++) {
|
nr_packets[id] ++;
|
||||||
result = global.get("count_" + i);
|
log.log("Node " + id + " received message: " + nr_packets[id] + "\n");
|
||||||
if (result == null || result == 0) {
|
|
||||||
log.log("Node " + i + " did not yet receive a message\n");
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/* Report test info */
|
/* Did all nodes (1-10) receive at least one message? */
|
||||||
log.log("TEST INFO: ");
|
for (i = 1; i <= 10; i++) {
|
||||||
for (i = 1; i <= 10; i++) {
|
if (nr_packets[id] < 1) break;
|
||||||
result = global.get("count_" + i);
|
if (nr_packets[id] == 10) log.testOK();
|
||||||
log.log(java.lang.Integer.toString(result) + " ");
|
}
|
||||||
}
|
|
||||||
log.log("\n");
|
|
||||||
|
|
||||||
log.log("TEST OK\n"); /* Report test success */
|
YIELD();
|
||||||
mote.getSimulation().getGUI().doQuit(false); /* Quit simulator (to end test run)*/
|
}
|
||||||
|
|
|
@ -1,28 +1,22 @@
|
||||||
/* Only handle receive messages */
|
TIMEOUT(100000, log.log("Node 1: " + nr_packets[1] + ".\nNode 2: " + nr_packets[2] + ".\n"));
|
||||||
if (!msg.contains('received')) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Count received packets */
|
nr_packets = new Array();
|
||||||
result = global.get("recv_" + id);
|
nr_packets[1] = 0;
|
||||||
if (result == null) {
|
nr_packets[2] = 0;
|
||||||
result = 0;
|
|
||||||
}
|
|
||||||
result++;
|
|
||||||
global.put("recv_" + id, result);
|
|
||||||
log.log(id + " received " + result + " messages\n");
|
|
||||||
|
|
||||||
/* Did all nodes (1 and 2) receive a message? */
|
while (true) {
|
||||||
for (i = 1; i <= 2; i++) {
|
/* Only handle receive messages */
|
||||||
result = global.get("recv_" + i);
|
YIELD_THEN_WAIT_UNTIL(msg.contains('received'));
|
||||||
if (result == null) {
|
|
||||||
return;
|
/* Count received packets */
|
||||||
}
|
nr_packets[id]++;
|
||||||
if (result < 30) {
|
//log.log("Node " + id + " received " + nr_packets[id] + " messages\n");
|
||||||
return;
|
|
||||||
|
if (nr_packets[1] >= 30 && nr_packets[2] >= 30) {
|
||||||
|
log.log("Node 1: " + nr_packets[1] + ".\nNode 2: " + nr_packets[2] + ".\n");
|
||||||
|
log.testOK(); /* Report test success */
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
log.log("Node 1 received " + global.get("recv_1") + " messages\n");
|
|
||||||
log.log("Node 2 received " + global.get("recv_2") + " messages\n");
|
|
||||||
log.testOK(); /* Report test success */
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
if (msg.startsWith('Completion time')) {
|
TIMEOUT(120000);
|
||||||
log.log(msg + "\n");
|
|
||||||
log.testOK(); /* Report test success and quit */
|
WAIT_UNTIL(msg.startsWith('Completion time'));
|
||||||
}
|
log.testOK();
|
||||||
|
|
|
@ -1,63 +1,46 @@
|
||||||
|
TIMEOUT(120000);
|
||||||
|
|
||||||
|
nr_recv = 0;
|
||||||
|
nr_timedout = 0;
|
||||||
|
nr_sent = 0;
|
||||||
|
|
||||||
|
while (nr_sent < 10) {
|
||||||
|
|
||||||
/* Count received packets */
|
/* Count received packets */
|
||||||
if (msg.contains('received')) {
|
if (msg.contains('received')) {
|
||||||
result = global.get("recv");
|
nr_recv++;
|
||||||
if (result == null) {
|
log.log("Received packets count now: " + nr_recv + "\n");
|
||||||
result = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
result++;
|
|
||||||
global.put("recv", result);
|
|
||||||
log.log("Received packets count now: " + result + "\n");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Count timed out packets */
|
/* Count timed out packets */
|
||||||
if (msg.contains('timed out')) {
|
else if (msg.contains('timed out')) {
|
||||||
result = global.get("timeout");
|
nr_timedout++;
|
||||||
if (result == null) {
|
log.log("Timed out packets count now: " + nr_timedout + "\n");
|
||||||
result = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
result++;
|
|
||||||
global.put("timeout", result);
|
|
||||||
log.log("Timed out packets count now: " + result + "\n");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Count sent packets */
|
/* Count sent packets */
|
||||||
if (msg.contains('sent to')) {
|
else if (msg.contains('sent to')) {
|
||||||
result = global.get("sent");
|
nr_sent++;
|
||||||
if (result == null) {
|
log.log("Sent packets count now: " + nr_sent + "\n");
|
||||||
result = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
result++;
|
|
||||||
global.put("sent", result);
|
|
||||||
log.log("Sent packets count now: " + result + "\n");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Look for test completion */
|
YIELD();
|
||||||
countSent = global.get("sent");
|
|
||||||
if (countSent >= 10) {
|
|
||||||
|
|
||||||
/* Make sure received counter matches sent counter */
|
|
||||||
countReceived = global.get("recv");
|
|
||||||
if (countReceived < countSent) {
|
|
||||||
log.log("Received < Sent: " + countReceived + " < " + countSent + "\n");
|
|
||||||
log.log("Received packets less than acked sent packets!\n");
|
|
||||||
log.testFailed();
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Make sure some packets timed out (all from node 4) */
|
|
||||||
countTimedOut = global.get("timeout");
|
|
||||||
if (countTimedOut == null || countTimedOut < 2) {
|
|
||||||
log.log("Timed out: " + countTimedOut + "\n");
|
|
||||||
log.log("Too few packets timed out!\n");
|
|
||||||
log.testFailed();
|
|
||||||
}
|
|
||||||
|
|
||||||
log.log("Received / Sent: " + countReceived + " / " + countSent + "\n");
|
|
||||||
log.log("Timed out: " + countTimedOut + "\n");
|
|
||||||
log.testOK();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Make sure received counter matches sent counter */
|
||||||
|
if (nr_recv < nr_sent) {
|
||||||
|
log.log("Received < Sent: " + nr_recv + " < " + nr_sent + "\n");
|
||||||
|
log.log("Received packets less than acked sent packets!\n");
|
||||||
|
log.testFailed();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Make sure some packets timed out (all from node 4) */
|
||||||
|
if (nr_timedout < 2) {
|
||||||
|
log.log("Timed out: " + nr_timedout + "\n");
|
||||||
|
log.log("Too few packets timed out!\n");
|
||||||
|
log.testFailed();
|
||||||
|
}
|
||||||
|
|
||||||
|
log.log("Received / Sent: " + nr_recv + " / " + nr_sent + "\n");
|
||||||
|
log.log("Timed out: " + nr_timedout + "\n");
|
||||||
|
log.testOK();
|
||||||
|
|
|
@ -1,36 +1,25 @@
|
||||||
/* Initiate trickle from node 1 by clicking button (once) */
|
TIMEOUT(120000, log.log(nr_packets[1] + ", " + nr_packets[2] + ", " + nr_packets[3] + ", " + nr_packets[4] + ", " + nr_packets[5] + ", " + nr_packets[6] + ", " + nr_packets[7] + ", " + nr_packets[8] + ", " + nr_packets[9] + ", " + nr_packets[10] + "\n"));
|
||||||
result = global.get("recv_1");
|
|
||||||
if (result == null) {
|
|
||||||
if (id != 1) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!msg.contains('Starting')) {
|
nr_packets = new Array();
|
||||||
return;
|
for (i=1; i <= 10; i++) {
|
||||||
}
|
nr_packets[i] = 0;
|
||||||
|
|
||||||
log.log("Clicking node 1 button\n");
|
|
||||||
mote.getInterfaces().getButton().clickButton()
|
|
||||||
global.put("recv_1", "ok");
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Only handle receive messages */
|
WAIT_UNTIL(id == 1 && msg.contains('Starting'));
|
||||||
if (!msg.contains('received')) {
|
log.log("Node 1 started. Clicking node button.\n");
|
||||||
return;
|
mote.getInterfaces().getButton().clickButton()
|
||||||
}
|
|
||||||
|
|
||||||
/* Remember receiver */
|
while (true) {
|
||||||
global.put("recv_" + id, "ok");
|
/* Only handle receive messages */
|
||||||
log.log(id + " received a message\n");
|
WAIT_UNTIL(msg.contains('received'));
|
||||||
|
|
||||||
/* Did all nodes (1-10) receive a message? */
|
/* Remember receiving node */
|
||||||
for (i = 1; i <= 10; i++) {
|
log.log(id + " received a message\n");
|
||||||
result = global.get("recv_" + i);
|
nr_packets[id]++;
|
||||||
if (result == null) {
|
|
||||||
return;
|
/* Did all nodes (2-10) receive a message? */
|
||||||
|
for (i = 2; i <= 10; i++) {
|
||||||
|
if (nr_packets[i] < 1) break;
|
||||||
|
if (i == 10) log.log("TEST OK\n"); /* Report test success */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
log.log("TEST OK\n"); /* Report test success */
|
|
||||||
mote.getSimulation().getGUI().doQuit(false); /* Quit simulator (to end test run)*/
|
|
||||||
|
|
|
@ -1,30 +1,31 @@
|
||||||
if (msg.startsWith('Coffee file test: 0')) {
|
TIMEOUT(60000);
|
||||||
global.put("coffee_file_test", true);
|
|
||||||
} else if (msg.startsWith('Coffee file test')) {
|
fileOK = null;
|
||||||
global.put("coffee_file_test", false);
|
gcOK = null;
|
||||||
} else if (msg.startsWith('Coffee garbage collection test: 0')) {
|
|
||||||
global.put("coffee_gc_test", true);
|
while (fileOK == null || gcOK == null) {
|
||||||
} else if (msg.startsWith('Coffee garbage collection test')) {
|
YIELD();
|
||||||
global.put("coffee_gc_test", false);
|
|
||||||
}
|
if (msg.startsWith('Coffee file test: 0')) {
|
||||||
|
fileOK = true;
|
||||||
if (global.get("coffee_file_test") == null) {
|
} else if (msg.startsWith('Coffee file test')) {
|
||||||
//log.log("file test not finished yet\n");
|
fileOK = false;
|
||||||
return;
|
} else if (msg.startsWith('Coffee garbage collection test: 0')) {
|
||||||
}
|
gcOK = true;
|
||||||
if (global.get("coffee_gc_test") == null) {
|
} else if (msg.startsWith('Coffee garbage collection test')) {
|
||||||
//log.log("gc test not finished yet\n");
|
gcOK = false;
|
||||||
return;
|
}
|
||||||
}
|
|
||||||
|
}
|
||||||
if (global.get("coffee_gc_test") == false) {
|
|
||||||
log.log("coffee garbage collection failed\n");
|
if (gcOK == false) {
|
||||||
log.testFailed();
|
log.log("coffee garbage collection failed\n");
|
||||||
}
|
}
|
||||||
|
if (fileOK == false) {
|
||||||
if (global.get("coffee_file_test") == false) {
|
log.log("coffee file test failed\n");
|
||||||
log.log("coffee file test failed\n");
|
}
|
||||||
log.testFailed();
|
if (!fileOK || !gcOK) {
|
||||||
}
|
log.testFailed();
|
||||||
|
} else {
|
||||||
log.testOK();
|
log.testOK();
|
||||||
|
}
|
||||||
|
|
|
@ -1,60 +1,51 @@
|
||||||
/* Wait until all nodes have booted */
|
TIMEOUT(120000, log.log("received/node: " + count[1] + " " + count[2] + " " + count[3] + " " + count[4] + " " + count[5] + " " + count[6] + " " + count[7] + "\n"));
|
||||||
if (msg.startsWith('Starting')) {
|
|
||||||
log.log("Node " + id + " booted\n");
|
/* Conf. */
|
||||||
global.put("boot_" + id, true);
|
booted = new Array();
|
||||||
|
count = new Array();
|
||||||
|
nrNodes = 7;
|
||||||
|
nodes_starting = true;
|
||||||
|
for (i = 1; i <= nrNodes; i++) {
|
||||||
|
booted[i] = false;
|
||||||
|
count[i] = 0;
|
||||||
}
|
}
|
||||||
for (i = 1; i <= 7; i++) {
|
|
||||||
result = global.get("boot_" + i);
|
/* Wait until all nodes have started */
|
||||||
if (result == null || result == false) {
|
while (nodes_starting) {
|
||||||
/*log.log("Node " + i + " did not yet boot\n");*/
|
WAIT_UNTIL(msg.startsWith('Starting'));
|
||||||
return;
|
log.log("Node " + id + " booted\n");
|
||||||
|
booted[id] = true;
|
||||||
|
|
||||||
|
for (i = 1; i <= nrNodes; i++) {
|
||||||
|
if (!booted[i]) break;
|
||||||
|
if (i == nrNodes) nodes_starting = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Create sink */
|
/* Create sink */
|
||||||
result = global.get("created_sink");
|
log.log("All nodes booted, creating sink at node " + id + "\n");
|
||||||
if (result == null || result == false) {
|
mote.getInterfaces().getButton().clickButton()
|
||||||
log.log("All nodes booted, creating sink at node " + id + "\n");
|
|
||||||
mote.getInterfaces().getButton().clickButton()
|
|
||||||
global.put("created_sink", true);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Log incoming sensor data */
|
while (true) {
|
||||||
source = msg.split(" ")[0];
|
YIELD();
|
||||||
count = global.get("count_" + source);
|
|
||||||
log.log("Got data from node " + source + "\n");
|
|
||||||
if (count == null) {
|
|
||||||
count = 0;
|
|
||||||
}
|
|
||||||
count++;
|
|
||||||
global.put("count_" + source, count);
|
|
||||||
|
|
||||||
/* Fail if any node has transmitted more than 20 packets */
|
/* Count sensor data packets */
|
||||||
for (i = 1; i <= 7; i++) {
|
source = msg.split(" ")[0];
|
||||||
result = global.get("count_" + i);
|
log.log("Got data from node " + source + "\n");
|
||||||
if (result > 20) {
|
count[source]++;
|
||||||
|
|
||||||
log.log("FAILED: received/node: " +
|
/* Fail if any node has transmitted more than 20 packets */
|
||||||
global.get("count_1") + " " +
|
for (i = 1; i <= nrNodes; i++) {
|
||||||
global.get("count_2") + " " +
|
if (count[i] > 20) {
|
||||||
global.get("count_3") + " " +
|
log.log("received/node: " + count[1] + " " + count[2] + " " + count[3] + " " + count[4] + " " + count[5] + " " + count[6] + " " + count[7] + "\n");
|
||||||
global.get("count_4") + " " +
|
log.testFailed(); /* We are done! */
|
||||||
global.get("count_5") + " " +
|
}
|
||||||
global.get("count_6") + " " +
|
|
||||||
global.get("count_7") + "\n");
|
|
||||||
log.testFailed(); /* We are done! */
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/* Wait until we have received data from all nodes */
|
/* Wait until we have received data from all nodes */
|
||||||
for (i = 1; i <= 7; i++) {
|
for (i = 1; i <= nrNodes; i++) {
|
||||||
result = global.get("count_" + i);
|
if (count[i] < 5) break;
|
||||||
if (result < 5) {
|
if (i == nrNodes) log.testOK();
|
||||||
/*log.log("Node " + i + " only sent " + result + " messages yet\n");*/
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
log.testOK(); /* We are done! */
|
}
|
||||||
|
|
|
@ -1,7 +1,4 @@
|
||||||
/* Script is called once for every node log output. */
|
TIMEOUT(2000, log.log("last message: " + msg + "\n"));
|
||||||
/* Input variables: Mote mote, int id, String msg. */
|
|
||||||
|
|
||||||
if (msg.startsWith('Hello, world')) {
|
WAIT_UNTIL(msg.equals('Hello, world'));
|
||||||
log.log('TEST OK\n'); /* Report test success */
|
log.testOK();
|
||||||
mote.getSimulation().getGUI().doQuit(false); /* Quit simulator (to end test run)*/
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,52 +1,15 @@
|
||||||
|
TIMEOUT(2000, log.log("last message: " + msg + "\n"));
|
||||||
|
|
||||||
/* Wait until node has booted */
|
/* Wait until node has booted */
|
||||||
if (msg.startsWith('Starting')) {
|
WAIT_UNTIL(msg.startsWith('Starting'));
|
||||||
log.log("Shell started\n");
|
log.log("Shell started\n");
|
||||||
global.put("started", true);
|
|
||||||
}
|
|
||||||
result = global.get("started");
|
|
||||||
if (result == null || result == false) {
|
|
||||||
/*log.log("Shell did not yet start\n");*/
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Send command ps */
|
/* Test command: ps */
|
||||||
result = global.get("command_ps");
|
node.write("ps");
|
||||||
if (result == null || result == false) {
|
WAIT_UNTIL(msg.startsWith('Event timer'));
|
||||||
log.log("Sending 'ps'\n");
|
|
||||||
global.put("command_ps", true);
|
|
||||||
node.write("ps");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Wait for ps response */
|
/* Test command: help */
|
||||||
if (msg.startsWith('Event timer')) {
|
node.write("help");
|
||||||
log.log("Reponse from 'ps'\n");
|
WAIT_UNTIL(msg.startsWith('write <filename>'));
|
||||||
global.put("response_ps", true);
|
|
||||||
}
|
|
||||||
result = global.get("response_ps");
|
|
||||||
if (result == null || result == false) {
|
|
||||||
/*log.log("Waiting for 'ps' response\n");*/
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Send command help */
|
log.testOK(); /* We are done! */
|
||||||
result = global.get("command_help");
|
|
||||||
if (result == null || result == false) {
|
|
||||||
log.log("Sending 'help'\n");
|
|
||||||
global.put("command_help", true);
|
|
||||||
node.write("help");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Wait for help response */
|
|
||||||
if (msg.startsWith('write <filename>')) {
|
|
||||||
log.log("Reponse from 'help'\n");
|
|
||||||
global.put("response_help", true);
|
|
||||||
}
|
|
||||||
result = global.get("response_help");
|
|
||||||
if (result == null || result == false) {
|
|
||||||
/*log.log("Waiting for 'help' response\n");*/
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
log.testOK(); /* We are done! */
|
|
||||||
|
|
|
@ -1,9 +1,4 @@
|
||||||
/* Script is called once for every node log output. */
|
TIMEOUT(2000, log.log("last message: " + msg + "\n"));
|
||||||
/* Input variables: Mote mote, int id, String msg. */
|
|
||||||
|
|
||||||
/* Contiki test script example */
|
WAIT_UNTIL(msg.startsWith('Contiki'));
|
||||||
if (msg.startsWith('Contiki')) {
|
log.testOK();
|
||||||
log.testOK(); /* Report test success */
|
|
||||||
} else {
|
|
||||||
log.testFailed(); /* Report test failure */
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in a new issue