|
@@ -16,35 +16,8 @@
|
|
UA_Server *server;
|
|
UA_Server *server;
|
|
UA_ServerConfig *config;
|
|
UA_ServerConfig *config;
|
|
UA_Boolean *running;
|
|
UA_Boolean *running;
|
|
-UA_ServerNetworkLayer nl;
|
|
|
|
pthread_t server_thread;
|
|
pthread_t server_thread;
|
|
|
|
|
|
-static void
|
|
|
|
-addVariable(size_t size) {
|
|
|
|
- /* Define the attribute of the myInteger variable node */
|
|
|
|
- UA_VariableAttributes attr = UA_VariableAttributes_default;
|
|
|
|
- UA_Int32* array = (UA_Int32*)UA_malloc(size * sizeof(UA_Int32));
|
|
|
|
- memset(array, 0, size * sizeof(UA_Int32));
|
|
|
|
- UA_Variant_setArray(&attr.value, array, size, &UA_TYPES[UA_TYPES_INT32]);
|
|
|
|
-
|
|
|
|
- char name[] = "my.variable";
|
|
|
|
- attr.description = UA_LOCALIZEDTEXT("en-US", name);
|
|
|
|
- attr.displayName = UA_LOCALIZEDTEXT("en-US", name);
|
|
|
|
- attr.dataType = UA_TYPES[UA_TYPES_INT32].typeId;
|
|
|
|
-
|
|
|
|
- /* Add the variable node to the information model */
|
|
|
|
- UA_NodeId myIntegerNodeId = UA_NODEID_STRING(1, name);
|
|
|
|
- UA_QualifiedName myIntegerName = UA_QUALIFIEDNAME(1, name);
|
|
|
|
- UA_NodeId parentNodeId = UA_NODEID_NUMERIC(0, UA_NS0ID_OBJECTSFOLDER);
|
|
|
|
- UA_NodeId parentReferenceNodeId = UA_NODEID_NUMERIC(0, UA_NS0ID_ORGANIZES);
|
|
|
|
- UA_Server_addVariableNode(server, myIntegerNodeId, parentNodeId,
|
|
|
|
- parentReferenceNodeId, myIntegerName,
|
|
|
|
- UA_NODEID_NUMERIC(0, UA_NS0ID_BASEDATAVARIABLETYPE),
|
|
|
|
- attr, NULL, NULL);
|
|
|
|
-
|
|
|
|
- UA_free(array);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
static void * serverloop(void *_) {
|
|
static void * serverloop(void *_) {
|
|
while(*running)
|
|
while(*running)
|
|
UA_Server_run_iterate(server, true);
|
|
UA_Server_run_iterate(server, true);
|
|
@@ -57,8 +30,8 @@ static void setup(void) {
|
|
config = UA_ServerConfig_new_default();
|
|
config = UA_ServerConfig_new_default();
|
|
server = UA_Server_new(config);
|
|
server = UA_Server_new(config);
|
|
UA_Server_run_startup(server);
|
|
UA_Server_run_startup(server);
|
|
- addVariable(16366);
|
|
|
|
pthread_create(&server_thread, NULL, serverloop, NULL);
|
|
pthread_create(&server_thread, NULL, serverloop, NULL);
|
|
|
|
+ UA_realSleep(100);
|
|
}
|
|
}
|
|
|
|
|
|
static void teardown(void) {
|
|
static void teardown(void) {
|
|
@@ -75,10 +48,10 @@ START_TEST(SecureChannel_timeout_max) {
|
|
UA_StatusCode retval = UA_Client_connect(client, "opc.tcp://localhost:4840");
|
|
UA_StatusCode retval = UA_Client_connect(client, "opc.tcp://localhost:4840");
|
|
ck_assert_uint_eq(retval, UA_STATUSCODE_GOOD);
|
|
ck_assert_uint_eq(retval, UA_STATUSCODE_GOOD);
|
|
|
|
|
|
- UA_sleep(UA_ClientConfig_default.secureChannelLifeTime);
|
|
|
|
|
|
+ UA_fakeSleep(UA_ClientConfig_default.secureChannelLifeTime);
|
|
|
|
|
|
UA_Variant val;
|
|
UA_Variant val;
|
|
- UA_NodeId nodeId = UA_NODEID_STRING(1, "my.variable");
|
|
|
|
|
|
+ UA_NodeId nodeId = UA_NODEID_NUMERIC(0, UA_NS0ID_SERVER_SERVERSTATUS_STATE);
|
|
retval = UA_Client_readValueAttribute(client, nodeId, &val);
|
|
retval = UA_Client_readValueAttribute(client, nodeId, &val);
|
|
ck_assert_uint_eq(retval, UA_STATUSCODE_GOOD);
|
|
ck_assert_uint_eq(retval, UA_STATUSCODE_GOOD);
|
|
|
|
|
|
@@ -94,11 +67,11 @@ START_TEST(SecureChannel_timeout_fail) {
|
|
UA_StatusCode retval = UA_Client_connect(client, "opc.tcp://localhost:4840");
|
|
UA_StatusCode retval = UA_Client_connect(client, "opc.tcp://localhost:4840");
|
|
ck_assert_uint_eq(retval, UA_STATUSCODE_GOOD);
|
|
ck_assert_uint_eq(retval, UA_STATUSCODE_GOOD);
|
|
|
|
|
|
- UA_sleep(UA_ClientConfig_default.secureChannelLifeTime+1);
|
|
|
|
|
|
+ UA_fakeSleep(UA_ClientConfig_default.secureChannelLifeTime+1);
|
|
|
|
|
|
UA_Variant val;
|
|
UA_Variant val;
|
|
UA_Variant_init(&val);
|
|
UA_Variant_init(&val);
|
|
- UA_NodeId nodeId = UA_NODEID_STRING(1, "my.variable");
|
|
|
|
|
|
+ UA_NodeId nodeId = UA_NODEID_NUMERIC(0, UA_NS0ID_SERVER_SERVERSTATUS_STATE);
|
|
retval = UA_Client_readValueAttribute(client, nodeId, &val);
|
|
retval = UA_Client_readValueAttribute(client, nodeId, &val);
|
|
ck_assert(retval != UA_STATUSCODE_GOOD);
|
|
ck_assert(retval != UA_STATUSCODE_GOOD);
|
|
|
|
|