X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=resource%2Fcsdk%2Fstack%2Ftest%2Fstacktests.cpp;h=8ee757d44985ef7b7ebc7b49be32bd058bbdf8a8;hb=8c01dff2c5bc5496f7dc1632c498943ec6ecb015;hp=19631d7af072981a6e149a29c51a77fdaf96013a;hpb=935fdb9b67b6c10d007e652e9e2e028fd6ccfe09;p=platform%2Fupstream%2Fiotivity.git diff --git a/resource/csdk/stack/test/stacktests.cpp b/resource/csdk/stack/test/stacktests.cpp index 19631d7..8ee757d 100644 --- a/resource/csdk/stack/test/stacktests.cpp +++ b/resource/csdk/stack/test/stacktests.cpp @@ -22,8 +22,9 @@ extern "C" { #include "ocstack.h" + #include "ocstackinternal.h" #include "logger.h" - #include "ocmalloc.h" + #include "oic_malloc.h" } #include "gtest/gtest.h" @@ -78,7 +79,8 @@ extern "C" OCStackApplicationResult asyncDoResourcesCallback(void* ctx, OCDoHan //----------------------------------------------------------------------------- // Entity handler //----------------------------------------------------------------------------- -OCEntityHandlerResult entityHandler(OCEntityHandlerFlag flag, OCEntityHandlerRequest * entityHandlerRequest) +OCEntityHandlerResult entityHandler(OCEntityHandlerFlag flag, OCEntityHandlerRequest * entityHandlerRequest, + void* callbackParam) { OC_LOG(INFO, TAG, "Entering entityHandler"); @@ -217,6 +219,19 @@ TEST(StackStart, SetPlatformInfoWithNoManufacturerName) 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); @@ -256,7 +271,7 @@ TEST(StackDiscovery, DISABLED_DoResourceDeviceDiscovery) /* 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; @@ -265,7 +280,7 @@ TEST(StackDiscovery, DISABLED_DoResourceDeviceDiscovery) szQueryUri, 0, 0, - OC_IPV4, + CT_ADAPTER_IP, OC_LOW_QOS, &cbData, NULL, @@ -276,6 +291,12 @@ TEST(StackDiscovery, DISABLED_DoResourceDeviceDiscovery) 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()); @@ -292,7 +313,7 @@ TEST(StackResource, DISABLED_UpdateResourceNullURI) /* 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; @@ -301,7 +322,7 @@ TEST(StackResource, DISABLED_UpdateResourceNullURI) szQueryUri, 0, 0, - OC_IPV4, + CT_ADAPTER_IP, OC_LOW_QOS, &cbData, NULL, @@ -322,6 +343,7 @@ TEST(StackResource, CreateResourceBadParams) "core.rw", "/a/led", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); EXPECT_EQ(OC_STACK_INVALID_PARAM, OCCreateResource(&handle, @@ -329,6 +351,7 @@ TEST(StackResource, CreateResourceBadParams) "core.rw", "/a/led", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); // Property bitmask out of range @@ -337,11 +360,48 @@ TEST(StackResource, CreateResourceBadParams) "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) { @@ -355,6 +415,7 @@ TEST(StackResource, CreateResourceSuccess) "core.rw", "/a/led", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); const char *url = OCGetResourceUri(handle); EXPECT_STREQ("/a/led", url); @@ -362,6 +423,46 @@ TEST(StackResource, CreateResourceSuccess) 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); @@ -374,6 +475,7 @@ TEST(StackResource, CreateResourceFailDuplicateUri) "core.rw", "/a/led", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); const char *url = OCGetResourceUri(handle); EXPECT_STREQ("/a/led", url); @@ -383,6 +485,7 @@ TEST(StackResource, CreateResourceFailDuplicateUri) "core.rw", "/a/led", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); EXPECT_EQ(OC_STACK_OK, OCStop()); @@ -400,6 +503,7 @@ TEST(StackResource, CreateResourceMultipleResources) "core.rw", "/a/led1", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); OCResourceHandle handle2; @@ -408,6 +512,7 @@ TEST(StackResource, CreateResourceMultipleResources) "core.rw", "/a/led2", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); OCResourceHandle handle3; EXPECT_EQ(OC_STACK_OK, OCCreateResource(&handle3, @@ -415,6 +520,7 @@ TEST(StackResource, CreateResourceMultipleResources) "core.rw", "/a/led3", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); const char *url = OCGetResourceUri(handle1); @@ -441,6 +547,16 @@ TEST(StackResource, CreateResourceBadResoureType) "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()); @@ -458,6 +574,7 @@ TEST(StackResource, CreateResourceGoodResourceType) "core.rw", "/a/led", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); EXPECT_EQ(OC_STACK_OK, OCStop()); @@ -475,6 +592,7 @@ TEST(StackResource, ResourceTypeName) "core.rw", "/a/led", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); uint8_t numResourceTypes; @@ -505,6 +623,7 @@ TEST(StackResource, ResourceTypeAttrRepresentation) "core.rw", "/a/led", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); uint8_t numResourceTypes; @@ -526,6 +645,7 @@ TEST(StackResource, ResourceTypeInterface) "core.rw", "/a/led", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); uint8_t numResourceInterfaces; @@ -558,6 +678,7 @@ TEST(StackResource, ResourceDefaultInterfaceAlwaysFirst) "core.rw", "/a/led", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); EXPECT_EQ(OC_STACK_OK, OCBindResourceInterfaceToResource(handle, OC_RSRVD_INTERFACE_DEFAULT)); @@ -588,6 +709,7 @@ TEST(StackResource, ResourceDuplicateDefaultInterfaces) "core.rw", "/a/led", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); EXPECT_EQ(OC_STACK_OK, OCBindResourceInterfaceToResource(handle, @@ -619,6 +741,7 @@ TEST(StackResource, ResourceDuplicateNonDefaultInterfaces) "core.rw", "/a/led", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); EXPECT_EQ(OC_STACK_OK, OCBindResourceInterfaceToResource(handle, @@ -645,6 +768,7 @@ TEST(StackResource, ResourceTypeInterfaceMethods) "core.rw", "/a/led", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); uint8_t numResourceInterfaces; @@ -666,6 +790,7 @@ TEST(StackResource, GetResourceProperties) "core.rw", "/a/led", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); EXPECT_EQ(OC_ACTIVE|OC_DISCOVERABLE|OC_OBSERVABLE, OCGetResourceProperties(handle)); @@ -679,6 +804,8 @@ TEST(StackResource, StackTestResourceDiscoverOneResourceBad) 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, @@ -686,16 +813,16 @@ TEST(StackResource, StackTestResourceDiscoverOneResourceBad) "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()); @@ -713,6 +840,7 @@ TEST(StackResource, StackTestResourceDiscoverOneResource) "core.rw", "/a/led", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); const char *url = OCGetResourceUri(handle); EXPECT_STREQ("/a/led", url); @@ -735,6 +863,7 @@ TEST(StackResource, StackTestResourceDiscoverManyResources) "core.rw", "/a/led1", 0, + NULL, OC_DISCOVERABLE)); const char *url = OCGetResourceUri(handle1); EXPECT_STREQ("/a/led1", url); @@ -745,6 +874,7 @@ TEST(StackResource, StackTestResourceDiscoverManyResources) "core.rw", "/a/led2", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); url = OCGetResourceUri(handle2); EXPECT_STREQ("/a/led2", url); @@ -758,6 +888,7 @@ TEST(StackResource, StackTestResourceDiscoverManyResources) "core.rw", "/a/led3", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); url = OCGetResourceUri(handle3); EXPECT_STREQ("/a/led3", url); @@ -771,6 +902,7 @@ TEST(StackResource, StackTestResourceDiscoverManyResources) "core.rw", "/a/led4", 0, + NULL, OC_DISCOVERABLE)); url = OCGetResourceUri(handle4); EXPECT_STREQ("/a/led4", url); @@ -796,6 +928,7 @@ TEST(StackBind, BindResourceTypeNameBad) "core.rw", "/a/led", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); uint8_t numResourceTypes; @@ -821,6 +954,7 @@ TEST(StackBind, BindResourceTypeNameGood) "core.rw", "/a/led", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); uint8_t numResourceTypes; @@ -856,6 +990,7 @@ TEST(StackBind, BindResourceTypeAttribRepGood) "core.rw", "/a/led", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); uint8_t numResourceTypes; @@ -886,6 +1021,7 @@ TEST(StackBind, BindResourceInterfaceNameBad) "core.rw", "/a/led", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); uint8_t numResourceInterfaces; @@ -911,6 +1047,7 @@ TEST(StackBind, BindResourceInterfaceNameGood) "core.rw", "/a/led", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); uint8_t numResourceInterfaces; @@ -941,6 +1078,7 @@ TEST(StackBind, BindResourceInterfaceMethodsBad) "core.rw", "/a/led", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); uint8_t numResourceInterfaces; @@ -964,6 +1102,7 @@ TEST(StackBind, BindResourceInterfaceMethodsGood) "core.rw", "/a/led", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); uint8_t numResourceInterfaces; @@ -990,6 +1129,7 @@ TEST(StackBind, BindContainedResourceBad) "core.rw", "/a/kitchen", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); OCResourceHandle handle0; @@ -998,6 +1138,7 @@ TEST(StackBind, BindContainedResourceBad) "core.rw", "/a/led", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); EXPECT_EQ(OC_STACK_INVALID_PARAM, OCBindResource(containerHandle, containerHandle)); @@ -1014,10 +1155,9 @@ TEST(StackBind, BindContainedResourceGood) 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, @@ -1025,6 +1165,7 @@ TEST(StackBind, BindContainedResourceGood) "core.rw", "/a/kitchen", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources)); EXPECT_EQ(++numExpectedResources, numResources); @@ -1035,6 +1176,7 @@ TEST(StackBind, BindContainedResourceGood) "core.rw", "/a/led0", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources)); EXPECT_EQ(++numExpectedResources, numResources); @@ -1045,6 +1187,7 @@ TEST(StackBind, BindContainedResourceGood) "core.rw", "/a/led1", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources)); EXPECT_EQ(++numExpectedResources, numResources); @@ -1055,6 +1198,7 @@ TEST(StackBind, BindContainedResourceGood) "core.rw", "/a/led2", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources)); EXPECT_EQ(++numExpectedResources, numResources); @@ -1065,6 +1209,7 @@ TEST(StackBind, BindContainedResourceGood) "core.rw", "/a/led3", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources)); EXPECT_EQ(++numExpectedResources, numResources); @@ -1075,6 +1220,7 @@ TEST(StackBind, BindContainedResourceGood) "core.rw", "/a/led4", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources)); EXPECT_EQ(++numExpectedResources, numResources); @@ -1085,6 +1231,7 @@ TEST(StackBind, BindContainedResourceGood) "core.rw", "/a/led5", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources)); EXPECT_EQ(++numExpectedResources, numResources); @@ -1121,9 +1268,10 @@ TEST(StackBind, BindEntityHandlerBad) "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()); } @@ -1140,11 +1288,12 @@ TEST(StackBind, BindEntityHandlerGood) "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)); @@ -1158,18 +1307,18 @@ TEST(StackResourceAccess, GetResourceByIndex) 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); @@ -1180,6 +1329,7 @@ TEST(StackResourceAccess, GetResourceByIndex) "core.rw", "/a/led0", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources)); EXPECT_EQ(++numExpectedResources, numResources); @@ -1190,6 +1340,7 @@ TEST(StackResourceAccess, GetResourceByIndex) "core.rw", "/a/led1", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources)); EXPECT_EQ(++numExpectedResources, numResources); @@ -1200,6 +1351,7 @@ TEST(StackResourceAccess, GetResourceByIndex) "core.rw", "/a/led2", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources)); EXPECT_EQ(++numExpectedResources, numResources); @@ -1210,6 +1362,7 @@ TEST(StackResourceAccess, GetResourceByIndex) "core.rw", "/a/led3", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources)); EXPECT_EQ(++numExpectedResources, numResources); @@ -1220,6 +1373,7 @@ TEST(StackResourceAccess, GetResourceByIndex) "core.rw", "/a/led4", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources)); EXPECT_EQ(++numExpectedResources, numResources); @@ -1230,10 +1384,11 @@ TEST(StackResourceAccess, GetResourceByIndex) "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)); @@ -1252,10 +1407,9 @@ TEST(StackResourceAccess, DeleteHeadResource) 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, @@ -1263,6 +1417,7 @@ TEST(StackResourceAccess, DeleteHeadResource) "core.rw", "/a/led0", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources)); EXPECT_EQ(++numExpectedResources, numResources); @@ -1281,18 +1436,16 @@ TEST(StackResourceAccess, DeleteHeadResource2) 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); @@ -1303,6 +1456,7 @@ TEST(StackResourceAccess, DeleteHeadResource2) "core.rw", "/a/led1", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources)); EXPECT_EQ(++numExpectedResources, numResources); @@ -1311,7 +1465,7 @@ TEST(StackResourceAccess, DeleteHeadResource2) 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()); } @@ -1324,11 +1478,9 @@ TEST(StackResourceAccess, DeleteLastResource) 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, @@ -1336,6 +1488,7 @@ TEST(StackResourceAccess, DeleteLastResource) "core.rw", "/a/led0", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources)); EXPECT_EQ(++numExpectedResources, numResources); @@ -1346,6 +1499,7 @@ TEST(StackResourceAccess, DeleteLastResource) "core.rw", "/a/led1", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources)); EXPECT_EQ(++numExpectedResources, numResources); @@ -1354,7 +1508,7 @@ TEST(StackResourceAccess, DeleteLastResource) 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, @@ -1362,6 +1516,7 @@ TEST(StackResourceAccess, DeleteLastResource) "core.rw", "/a/led2", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources)); EXPECT_EQ(++numExpectedResources, numResources); @@ -1376,18 +1531,18 @@ TEST(StackResourceAccess, DeleteMiddleResource) 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); @@ -1398,6 +1553,7 @@ TEST(StackResourceAccess, DeleteMiddleResource) "core.rw", "/a/led1", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources)); EXPECT_EQ(++numExpectedResources, numResources); @@ -1408,6 +1564,7 @@ TEST(StackResourceAccess, DeleteMiddleResource) "core.rw", "/a/led2", 0, + NULL, OC_DISCOVERABLE|OC_OBSERVABLE)); EXPECT_EQ(OC_STACK_OK, OCGetNumberOfResources(&numResources)); EXPECT_EQ(++numExpectedResources, numResources); @@ -1429,75 +1586,12 @@ TEST(StackResourceAccess, DeleteMiddleResource) 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::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::value); }