extern "C"
{
#include "ocstack.h"
+ #include "ocstackinternal.h"
#include "logger.h"
- #include "ocmalloc.h"
+ #include "oic_malloc.h"
}
#include "gtest/gtest.h"
//-----------------------------------------------------------------------------
// Entity handler
//-----------------------------------------------------------------------------
-OCEntityHandlerResult entityHandler(OCEntityHandlerFlag flag, OCEntityHandlerRequest * entityHandlerRequest)
+OCEntityHandlerResult entityHandler(OCEntityHandlerFlag flag, OCEntityHandlerRequest * entityHandlerRequest,
+ void* callbackParam)
{
OC_LOG(INFO, TAG, "Entering entityHandler");
EXPECT_EQ(OC_STACK_OK, OCStop());
}
+TEST(StackStart, SetPlatformInfoWithZeroLengthManufacturerName)
+{
+ itst::DeadmanTimer killSwitch(SHORT_TEST_TIMEOUT);
+ EXPECT_EQ(OC_STACK_OK, OCInit("127.0.0.1", 5683, OC_SERVER));
+
+ OCPlatformInfo info = {};
+ info.platformID = (char *) "platform_id";
+ info.manufacturerName = (char *) "";
+
+ EXPECT_EQ(OC_STACK_INVALID_PARAM, OCSetPlatformInfo(info));
+ EXPECT_EQ(OC_STACK_OK, OCStop());
+}
+
TEST(StackStart, SetPlatformInfoWithTooLongManufacName)
{
itst::DeadmanTimer killSwitch(SHORT_TEST_TIMEOUT);
/* Start a discovery query*/
char szQueryUri[64] = { 0 };
- strcpy(szQueryUri, OC_WELL_KNOWN_QUERY);
+ strcpy(szQueryUri, OC_RSRVD_WELL_KNOWN_URI);
cbData.cb = asyncDoResourcesCallback;
cbData.context = (void*)DEFAULT_CONTEXT_VALUE;
cbData.cd = NULL;
szQueryUri,
0,
0,
- OC_IPV4,
+ CT_ADAPTER_IP,
OC_LOW_QOS,
&cbData,
NULL,
TEST(StackStop, StackStopWithoutInit)
{
itst::DeadmanTimer killSwitch(SHORT_TEST_TIMEOUT);
+ EXPECT_EQ(OC_STACK_ERROR, OCStop());
+}
+
+TEST(StackStop, StackStopRepeated)
+{
+ itst::DeadmanTimer killSwitch(SHORT_TEST_TIMEOUT);
EXPECT_EQ(OC_STACK_OK, OCInit("127.0.0.1", 5683, OC_CLIENT));
EXPECT_EQ(OC_STACK_OK, OCStop());
EXPECT_EQ(OC_STACK_ERROR, OCStop());
/* Start a discovery query*/
char szQueryUri[64] = { 0 };
- strcpy(szQueryUri, OC_WELL_KNOWN_QUERY);
+ strcpy(szQueryUri, OC_RSRVD_WELL_KNOWN_URI);
cbData.cb = asyncDoResourcesCallback;
cbData.context = (void*)DEFAULT_CONTEXT_VALUE;
cbData.cd = NULL;
szQueryUri,
0,
0,
- OC_IPV4,
+ CT_ADAPTER_IP,
OC_LOW_QOS,
&cbData,
NULL,
"core.rw",
"/a/led",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_INVALID_PARAM, OCCreateResource(&handle,
"core.rw",
"/a/led",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
// Property bitmask out of range
"core.rw",
"/a/led",
0,
+ NULL,
128));// invalid bitmask for OCResourceProperty
EXPECT_EQ(OC_STACK_OK, OCStop());
}
+TEST(StackResource, CreateResourceBadUri)
+{
+ itst::DeadmanTimer killSwitch(SHORT_TEST_TIMEOUT);
+ OC_LOG(INFO, TAG, "Starting CreateResourceBadUri test");
+ InitStack(OC_SERVER);
+
+ const char *uri65 = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL";
+
+ OCResourceHandle handle;
+
+ EXPECT_EQ(OC_STACK_INVALID_URI, OCCreateResource(&handle,
+ "core.led",
+ "core.rw",
+ NULL, //"/a/led",
+ 0,
+ 0,
+ OC_DISCOVERABLE|OC_OBSERVABLE));
+
+ EXPECT_EQ(OC_STACK_INVALID_URI, OCCreateResource(&handle,
+ "core.led",
+ "core.rw",
+ "", //"/a/led",
+ 0,
+ 0,
+ OC_DISCOVERABLE|OC_OBSERVABLE));
+
+ EXPECT_EQ(OC_STACK_INVALID_URI, OCCreateResource(&handle,
+ "core.led",
+ "core.rw",
+ uri65, //"/a/led",
+ 0,
+ 0,
+ OC_DISCOVERABLE|OC_OBSERVABLE));
+
+ EXPECT_EQ(OC_STACK_OK, OCStop());
+}
TEST(StackResource, CreateResourceSuccess)
{
"core.rw",
"/a/led",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
const char *url = OCGetResourceUri(handle);
EXPECT_STREQ("/a/led", url);
EXPECT_EQ(OC_STACK_OK, OCStop());
}
+TEST(StackResource, CreateResourceSuccessWithResourcePolicyPropNone)
+{
+ itst::DeadmanTimer killSwitch(SHORT_TEST_TIMEOUT);
+ OC_LOG(INFO, TAG, "Starting CreateResourceSuccessWithResourcePolicyPropNone test");
+ InitStack(OC_SERVER);
+
+ OCResourceHandle handle;
+ // the resource is non-discoverable & non-observable by the client.
+ EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle,
+ "core.led",
+ "core.rw",
+ "/a/led",
+ 0,
+ NULL,
+ OC_RES_PROP_NONE));// the resource is non-discoverable &
+ // non-observable by the client.
+ const char* url = OCGetResourceUri(handle);
+ EXPECT_STREQ("/a/led", url);
+
+ EXPECT_EQ(OC_STACK_OK, OCStop());
+}
+
+TEST(StackResource, CreateResourceWithClientStackMode)
+{
+ itst::DeadmanTimer killSwitch(SHORT_TEST_TIMEOUT);
+ OC_LOG(INFO, TAG, "Starting CreateResourceSuccess test");
+ InitStack(OC_CLIENT);
+
+ OCResourceHandle handle;
+ EXPECT_EQ(OC_STACK_INVALID_PARAM, OCCreateResource(&handle,
+ "core.led",
+ "core.rw",
+ "/a/led",
+ 0,
+ NULL,
+ OC_DISCOVERABLE|OC_OBSERVABLE));
+
+ EXPECT_EQ(OC_STACK_OK, OCStop());
+}
+
TEST(StackResource, CreateResourceFailDuplicateUri)
{
itst::DeadmanTimer killSwitch(SHORT_TEST_TIMEOUT);
"core.rw",
"/a/led",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
const char *url = OCGetResourceUri(handle);
EXPECT_STREQ("/a/led", url);
"core.rw",
"/a/led",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCStop());
"core.rw",
"/a/led1",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
OCResourceHandle handle2;
"core.rw",
"/a/led2",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
OCResourceHandle handle3;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle3,
"core.rw",
"/a/led3",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
const char *url = OCGetResourceUri(handle1);
"core.rw",
"/a/led",
0,
+ NULL,
+ OC_DISCOVERABLE|OC_OBSERVABLE));
+
+ OCResourceHandle handle2;
+ EXPECT_EQ(OC_STACK_INVALID_PARAM, OCCreateResource(&handle2,
+ "",
+ "core.rw",
+ "/a/led",
+ 0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCStop());
"core.rw",
"/a/led",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCStop());
"core.rw",
"/a/led",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
uint8_t numResourceTypes;
"core.rw",
"/a/led",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
uint8_t numResourceTypes;
"core.rw",
"/a/led",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
uint8_t numResourceInterfaces;
"core.rw",
"/a/led",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCBindResourceInterfaceToResource(handle,
OC_RSRVD_INTERFACE_DEFAULT));
"core.rw",
"/a/led",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCBindResourceInterfaceToResource(handle,
"core.rw",
"/a/led",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCBindResourceInterfaceToResource(handle,
"core.rw",
"/a/led",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
uint8_t numResourceInterfaces;
"core.rw",
"/a/led",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_ACTIVE|OC_DISCOVERABLE|OC_OBSERVABLE, OCGetResourceProperties(handle));
itst::DeadmanTimer killSwitch(SHORT_TEST_TIMEOUT);
OC_LOG(INFO, TAG, "Starting StackTestResourceDiscoverOneResourceBad test");
InitStack(OC_SERVER);
+ uint8_t numResources = 0;
+ EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
OCResourceHandle handle;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle,
"core.rw",
"/a1/led",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
const char *url = OCGetResourceUri(handle);
EXPECT_STREQ("/a1/led", url);
//EXPECT_EQ(OC_STACK_INVALID_URI, OCHandleServerRequest(&res, uri, query, req, rsp));
EXPECT_EQ(OC_STACK_OK, OCDeleteResource(handle));
- uint8_t numResources = 0;
- uint8_t numExpectedResources = InitNumExpectedResources();
+ uint8_t numExpectedResources = 0;
- EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
+ EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numExpectedResources));
EXPECT_EQ(numExpectedResources, numResources);
EXPECT_EQ(OC_STACK_OK, OCStop());
"core.rw",
"/a/led",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
const char *url = OCGetResourceUri(handle);
EXPECT_STREQ("/a/led", url);
"core.rw",
"/a/led1",
0,
+ NULL,
OC_DISCOVERABLE));
const char *url = OCGetResourceUri(handle1);
EXPECT_STREQ("/a/led1", url);
"core.rw",
"/a/led2",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
url = OCGetResourceUri(handle2);
EXPECT_STREQ("/a/led2", url);
"core.rw",
"/a/led3",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
url = OCGetResourceUri(handle3);
EXPECT_STREQ("/a/led3", url);
"core.rw",
"/a/led4",
0,
+ NULL,
OC_DISCOVERABLE));
url = OCGetResourceUri(handle4);
EXPECT_STREQ("/a/led4", url);
"core.rw",
"/a/led",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
uint8_t numResourceTypes;
"core.rw",
"/a/led",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
uint8_t numResourceTypes;
"core.rw",
"/a/led",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
uint8_t numResourceTypes;
"core.rw",
"/a/led",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
uint8_t numResourceInterfaces;
"core.rw",
"/a/led",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
uint8_t numResourceInterfaces;
"core.rw",
"/a/led",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
uint8_t numResourceInterfaces;
"core.rw",
"/a/led",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
uint8_t numResourceInterfaces;
"core.rw",
"/a/kitchen",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
OCResourceHandle handle0;
"core.rw",
"/a/led",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_INVALID_PARAM, OCBindResource(containerHandle, containerHandle));
InitStack(OC_SERVER);
uint8_t numResources = 0;
- uint8_t numExpectedResources = InitNumExpectedResources();
+ uint8_t numExpectedResources = 0;
- EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
- EXPECT_EQ(numExpectedResources, numResources);
+ EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numExpectedResources));
OCResourceHandle containerHandle;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&containerHandle,
"core.rw",
"/a/kitchen",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
EXPECT_EQ(++numExpectedResources, numResources);
"core.rw",
"/a/led0",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
EXPECT_EQ(++numExpectedResources, numResources);
"core.rw",
"/a/led1",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
EXPECT_EQ(++numExpectedResources, numResources);
"core.rw",
"/a/led2",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
EXPECT_EQ(++numExpectedResources, numResources);
"core.rw",
"/a/led3",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
EXPECT_EQ(++numExpectedResources, numResources);
"core.rw",
"/a/led4",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
EXPECT_EQ(++numExpectedResources, numResources);
"core.rw",
"/a/led5",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
EXPECT_EQ(++numExpectedResources, numResources);
"core.rw",
"/a/led",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
- EXPECT_EQ(OC_STACK_INVALID_PARAM, OCBindResourceHandler(NULL, NULL));
+ EXPECT_EQ(OC_STACK_INVALID_PARAM, OCBindResourceHandler(NULL, NULL, NULL));
EXPECT_EQ(OC_STACK_OK, OCStop());
}
"core.rw",
"/a/led",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
OCEntityHandler myHandler = entityHandler;
- EXPECT_EQ(OC_STACK_OK, OCBindResourceHandler(handle, myHandler));
+ EXPECT_EQ(OC_STACK_OK, OCBindResourceHandler(handle, myHandler, NULL));
EXPECT_EQ(myHandler, OCGetResourceHandler(handle));
InitStack(OC_SERVER);
uint8_t numResources = 0;
- uint8_t numExpectedResources = InitNumExpectedResources();
- uint8_t resourceIndex = InitResourceIndex();
-
- EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
- EXPECT_EQ(numExpectedResources, numResources);
-
+ uint8_t numExpectedResources = 0;
+ uint8_t resourceIndex = 0;
+ uint8_t prevResources = 0;
+ EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numExpectedResources));
+ prevResources = numExpectedResources;
OCResourceHandle containerHandle;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&containerHandle,
"core.led",
"core.rw",
"/a/kitchen",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
EXPECT_EQ(++numExpectedResources, numResources);
"core.rw",
"/a/led0",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
EXPECT_EQ(++numExpectedResources, numResources);
"core.rw",
"/a/led1",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
EXPECT_EQ(++numExpectedResources, numResources);
"core.rw",
"/a/led2",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
EXPECT_EQ(++numExpectedResources, numResources);
"core.rw",
"/a/led3",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
EXPECT_EQ(++numExpectedResources, numResources);
"core.rw",
"/a/led4",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
EXPECT_EQ(++numExpectedResources, numResources);
"core.rw",
"/a/led5",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
EXPECT_EQ(++numExpectedResources, numResources);
-
+ resourceIndex += prevResources;
EXPECT_EQ(containerHandle, OCGetResourceHandle(resourceIndex));
EXPECT_EQ(handle0, OCGetResourceHandle(++resourceIndex));
EXPECT_EQ(handle1, OCGetResourceHandle(++resourceIndex));
InitStack(OC_SERVER);
uint8_t numResources = 0;
- uint8_t numExpectedResources = InitNumExpectedResources();
+ uint8_t numExpectedResources = 0;
- EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
- EXPECT_EQ(numExpectedResources, numResources);
+ EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numExpectedResources));
OCResourceHandle handle0;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle0,
"core.rw",
"/a/led0",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
EXPECT_EQ(++numExpectedResources, numResources);
InitStack(OC_SERVER);
uint8_t numResources = 0;
- uint8_t numExpectedResources = InitNumExpectedResources();
- uint8_t resourceIndex = InitResourceIndex();
-
- EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
- EXPECT_EQ(numExpectedResources, numResources);
+ uint8_t numExpectedResources = 0;
+ EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numExpectedResources));
OCResourceHandle handle0;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle0,
"core.led",
"core.rw",
"/a/led0",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
EXPECT_EQ(++numExpectedResources, numResources);
"core.rw",
"/a/led1",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
EXPECT_EQ(++numExpectedResources, numResources);
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
EXPECT_EQ(--numExpectedResources, numResources);
- EXPECT_EQ(handle1, OCGetResourceHandle(resourceIndex));
+ EXPECT_EQ(handle1, OCGetResourceHandle(numResources - 1));
EXPECT_EQ(OC_STACK_OK, OCStop());
}
InitStack(OC_SERVER);
uint8_t numResources = 0;
- uint8_t numExpectedResources = InitNumExpectedResources();
- uint8_t resourceIndex = InitResourceIndex();
+ uint8_t numExpectedResources = 0;
- EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
- EXPECT_EQ(numExpectedResources, numResources);
+ EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numExpectedResources));
OCResourceHandle handle0;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle0,
"core.rw",
"/a/led0",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
EXPECT_EQ(++numExpectedResources, numResources);
"core.rw",
"/a/led1",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
EXPECT_EQ(++numExpectedResources, numResources);
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
EXPECT_EQ(--numExpectedResources, numResources);
- EXPECT_EQ(handle0, OCGetResourceHandle(resourceIndex));
+ EXPECT_EQ(handle0, OCGetResourceHandle(numResources - 1));
OCResourceHandle handle2;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle2,
"core.rw",
"/a/led2",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
EXPECT_EQ(++numExpectedResources, numResources);
InitStack(OC_SERVER);
uint8_t numResources = 0;
- uint8_t numExpectedResources = InitNumExpectedResources();
+ uint8_t numExpectedResources = 0;
uint8_t resourceIndex = InitResourceIndex();
- EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
- EXPECT_EQ(numExpectedResources, numResources);
-
+ EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numExpectedResources));
+ resourceIndex = numExpectedResources;
OCResourceHandle handle0;
EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle0,
"core.led",
"core.rw",
"/a/led0",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
EXPECT_EQ(++numExpectedResources, numResources);
"core.rw",
"/a/led1",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
EXPECT_EQ(++numExpectedResources, numResources);
"core.rw",
"/a/led2",
0,
+ NULL,
OC_DISCOVERABLE|OC_OBSERVABLE));
EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources));
EXPECT_EQ(++numExpectedResources, numResources);
EXPECT_EQ(OC_STACK_OK, OCStop());
}
-
-#ifdef __cplusplus
-extern "C" {
-#endif // __cplusplus
- void parsePresencePayload(char* payload, uint32_t* seqNum, uint32_t* maxAge, char** resType);
-#ifdef __cplusplus
+TEST(PODTests, OCHeaderOption)
+{
+ EXPECT_TRUE(std::is_pod<OCHeaderOption>::value);
}
-#endif // __cplusplus
-TEST(StackPresence, ParsePresencePayload)
+TEST(PODTests, OCCallbackData)
{
- itst::DeadmanTimer killSwitch(SHORT_TEST_TIMEOUT);
- OC_LOG(INFO, TAG, "Starting ParsePresencePayload test");
-
- char payload[100];
- uint32_t seqNum = 0, maxAge = 0;
- char * resType = NULL;
-
- //Good Scenario
- strncpy(payload, "{\"oc\":[100:99:presence]}", sizeof(payload));
- parsePresencePayload(payload, &seqNum, &maxAge, &resType);
- EXPECT_TRUE(100 == seqNum);
- EXPECT_TRUE(99 == maxAge);
- EXPECT_STREQ("presence", resType);
- OCFree(resType);
-
- //Bad Scenario -- should not result in Seg Fault
- parsePresencePayload(payload, NULL, &maxAge, &resType);
-
- //Bad Scenario
- seqNum = 0; maxAge = 0; resType = NULL;
- strncpy(payload, "{abracadabra}", sizeof(payload));
- parsePresencePayload(payload, &seqNum, &maxAge, &resType);
- EXPECT_TRUE(0 == seqNum);
- EXPECT_TRUE(0 == maxAge);
- EXPECT_EQ(NULL, resType);
- OCFree(resType);
-
- //Bad Scenario
- seqNum = 0; maxAge = 0; resType = NULL;
- strncpy(payload, "{\"oc\":[100]}", sizeof(payload));
- parsePresencePayload(payload, &seqNum, &maxAge, &resType);
- EXPECT_TRUE(100 == seqNum);
- EXPECT_TRUE(0 == maxAge);
- EXPECT_EQ(NULL, resType);
- OCFree(resType);
-
- //Bad Scenario
- seqNum = 0; maxAge = 0; resType = NULL;
- strncpy(payload, "{\"oc\":[]}", sizeof(payload));
- parsePresencePayload(payload, &seqNum, &maxAge, &resType);
- EXPECT_TRUE(0 == seqNum);
- EXPECT_TRUE(0 == maxAge);
- EXPECT_EQ(NULL, resType);
- OCFree(resType);
-
- //Bad Scenario
- strncpy(payload, "{:]}", sizeof(payload));
- parsePresencePayload(payload, &seqNum, &maxAge, &resType);
- EXPECT_TRUE(0 == seqNum);
- EXPECT_TRUE(0 == maxAge);
- EXPECT_EQ(NULL, resType);
- OCFree(resType);
-
- //Bad Scenario
- strncpy(payload, "{:[presence}", sizeof(payload));
- parsePresencePayload(payload, &seqNum, &maxAge, &resType);
- EXPECT_TRUE(0 == seqNum);
- EXPECT_TRUE(0 == maxAge);
- EXPECT_EQ(NULL, resType);
- OCFree(resType);
+ EXPECT_TRUE(std::is_pod<OCHeaderOption>::value);
}