Skip to content

Commit

Permalink
add a test case for publishingInterval and samplingInterval < 5
Browse files Browse the repository at this point in the history
  • Loading branch information
StalderT authored and jpfr committed Oct 15, 2018
1 parent b8fa259 commit d938406
Showing 1 changed file with 61 additions and 0 deletions.
61 changes: 61 additions & 0 deletions tests/server/check_services_subscriptions.c
Original file line number Diff line number Diff line change
Expand Up @@ -663,6 +663,65 @@ START_TEST(Server_lifeTimeCount) {
}
END_TEST

START_TEST(Server_invalidPublishingInterval) {
UA_Double savedPublishingIntervalLimitsMin = server->config.publishingIntervalLimits.min;
server->config.publishingIntervalLimits.min = 1;
// server->config.samplingIntervalLimits.min = 1;
/* Create a subscription */
UA_CreateSubscriptionRequest request;
UA_CreateSubscriptionResponse response;

UA_CreateSubscriptionRequest_init(&request);
request.publishingEnabled = true;
request.requestedPublishingInterval = 1; // Must be < 5
UA_CreateSubscriptionResponse_init(&response);
Service_CreateSubscription(server, &adminSession, &request, &response);
ck_assert_uint_eq(response.responseHeader.serviceResult, UA_STATUSCODE_BADINTERNALERROR);
UA_CreateSubscriptionResponse_deleteMembers(&response);

server->config.publishingIntervalLimits.min = savedPublishingIntervalLimitsMin;
}
END_TEST

START_TEST(Server_invalidSamplingInterval) {
UA_Double savedSamplingIntervalLimitsMin = server->config.samplingIntervalLimits.min;
server->config.samplingIntervalLimits.min = 1;

UA_CreateMonitoredItemsRequest request;
UA_CreateMonitoredItemsRequest_init(&request);
request.subscriptionId = subscriptionId;
request.timestampsToReturn = UA_TIMESTAMPSTORETURN_SERVER;
UA_MonitoredItemCreateRequest item;
UA_MonitoredItemCreateRequest_init(&item);
UA_ReadValueId rvi;
UA_ReadValueId_init(&rvi);
rvi.nodeId = UA_NODEID_NUMERIC(0, UA_NS0ID_SERVER);
rvi.attributeId = UA_ATTRIBUTEID_BROWSENAME;
rvi.indexRange = UA_STRING_NULL;
item.itemToMonitor = rvi;
item.monitoringMode = UA_MONITORINGMODE_REPORTING;
UA_MonitoringParameters params;
UA_MonitoringParameters_init(&params);
params.samplingInterval = 1; // Must be < 5
item.requestedParameters = params;
request.itemsToCreateSize = 1;
request.itemsToCreate = &item;

UA_CreateMonitoredItemsResponse response;
UA_CreateMonitoredItemsResponse_init(&response);

Service_CreateMonitoredItems(server, &adminSession, &request, &response);
ck_assert_uint_eq(response.responseHeader.serviceResult, UA_STATUSCODE_GOOD);
ck_assert_uint_eq(response.resultsSize, 1);
ck_assert_uint_eq(response.results[0].statusCode, UA_STATUSCODE_BADINTERNALERROR);

UA_MonitoredItemCreateRequest_deleteMembers(&item);
UA_CreateMonitoredItemsResponse_deleteMembers(&response);

server->config.samplingIntervalLimits.min = savedSamplingIntervalLimitsMin;
}
END_TEST

#endif /* UA_ENABLE_SUBSCRIPTIONS */

static Suite* testSuite_Client(void) {
Expand All @@ -679,10 +738,12 @@ static Suite* testSuite_Client(void) {
tcase_add_test(tc_server, Server_setMonitoringMode);
tcase_add_test(tc_server, Server_deleteMonitoredItems);
tcase_add_test(tc_server, Server_republish);
tcase_add_test(tc_server, Server_invalidSamplingInterval);
tcase_add_test(tc_server, Server_deleteSubscription);
tcase_add_test(tc_server, Server_republish_invalid);
tcase_add_test(tc_server, Server_publishCallback);
tcase_add_test(tc_server, Server_lifeTimeCount);
tcase_add_test(tc_server, Server_invalidPublishingInterval);
#endif /* UA_ENABLE_SUBSCRIPTIONS */
suite_add_tcase(s, tc_server);

Expand Down

0 comments on commit d938406

Please sign in to comment.