105 lines
2.1 KiB
C++
105 lines
2.1 KiB
C++
#include <ArduinoUnit.h>
|
|
#include <OSCMessage.h>
|
|
|
|
#define HAS_DOUBLE sizeof(double) == 8
|
|
|
|
|
|
test(message_address){
|
|
OSCMessage msg("/hihi");
|
|
char addr[6];
|
|
msg.getAddress(addr);
|
|
assertEqual(strcmp(addr, "/hihi"), 0);
|
|
}
|
|
|
|
test(message_address_offset){
|
|
OSCMessage msg("/foo/bar");
|
|
char addr[5];
|
|
msg.getAddress(addr, 4);
|
|
assertEqual(strcmp(addr, "/bar"), 0);
|
|
}
|
|
|
|
test(message_copy){
|
|
OSCMessage msg("/hihi");
|
|
msg.add(1);
|
|
OSCMessage cpy(&msg);
|
|
assertEqual(cpy.size(), 1);
|
|
assertTrue(cpy.isInt(0));
|
|
assertEqual(cpy.getInt(0), 1);
|
|
}
|
|
|
|
test(message_int){
|
|
OSCMessage msg("/foo");
|
|
msg.add(1);
|
|
assertTrue(msg.isInt(0));
|
|
assertEqual(msg.getInt(0), 1);
|
|
assertEqual(msg.getDataLength(0), 4);
|
|
}
|
|
|
|
test(message_float){
|
|
OSCMessage msg("/foo");
|
|
msg.add(1.0f);
|
|
assertTrue(msg.isFloat(0));
|
|
assertEqual(msg.getFloat(0), 1.0f);
|
|
assertEqual(msg.getDataLength(0), 4);
|
|
}
|
|
|
|
test(message_string){
|
|
OSCMessage msg("/foo");
|
|
msg.add("oh hi");
|
|
assertTrue(msg.isString(0));
|
|
char str[6];
|
|
msg.getString(0, str, 6);
|
|
assertEqual(strcmp(str, "oh hi"), 0);
|
|
assertEqual(msg.getDataLength(0), 6);
|
|
}
|
|
|
|
test(message_blob){
|
|
OSCMessage msg("/foo");
|
|
uint8_t b[] = {0, 1, 2, 3, 4};
|
|
msg.add(b, 5);
|
|
assertTrue(msg.isBlob(0));
|
|
uint8_t blob[5];
|
|
msg.getBlob(0, blob, 5);
|
|
for (int i = 0; i < 5; i++){
|
|
assertEqual(blob[i], b[i]);
|
|
}
|
|
//9 because it includes the 4 byte length
|
|
assertEqual(msg.getDataLength(0), 9);
|
|
}
|
|
|
|
test(message_boolean){
|
|
OSCMessage msg("/foo");
|
|
msg.add(true);
|
|
assertTrue(msg.isBoolean(0));
|
|
assertEqual(msg.getBoolean(0), true);
|
|
assertEqual(msg.getDataLength(0), 0);
|
|
}
|
|
|
|
test(mixed_message_type){
|
|
OSCMessage msg("/foo");
|
|
msg.add(true);
|
|
msg.add(1.0f);
|
|
msg.add(2);
|
|
msg.add("test");
|
|
assertEqual(msg.size(), 4);
|
|
assertEqual(msg.getType(0), 'T');
|
|
assertTrue(msg.isBoolean(0));
|
|
assertFalse(msg.isBoolean(1));
|
|
assertTrue(msg.isFloat(1));
|
|
assertTrue(msg.isInt(2));
|
|
assertTrue(msg.isString(3));
|
|
assertEqual(msg.getInt(2), 2);
|
|
assertEqual(msg.getInt(3), (int)NULL);
|
|
}
|
|
|
|
void setup()
|
|
{
|
|
Serial.begin(9600);
|
|
while(!Serial); // for the Arduino Leonardo/Micro only
|
|
}
|
|
|
|
void loop()
|
|
{
|
|
Test::run();
|
|
}
|