You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@celix.apache.org by pn...@apache.org on 2017/11/20 20:33:29 UTC
[32/46] celix git commit: CELIX-417: Initial refactoring for CMake
usage
http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/dfi/private/test/dyn_function_tests.cpp
----------------------------------------------------------------------
diff --git a/dfi/private/test/dyn_function_tests.cpp b/dfi/private/test/dyn_function_tests.cpp
deleted file mode 100644
index 58ad662..0000000
--- a/dfi/private/test/dyn_function_tests.cpp
+++ /dev/null
@@ -1,274 +0,0 @@
-/**
- *Licensed to the Apache Software Foundation (ASF) under one
- *or more contributor license agreements. See the NOTICE file
- *distributed with this work for additional information
- *regarding copyright ownership. The ASF licenses this file
- *to you under the Apache License, Version 2.0 (the
- *"License"); you may not use this file except in compliance
- *with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- *Unless required by applicable law or agreed to in writing,
- *software distributed under the License is distributed on an
- *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- *specific language governing permissions and limitations
- *under the License.
- */
-#include <CppUTest/TestHarness.h>
-#include "CppUTest/CommandLineTestRunner.h"
-
-extern "C" {
- #include <stdio.h>
- #include <stdint.h>
- #include <stdlib.h>
- #include <string.h>
- #include <ctype.h>
-
-
- #include "dyn_common.h"
- #include "dyn_function.h"
-
- static void stdLog(void*, int level, const char *file, int line, const char *msg, ...) {
- va_list ap;
- const char *levels[5] = {"NIL", "ERROR", "WARNING", "INFO", "DEBUG"};
- fprintf(stderr, "%s: FILE:%s, LINE:%i, MSG:",levels[level], file, line);
- va_start(ap, msg);
- vfprintf(stderr, msg, ap);
- fprintf(stderr, "\n");
- va_end(ap);
- }
-
- #define EXAMPLE1_DESCRIPTOR "example(III)I"
- int32_t example1(int32_t a, int32_t b, int32_t c) {
- CHECK_EQUAL(2, a);
- CHECK_EQUAL(4, b);
- CHECK_EQUAL(8, c);
- return 1;
- }
-
- void test_example1(void) {
- dyn_function_type *dynFunc = NULL;
- int rc;
- void (*fp)(void) = (void (*)(void)) example1;
-
- rc = dynFunction_parseWithStr(EXAMPLE1_DESCRIPTOR, NULL, &dynFunc);
- CHECK_EQUAL(0, rc);
-
- int32_t a = 2;
- int32_t b = 4;
- int32_t c = 8;
- void *values[3];
- int32_t rVal = 0;
- values[0] = &a;
- values[1] = &b;
- values[2] = &c;
-
- rc = dynFunction_call(dynFunc, fp, &rVal, values);
- CHECK_EQUAL(0, rc);
- CHECK_EQUAL(1, rVal);
- dynFunction_destroy(dynFunc);
- }
-
- #define EXAMPLE2_DESCRIPTOR "example(I{IID val1 val2 val3}D)D"
- struct example2_arg {
- int32_t val1;
- int32_t val2;
- double val3;
- };
-
- double example2(int32_t arg1, struct example2_arg arg2, double arg3) {
- CHECK_EQUAL(2, arg1);
- CHECK_EQUAL(2, arg2.val1);
- CHECK_EQUAL(3, arg2.val2);
- CHECK_EQUAL(4.1, arg2.val3);
- CHECK_EQUAL(8.1, arg3);
- return 2.2;
- }
-
- void test_example2(void) {
- dyn_function_type *dynFunc = NULL;
- int rc;
- void (*fp)(void) = (void (*)(void)) example2;
-
- rc = dynFunction_parseWithStr(EXAMPLE2_DESCRIPTOR, NULL, &dynFunc);
- CHECK_EQUAL(0, rc);
-
- int32_t arg1 = 2;
- struct example2_arg arg2;
- arg2.val1 = 2;
- arg2.val2 = 3;
- arg2.val3 = 4.1;
- double arg3 = 8.1;
- double returnVal = 0;
- void *values[3];
- values[0] = &arg1;
- values[1] = &arg2;
- values[2] = &arg3;
-
- rc = dynFunction_call(dynFunc, fp, &returnVal, values);
- CHECK_EQUAL(0, rc);
- CHECK_EQUAL(2.2, returnVal);
- dynFunction_destroy(dynFunc);
- }
-
- static void test_access_functions(void) {
- dyn_function_type *dynFunc = NULL;
- int rc;
- rc = dynFunction_parseWithStr("add(D{DD a b}*D)V", NULL, &dynFunc);
-
- CHECK_EQUAL(0, rc);
-
- int nrOfArgs = dynFunction_nrOfArguments(dynFunc);
- CHECK_EQUAL(3, nrOfArgs);
-
- dyn_type *arg1 = dynFunction_argumentTypeForIndex(dynFunc, 1);
- CHECK(arg1 != NULL);
- CHECK_EQUAL('{', (char) dynType_descriptorType(arg1));
-
- dyn_type *nonExist = dynFunction_argumentTypeForIndex(dynFunc, 10);
- CHECK(nonExist == NULL);
-
- dyn_type *returnType = dynFunction_returnType(dynFunc);
- CHECK_EQUAL('V', (char) dynType_descriptorType(returnType));
-
- dynFunction_destroy(dynFunc);
- }
-
- //example with gen pointer and output
- #define EXAMPLE3_DESCRIPTOR "example(PD*D)N"
-
- static int testExample3(void *ptr, double a, double *out) {
- double *b = (double *)ptr;
- CHECK_EQUAL(2.0, *b)
- CHECK_EQUAL(a, 2.0);
- *out = *b * a;
- return 0;
- }
-
- static void test_example3(void) {
- dyn_function_type *dynFunc = NULL;
- void (*fp)(void) = (void(*)(void)) testExample3;
- int rc;
-
- rc = dynFunction_parseWithStr(EXAMPLE3_DESCRIPTOR, NULL, &dynFunc);
- CHECK_EQUAL(0, rc);
- double result = -1.0;
- double *input = &result;
- double a = 2.0;
- void *ptr = &a;
- void *args[3];
- args[0] = &ptr;
- args[1] = &a;
- args[2] = &input;
- int rVal = 0;
- rc = dynFunction_call(dynFunc, fp, &rVal, args);
- CHECK_EQUAL(0, rc);
- CHECK_EQUAL(4.0, result);
-
-
- double *inMemResult = (double *)calloc(1, sizeof(double));
- a = 2.0;
- ptr = &a;
- args[0] = &ptr;
- args[1] = &a;
- args[2] = &inMemResult;
- rVal = 0;
- rc = dynFunction_call(dynFunc, fp, &rVal, args);
- CHECK_EQUAL(0, rc);
- CHECK_EQUAL(4.0, result);
- free(inMemResult);
-
- dynFunction_destroy(dynFunc);
- }
-
- struct tst_seq {
- uint32_t cap;
- uint32_t len;
- double *buf;
- };
-
- #define EXAMPLE4_DESCRIPTOR "example([D)V"
-
- static void example4Func(struct tst_seq seq) {
- CHECK_EQUAL(4, seq.cap);
- CHECK_EQUAL(2, seq.len);
- CHECK_EQUAL(1.1, seq.buf[0]);
- CHECK_EQUAL(2.2, seq.buf[1]);
- }
-
- static void test_example4(void) {
- dyn_function_type *dynFunc = NULL;
- void (*fp)(void) = (void(*)(void)) example4Func;
- int rc;
-
- rc = dynFunction_parseWithStr(EXAMPLE4_DESCRIPTOR, NULL, &dynFunc);
- CHECK_EQUAL(0, rc);
-
- double buf[4];
- buf[0] = 1.1;
- buf[1] = 2.2;
- struct tst_seq seq;
- seq.cap = 4;
- seq.len = 2;
- seq.buf = buf;
-
- void *args[1];
- args[0] = &seq;
- rc = dynFunction_call(dynFunc, fp, NULL, args);
- CHECK_EQUAL(0, rc);
-
- dynFunction_destroy(dynFunc);
- }
-
- #define INVALID_FUNC_DESCRIPTOR "example$[D)V"//$ is an invalid symbol, missing (
-
- static void test_invalidDynFunc(void) {
- dyn_function_type *dynFunc = NULL;
- int rc = dynFunction_parseWithStr(INVALID_FUNC_DESCRIPTOR, NULL, &dynFunc);
- CHECK_EQUAL(2, rc); //Mem error
- }
-
- #define INVALID_FUNC_TYPE_DESCRIPTOR "example(H)A"//H and A are invalid types
-
- static void test_invalidDynFuncType(void) {
- dyn_function_type *dynFunc = NULL;
- int rc = dynFunction_parseWithStr(INVALID_FUNC_TYPE_DESCRIPTOR, NULL, &dynFunc);
- CHECK_EQUAL(3, rc); //Parse Error
- }
-}
-
-TEST_GROUP(DynFunctionTests) {
- void setup() {
- int lvl = 1;
- dynFunction_logSetup(stdLog, NULL, lvl);
- dynType_logSetup(stdLog, NULL, lvl);
- dynCommon_logSetup(stdLog, NULL, lvl);
- }
-};
-
-TEST(DynFunctionTests, DynFuncTest1) {
- test_example1();
-}
-
-TEST(DynFunctionTests, DynFuncTest2) {
- test_example2();
-}
-
-TEST(DynFunctionTests, DynFuncAccTest) {
- test_access_functions();
-}
-
-TEST(DynFunctionTests, DynFuncTest3) {
- test_example3();
-}
-
-TEST(DynFunctionTests, DynFuncTest4) {
- test_example4();
-}
-
-TEST(DynFunctionTests, InvalidDynFuncTest) {
- test_invalidDynFunc();
- test_invalidDynFuncType();
-}
http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/dfi/private/test/dyn_interface_tests.cpp
----------------------------------------------------------------------
diff --git a/dfi/private/test/dyn_interface_tests.cpp b/dfi/private/test/dyn_interface_tests.cpp
deleted file mode 100644
index df9752f..0000000
--- a/dfi/private/test/dyn_interface_tests.cpp
+++ /dev/null
@@ -1,207 +0,0 @@
-/**
- *Licensed to the Apache Software Foundation (ASF) under one
- *or more contributor license agreements. See the NOTICE file
- *distributed with this work for additional information
- *regarding copyright ownership. The ASF licenses this file
- *to you under the Apache License, Version 2.0 (the
- *"License"); you may not use this file except in compliance
- *with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- *Unless required by applicable law or agreed to in writing,
- *software distributed under the License is distributed on an
- *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- *specific language governing permissions and limitations
- *under the License.
- */
-#include <CppUTest/TestHarness.h>
-#include "CppUTest/CommandLineTestRunner.h"
-extern "C" {
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <assert.h>
-
-#include "dyn_common.h"
-#include "dyn_interface.h"
-
-#if defined(BSD) || defined(__APPLE__)
-#include "open_memstream.h"
-#include "fmemopen.h"
-#endif
-
- static void stdLog(void*, int level, const char *file, int line, const char *msg, ...) {
- va_list ap;
- const char *levels[5] = {"NIL", "ERROR", "WARNING", "INFO", "DEBUG"};
- fprintf(stderr, "%s: FILE:%s, LINE:%i, MSG:",levels[level], file, line);
- va_start(ap, msg);
- vfprintf(stderr, msg, ap);
- fprintf(stderr, "\n");
- va_end(ap);
- }
-
- static void checkInterfaceVersion(dyn_interface_type* dynIntf, const char* v) {
- int status;
-
- char *version = NULL;
- status = dynInterface_getVersionString(dynIntf, &version);
- CHECK_EQUAL(0, status);
- STRCMP_EQUAL(v, version);
- version_pt msgVersion = NULL, localMsgVersion = NULL;
- int cmpVersion = -1;
- version_createVersionFromString(version, &localMsgVersion);
- status = dynInterface_getVersion(dynIntf, &msgVersion);
- CHECK_EQUAL(0, status);
- version_compareTo(msgVersion, localMsgVersion, &cmpVersion);
- CHECK_EQUAL(cmpVersion, 0);
- version_destroy(localMsgVersion);
- }
-
- static void test1(void) {
- int status = 0;
- dyn_interface_type *dynIntf = NULL;
- FILE *desc = fopen("descriptors/example1.descriptor", "r");
- assert(desc != NULL);
- status = dynInterface_parse(desc, &dynIntf);
- CHECK_EQUAL(0, status);
- fclose(desc);
-
- char *name = NULL;
- status = dynInterface_getName(dynIntf, &name);
- CHECK_EQUAL(0, status);
- STRCMP_EQUAL("calculator", name);
-
- checkInterfaceVersion(dynIntf,"1.0.0");
-
- char *annVal = NULL;
- status = dynInterface_getAnnotationEntry(dynIntf, "classname", &annVal);
- CHECK_EQUAL(0, status);
- STRCMP_EQUAL("org.example.Calculator", annVal);
-
- char *nonExist = NULL;
- status = dynInterface_getHeaderEntry(dynIntf, "nonExisting", &nonExist);
- CHECK(status != 0);
- CHECK(nonExist == NULL);
-
- struct methods_head *list = NULL;
- status = dynInterface_methods(dynIntf, &list);
- CHECK(status == 0);
- CHECK(list != NULL);
-
- int count = dynInterface_nrOfMethods(dynIntf);
- CHECK_EQUAL(4, count);
-
- dynInterface_destroy(dynIntf);
- }
-
- static void test2(void) {
- int status = 0;
- dyn_interface_type *dynIntf = NULL;
- FILE *desc = fopen("descriptors/example3.descriptor", "r");
- assert(desc != NULL);
- status = dynInterface_parse(desc, &dynIntf);
- CHECK_EQUAL(0, status);
- fclose(desc);
-
- dynInterface_destroy(dynIntf);
- }
-
- static void testInvalid(void) {
- int status = 0;
-
- /* Invalid field */
- dyn_interface_type *dynIntf = NULL;
- FILE *desc = fopen("descriptors/invalids/invalid.descriptor", "r");
- assert(desc != NULL);
- status = dynInterface_parse(desc, &dynIntf);
- //dynInterface_destroy(dynIntf);
- CHECK_EQUAL(1, status); //Test fails because of a space at the end of the name
- fclose(desc); desc=NULL;
-
-
- /* Header without Version */
- desc = fopen("descriptors/invalids/noVersion.descriptor", "r");
- assert(desc != NULL);
- status = dynInterface_parse(desc, &dynIntf);
- //dynInterface_destroy(dynIntf);
- CHECK_EQUAL(1, status); //Test fails because of missing version field in header section
- fclose(desc); desc=NULL;
-
- /* Invalid section */
- desc = fopen("descriptors/invalids/invalidSection.descriptor", "r");
- assert(desc != NULL);
- status = dynInterface_parse(desc, &dynIntf);
- //dynInterface_destroy(dynIntf);
- CHECK_EQUAL(1, status); //Test fails because of unknown section type
- fclose(desc); desc=NULL;
-
- /* Invalid return type */
- desc = fopen("descriptors/invalids/invalidMethodReturnType.descriptor", "r");
- assert(desc != NULL);
- status = dynInterface_parse(desc, &dynIntf);
- //dynInterface_destroy(dynIntf);
- CHECK_EQUAL(1, status); //Test fails because of invalid return type (D instead of N)
- fclose(desc); desc=NULL;
-
- /* Invalid method section */
- desc = fopen("descriptors/invalids/invalidMethod.descriptor", "r");
- assert(desc != NULL);
- status = dynInterface_parse(desc, &dynIntf);
- //dynInterface_destroy(dynIntf);
- CHECK_EQUAL(1, status); //Test fails because of space at the end of the method
- fclose(desc); desc=NULL;
-
- /* Invalid type */
- desc = fopen("descriptors/invalids/invalidType.descriptor", "r");
- assert(desc != NULL);
- status = dynInterface_parse(desc, &dynIntf);
- //dynInterface_destroy(dynIntf);
- CHECK_EQUAL(1, status); //Test fails because of space at the end of the type
- fclose(desc); desc=NULL;
-
- /* Invalid metatype in method description */
- desc = fopen("descriptors/invalids/invalidMetaType.descriptor", "r");
- assert(desc != NULL);
- status = dynInterface_parse(desc, &dynIntf);
- dynInterface_destroy(dynIntf);
- CHECK_EQUAL(0, status); //Invalid meta type doesn't generate errors, just warnings
- fclose(desc); desc=NULL; dynIntf=NULL;
-
- /* Invalid version section */
- desc = fopen("descriptors/invalids/invalidVersion.descriptor", "r");
- assert(desc != NULL);
- status = dynInterface_parse(desc, &dynIntf);
- //dynInterface_destroy(dynIntf);
- CHECK_EQUAL(1, status); //Invalid meta type doesn't generate errors, just warnings
- fclose(desc); desc=NULL;
-
- }
-}
-
-
-TEST_GROUP(DynInterfaceTests) {
- void setup() {
- int level = 1;
- dynCommon_logSetup(stdLog, NULL, level);
- dynType_logSetup(stdLog, NULL, level);
- dynFunction_logSetup(stdLog, NULL, level);
- dynInterface_logSetup(stdLog, NULL, level);
- }
-};
-
-TEST(DynInterfaceTests, test1) {
- test1();
-}
-
-TEST(DynInterfaceTests, test2) {
- test2();
-}
-
-TEST(DynInterfaceTests, testInvalid) {
- testInvalid();
-}
http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/dfi/private/test/dyn_message_tests.cpp
----------------------------------------------------------------------
diff --git a/dfi/private/test/dyn_message_tests.cpp b/dfi/private/test/dyn_message_tests.cpp
deleted file mode 100644
index e310537..0000000
--- a/dfi/private/test/dyn_message_tests.cpp
+++ /dev/null
@@ -1,253 +0,0 @@
-/**
- *Licensed to the Apache Software Foundation (ASF) under one
- *or more contributor license agreements. See the NOTICE file
- *distributed with this work for additional information
- *regarding copyright ownership. The ASF licenses this file
- *to you under the Apache License, Version 2.0 (the
- *"License"); you may not use this file except in compliance
- *with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- *Unless required by applicable law or agreed to in writing,
- *software distributed under the License is distributed on an
- *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- *specific language governing permissions and limitations
- *under the License.
- */
-#include <CppUTest/TestHarness.h>
-#include "CppUTest/CommandLineTestRunner.h"
-
-extern "C" {
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <assert.h>
-
-#include "dyn_common.h"
-#include "dyn_message.h"
-
-#if defined(BSD) || defined(__APPLE__)
-#include "open_memstream.h"
-#include "fmemopen.h"
-#endif
-
-static void stdLog(void*, int level, const char *file, int line, const char *msg, ...) {
- va_list ap;
- const char *levels[5] = {"NIL", "ERROR", "WARNING", "INFO", "DEBUG"};
- fprintf(stderr, "%s: FILE:%s, LINE:%i, MSG:",levels[level], file, line);
- va_start(ap, msg);
- vfprintf(stderr, msg, ap);
- fprintf(stderr, "\n");
- va_end(ap);
-}
-
-static void checkMessageVersion(dyn_message_type* dynMsg, const char* v){
- int status = 0;
-
- char *version = NULL;
- status = dynMessage_getVersionString(dynMsg, &version);
- CHECK_EQUAL(0, status);
- STRCMP_EQUAL(v, version);
- version_pt msgVersion = NULL, localMsgVersion = NULL;
- int cmpVersion = -1;
- version_createVersionFromString(version,&localMsgVersion);
- status = dynMessage_getVersion(dynMsg,&msgVersion);
- CHECK_EQUAL(0, status);
- version_compareTo(msgVersion,localMsgVersion,&cmpVersion);
- CHECK_EQUAL(cmpVersion,0);
- version_destroy(localMsgVersion);
-
-}
-
-
-static void msg_test1(void) {
- int status = 0;
- dyn_message_type *dynMsg = NULL;
- FILE *desc = fopen("descriptors/msg_example1.descriptor", "r");
- assert(desc != NULL);
- status = dynMessage_parse(desc, &dynMsg);
- CHECK_EQUAL(0, status);
- fclose(desc);
-
- char *name = NULL;
- status = dynMessage_getName(dynMsg, &name);
- CHECK_EQUAL(0, status);
- STRCMP_EQUAL("poi", name);
-
- checkMessageVersion(dynMsg,"1.0.0");
-
- char *annVal = NULL;
- status = dynMessage_getAnnotationEntry(dynMsg, "classname", &annVal);
- CHECK_EQUAL(0, status);
- STRCMP_EQUAL("org.example.PointOfInterest", annVal);
-
- char *nonExist = NULL;
- status = dynMessage_getHeaderEntry(dynMsg, "nonExisting", &nonExist);
- CHECK(status != 0);
- CHECK(nonExist == NULL);
-
- dyn_type *msgType = NULL;
- status = dynMessage_getMessageType(dynMsg, &msgType);
- CHECK_EQUAL(0, status);
- CHECK(msgType != NULL);
-
- dynMessage_destroy(dynMsg);
-}
-
-
-static void msg_test2(void) {
- int status = 0;
- dyn_message_type *dynMsg = NULL;
- FILE *desc = fopen("descriptors/msg_example2.descriptor", "r");
- assert(desc != NULL);
- status = dynMessage_parse(desc, &dynMsg);
- CHECK_EQUAL(0, status);
- fclose(desc);
-
- char *name = NULL;
- status = dynMessage_getName(dynMsg, &name);
- CHECK_EQUAL(0, status);
- STRCMP_EQUAL("track", name);
-
- checkMessageVersion(dynMsg,"0.0.1");
-
- char *annVal = NULL;
- status = dynMessage_getAnnotationEntry(dynMsg, "classname", &annVal);
- CHECK_EQUAL(0, status);
- STRCMP_EQUAL("org.example.Track", annVal);
-
- char *nonExist = NULL;
- status = dynMessage_getHeaderEntry(dynMsg, "nonExisting", &nonExist);
- CHECK(status != 0);
- CHECK(nonExist == NULL);
-
- dyn_type *msgType = NULL;
- status = dynMessage_getMessageType(dynMsg, &msgType);
- CHECK_EQUAL(0, status);
- CHECK(msgType != NULL);
-
- dynMessage_destroy(dynMsg);
-}
-
-static void msg_test3(void) {
- int status = 0;
- dyn_message_type *dynMsg = NULL;
- FILE *desc = fopen("descriptors/msg_example3.descriptor", "r");
- assert(desc != NULL);
- status = dynMessage_parse(desc, &dynMsg);
- CHECK_EQUAL(0, status);
- fclose(desc);
-
- char *name = NULL;
- status = dynMessage_getName(dynMsg, &name);
- CHECK_EQUAL(0, status);
- STRCMP_EQUAL("logEntry", name);
-
- checkMessageVersion(dynMsg,"1.0.0");
-
- char *annVal = NULL;
- status = dynMessage_getAnnotationEntry(dynMsg, "classname", &annVal);
- CHECK_EQUAL(0, status);
- STRCMP_EQUAL("org.example.LogEntry", annVal);
-
- char *nonExist = NULL;
- status = dynMessage_getHeaderEntry(dynMsg, "nonExisting", &nonExist);
- CHECK(status != 0);
- CHECK(nonExist == NULL);
-
- dyn_type *msgType = NULL;
- status = dynMessage_getMessageType(dynMsg, &msgType);
- CHECK_EQUAL(0, status);
- CHECK(msgType != NULL);
-
- dynMessage_destroy(dynMsg);
-}
-
-static void msg_test4(void) {
- int status = 0;
- dyn_message_type *dynMsg = NULL;
- FILE *desc = fopen("descriptors/msg_example4.descriptor", "r");
- assert(desc != NULL);
- status = dynMessage_parse(desc, &dynMsg);
- CHECK(status != 0);
- fclose(desc);
-}
-
-static void msg_invalid(void) {
- int status = 0;
- dyn_message_type *dynMsg = NULL;
- FILE *desc = fopen("descriptors/invalids/invalidMsgHdr.descriptor", "r");
- assert(desc != NULL);
- status = dynMessage_parse(desc, &dynMsg);
- CHECK_EQUAL(1, status);
- fclose(desc);
-
- desc = fopen("descriptors/invalids/invalidMsgMissingVersion.descriptor", "r");
- assert(desc != NULL);
- status = dynMessage_parse(desc, &dynMsg);
- CHECK_EQUAL(1, status);
- fclose(desc);
-
- desc = fopen("descriptors/invalids/invalidMsgInvalidSection.descriptor", "r");
- assert(desc != NULL);
- status = dynMessage_parse(desc, &dynMsg);
- CHECK_EQUAL(1, status);
- fclose(desc);
-
- desc = fopen("descriptors/invalids/invalidMsgInvalidName.descriptor", "r");
- assert(desc != NULL);
- status = dynMessage_parse(desc, &dynMsg);
- CHECK_EQUAL(1, status);
- fclose(desc);
-
- desc = fopen("descriptors/invalids/invalidMsgInvalidType.descriptor", "r");
- assert(desc != NULL);
- status = dynMessage_parse(desc, &dynMsg);
- CHECK_EQUAL(1, status);
- fclose(desc);
-
- desc = fopen("descriptors/invalids/invalidMsgInvalidVersion.descriptor", "r");
- assert(desc != NULL);
- status = dynMessage_parse(desc, &dynMsg);
- CHECK_EQUAL(1, status);
- fclose(desc);
-
-}
-
-}
-
-
-TEST_GROUP(DynMessageTests) {
- void setup() {
- int level = 1;
- dynCommon_logSetup(stdLog, NULL, level);
- dynType_logSetup(stdLog, NULL, level);
- dynMessage_logSetup(stdLog, NULL, level);
- }
-};
-
-
-TEST(DynMessageTests, msg_test1) {
- msg_test1();
-}
-
-TEST(DynMessageTests, msg_test2) {
- msg_test2();
-}
-
-TEST(DynMessageTests, msg_test3) {
- msg_test3();
-}
-
-TEST(DynMessageTests, msg_test4) {
- msg_test4();
-}
-
-TEST(DynMessageTests, msg_invalid) {
- msg_invalid();
-}
http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/dfi/private/test/dyn_type_tests.cpp
----------------------------------------------------------------------
diff --git a/dfi/private/test/dyn_type_tests.cpp b/dfi/private/test/dyn_type_tests.cpp
deleted file mode 100644
index 52f9537..0000000
--- a/dfi/private/test/dyn_type_tests.cpp
+++ /dev/null
@@ -1,297 +0,0 @@
-/**
- *Licensed to the Apache Software Foundation (ASF) under one
- *or more contributor license agreements. See the NOTICE file
- *distributed with this work for additional information
- *regarding copyright ownership. The ASF licenses this file
- *to you under the Apache License, Version 2.0 (the
- *"License"); you may not use this file except in compliance
- *with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- *Unless required by applicable law or agreed to in writing,
- *software distributed under the License is distributed on an
- *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- *specific language governing permissions and limitations
- *under the License.
- */
-#include <CppUTest/TestHarness.h>
-#include "CppUTest/CommandLineTestRunner.h"
-
-extern "C" {
- #include <stdarg.h>
-
- #include "dyn_common.h"
- #include "dyn_type.h"
-
- static void stdLog(void*, int level, const char *file, int line, const char *msg, ...) {
- va_list ap;
- const char *levels[5] = {"NIL", "ERROR", "WARNING", "INFO", "DEBUG"};
- fprintf(stderr, "%s: FILE:%s, LINE:%i, MSG:",levels[level], file, line);
- va_start(ap, msg);
- vfprintf(stderr, msg, ap);
- fprintf(stderr, "\n");
- va_end(ap);
- }
-
- static void runTest(const char *descriptorStr, const char *exName) {
- dyn_type *type;
- type = NULL;
- //printf("\n-- example %s with descriptor string '%s' --\n", exName, descriptorStr);
- int status = dynType_parseWithStr(descriptorStr, exName, NULL, &type);
- CHECK_EQUAL(0, status);
-
- //MEM check, to try to ensure no mem leaks/corruptions occur.
- int i;
- int j;
- int nrOfBurst = 10;
- int burst = 50;
- void *pointers[burst];
- for (j = 0; j < nrOfBurst; j += 1) {
- for (i = 0; i < burst ; i +=1 ) {
- pointers[i] = NULL;
- dynType_alloc(type, &pointers[i]);
- }
- for (i = 0; i < burst ; i +=1 ) {
- dynType_free(type, pointers[i]);
- }
- }
-
- FILE *stream = fopen("/dev/null", "w");
- dynType_print(type, stream);
- fclose(stream);
- dynType_destroy(type);
- //printf("--\n\n");
- }
-}
-
-TEST_GROUP(DynTypeTests) {
- void setup() {
- dynType_logSetup(stdLog, NULL, 1);
- }
-};
-
-#define EX1 "{BbJjIiSsDFNN arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10 arg11 arg12}"
-#define EX2 "{D{DD b_1 b_2}I a b c}"
-#define EX3 "Tsub={DD b_1 b_2};{DLsub;I a b c}"
-#define EX4 "{[I numbers}"
-#define EX5 "[[{DD{iii val3_1 val3_2 val3_3} val1 val2 val3}"
-#define EX6 "Tsample={DD vala valb};Lsample;"
-#define EX7 "Tsample={DD vala valb};[Lsample;"
-#define EX8 "[Tsample={DD a b};Lsample;"
-#define EX9 "*D"
-#define EX10 "Tsample={DD a b};******Lsample;"
-#define EX11 "Tsample=D;Lsample;"
-#define EX12 "Tnode={Lnode;Lnode; left right};{Lnode; head}" //note recursive example
-#define EX13 "Ttype={DDDDD a b c d e};{ltype;Ltype;ltype;Ltype; byVal1 byRef1 byVal2 ByRef2}"
-#define EX14 "{DD{FF{JJ}{II*{ss}}}}" //unnamed fields
-#define EX15 "Tsample={jDD time val1 val2};Tresult={jDlsample; time result sample};Lresult;"
-#define EX16 "Tpoi={BDD id lat lon};Lpoi;"
-
-#define CREATE_EXAMPLES_TEST(DESC) \
- TEST(DynTypeTests, ParseTestExample ## DESC) { \
- runTest(DESC, #DESC); \
- }
-
-CREATE_EXAMPLES_TEST(EX1)
-CREATE_EXAMPLES_TEST(EX2)
-CREATE_EXAMPLES_TEST(EX3)
-CREATE_EXAMPLES_TEST(EX4)
-CREATE_EXAMPLES_TEST(EX5)
-CREATE_EXAMPLES_TEST(EX6)
-CREATE_EXAMPLES_TEST(EX7)
-CREATE_EXAMPLES_TEST(EX8)
-CREATE_EXAMPLES_TEST(EX9)
-CREATE_EXAMPLES_TEST(EX10)
-CREATE_EXAMPLES_TEST(EX11)
-CREATE_EXAMPLES_TEST(EX12)
-CREATE_EXAMPLES_TEST(EX13)
-CREATE_EXAMPLES_TEST(EX14)
-CREATE_EXAMPLES_TEST(EX15)
-CREATE_EXAMPLES_TEST(EX16)
-
-TEST(DynTypeTests, ParseRandomGarbageTest) {
- /*
- unsigned int seed = 4148;
- char *testRandom = getenv("DYN_TYPE_TEST_RANDOM");
- if (testRandom != NULL && strcmp("true", testRandom) == 0) {
- seed = (unsigned int) time(NULL);
- }
- srandom(seed);
- size_t nrOfTests = 100;
-
- printf("\nStarting test with random seed %i and nrOfTests %zu.\n", seed, nrOfTests);
-
- int i;
- int k;
- int c;
- int sucesses = 0;
- char descriptorStr[32];
- descriptorStr[31] = '\0';
- for(i = 0; i < nrOfTests; i += 1) {
- for(k = 0; k < 31; k += 1) {
- do {
- c = (char) (((random() * 128) / RAND_MAX) - 1);
- } while (!isprint(c));
- descriptorStr[k] = c;
- if (c == '\0') {
- break;
- }
- }
-
- //printf("ParseRandomGarbageTest iteration %i with descriptor string '%s'\n", k, descriptorStr);
- dyn_type *type = NULL;
- int status = dynType_parseWithStr(descriptorStr, NULL, NULL, &type);
- if (status == 0) {
- dynType_destroy(type);
- }
- }
- */
-}
-
-TEST(DynTypeTests, AssignTest1) {
- struct ex1 {
- int32_t a;
- int32_t b;
- int32_t c;
- };
- struct ex1 inst;
- const char *desc = "{III a b c}";
- dyn_type *type = NULL;
- int status = dynType_parseWithStr(desc, NULL, NULL, &type);
- CHECK_EQUAL(0, status);
- int32_t val1 = 2;
- int32_t val2 = 4;
- int32_t val3 = 8;
- dynType_complex_setValueAt(type, 0, &inst, &val1);
- CHECK_EQUAL(2, inst.a);
- dynType_complex_setValueAt(type, 1, &inst, &val2);
- CHECK_EQUAL(4, inst.b);
- dynType_complex_setValueAt(type, 2, &inst, &val3);
- CHECK_EQUAL(8, inst.c);
-
- dynType_destroy(type);
-}
-
-TEST(DynTypeTests, AssignTest2) {
- struct ex {
- int32_t a;
- struct {
- double a;
- double b;
- } b;
- };
- struct ex inst;
- const char *desc = "{I{DD a b} a b}";
- dyn_type *type = NULL;
- int status = dynType_parseWithStr(desc, NULL, NULL, &type);
- CHECK_EQUAL(0, status);
- int32_t a = 2;
- double b_a = 1.1;
- double b_b = 1.2;
-
- dynType_complex_setValueAt(type, 0, &inst, &a);
- CHECK_EQUAL(2, inst.a);
-
- void *loc = NULL;
- dyn_type *subType = NULL;
- dynType_complex_valLocAt(type, 1, (void *)&inst, &loc);
- dynType_complex_dynTypeAt(type, 1, &subType);
-
- dynType_complex_setValueAt(subType, 0, &inst.b, &b_a);
- CHECK_EQUAL(1.1, inst.b.a);
-
- dynType_complex_setValueAt(subType, 1, &inst.b, &b_b);
- CHECK_EQUAL(1.2, inst.b.b);
-
- dynType_destroy(type);
-}
-
-TEST(DynTypeTests, AssignTest3) {
- int simple = 1;
- dyn_type *type = NULL;
- int rc = dynType_parseWithStr("N", NULL, NULL, &type);
- CHECK_EQUAL(0, rc);
-
- int newValue = 42;
- void *loc = &simple;
- void *input = &newValue;
- dynType_simple_setValue(type, loc, input);
- CHECK_EQUAL(42, simple);
- dynType_destroy(type);
-}
-
-TEST(DynTypeTests, MetaInfoTest) {
- dyn_type *type = NULL;
- int rc = 0;
- rc = dynType_parseWithStr("#a=t;{DD#longname=longvalue;D a b c}", NULL, NULL, &type);
- //rc = dynType_parseWithStr("{DDD a b c}", NULL, NULL, &type);
-
- CHECK_EQUAL(0, rc);
-
- const char *val = NULL;
- val = dynType_getMetaInfo(type, "a");
- CHECK(val != NULL);
- CHECK(strcmp("t", val) == 0);
-
- val = dynType_getMetaInfo(type, "longname");
- CHECK(val == NULL);
-
- val = dynType_getMetaInfo(type, "nonexisting");
- CHECK(val == NULL);
-
- dynType_destroy(type);
-}
-
-TEST(DynTypeTests, SequenceWithPointerTest) {
- struct val {
- double a;
- double b;
- };
-
- struct item {
- int64_t a;
- const char *text;
- struct val val;
- double c;
- double d;
- long e;
- };
-
- struct item_sequence {
- uint32_t cap;
- uint32_t len;
- struct item **buf;
- };
-
- dyn_type *type = NULL;
- int rc = 0;
- rc = dynType_parseWithStr("Tval={DD a b};Titem={Jtlval;DDJ a text val c d e};**[Litem;", NULL, NULL, &type);
- CHECK_EQUAL(0, rc);
-
- struct item_sequence *seq = NULL;
- rc = dynType_alloc(type, (void **)&seq);
- CHECK_EQUAL(0, rc);
- CHECK(seq != NULL);
-
- dynType_free(type, seq);
-
- /*
-
-
- struct item_sequence *items = (struct item_sequence *) calloc(1,sizeof(struct item_sequence));
- items->buf = (struct item **) calloc(2, sizeof(struct item *));
- items->cap = 2;
- items->len = 2;
- items->buf[0] = (struct item *)calloc(1, sizeof(struct item));
- items->buf[0]->text = strdup("boe");
- items->buf[1] = (struct item *)calloc(1, sizeof(struct item));
- items->buf[1]->text = strdup("boe2");
-
- dynType_free(type, items);
- */
-
- dynType_destroy(type);
-}
-
http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/dfi/private/test/json_rpc_tests.cpp
----------------------------------------------------------------------
diff --git a/dfi/private/test/json_rpc_tests.cpp b/dfi/private/test/json_rpc_tests.cpp
deleted file mode 100644
index bff582e..0000000
--- a/dfi/private/test/json_rpc_tests.cpp
+++ /dev/null
@@ -1,433 +0,0 @@
-/**
- *Licensed to the Apache Software Foundation (ASF) under one
- *or more contributor license agreements. See the NOTICE file
- *distributed with this work for additional information
- *regarding copyright ownership. The ASF licenses this file
- *to you under the Apache License, Version 2.0 (the
- *"License"); you may not use this file except in compliance
- *with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- *Unless required by applicable law or agreed to in writing,
- *software distributed under the License is distributed on an
- *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- *specific language governing permissions and limitations
- *under the License.
- */
-#include <CppUTest/TestHarness.h>
-#include <float.h>
-#include <assert.h>
-#include "CppUTest/CommandLineTestRunner.h"
-
-extern "C" {
-#include <stdio.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-
-#include <ffi.h>
-
-#include "dyn_common.h"
-#include "dyn_type.h"
-#include "json_serializer.h"
-#include "json_rpc.h"
-
-static void stdLog(void*, int level, const char *file, int line, const char *msg, ...) {
- va_list ap;
- const char *levels[5] = {"NIL", "ERROR", "WARNING", "INFO", "DEBUG"};
- fprintf(stderr, "%s: FILE:%s, LINE:%i, MSG:",levels[level], file, line);
- va_start(ap, msg);
- vfprintf(stderr, msg, ap);
- fprintf(stderr, "\n");
- va_end(ap);
-}
-
-
- void prepareTest(void) {
- dyn_function_type *dynFunc = NULL;
- int rc = dynFunction_parseWithStr("add(#am=handle;PDD#am=pre;*D)N", NULL, &dynFunc);
- CHECK_EQUAL(0, rc);
-
- char *result = NULL;
-
- void *handle = NULL;
- double arg1 = 1.0;
- double arg2 = 2.0;
-
- void *args[4];
- args[0] = &handle;
- args[1] = &arg1;
- args[2] = &arg2;
-
- rc = jsonRpc_prepareInvokeRequest(dynFunc, "add", args, &result);
- CHECK_EQUAL(0, rc);
-
- //printf("result is %s\n", result);
-
- STRCMP_CONTAINS("\"add\"", result);
- STRCMP_CONTAINS("1.0", result);
- STRCMP_CONTAINS("2.0", result);
-
- free(result);
- dynFunction_destroy(dynFunc);
- }
-
- void handleTestPre(void) {
- dyn_function_type *dynFunc = NULL;
- int rc = dynFunction_parseWithStr("add(#am=handle;PDD#am=pre;*D)N", NULL, &dynFunc);
- CHECK_EQUAL(0, rc);
-
- const char *reply = "{\"r\":2.2}";
- double result = -1.0;
- double *out = &result;
- void *args[4];
- args[3] = &out;
- rc = jsonRpc_handleReply(dynFunc, reply, args);
- CHECK_EQUAL(0, rc);
- //CHECK_EQUAL(2.2, result);
-
- dynFunction_destroy(dynFunc);
- }
-
- int add(void*, double a, double b, double *result) {
- *result = a + b;
- return 0;
- }
-
- int getName_example4(void*, char** result) {
- *result = strdup("allocatedInFunction");
- return 0;
- }
-
- struct tst_seq {
- uint32_t cap;
- uint32_t len;
- double *buf;
- };
-
-
- //StatsResult={DDD[D average min max input}
- struct tst_StatsResult {
- double average;
- double min;
- double max;
- struct tst_seq input;
- };
-
-
- int stats(void*, struct tst_seq input, struct tst_StatsResult **out) {
- assert(out != NULL);
- assert(*out == NULL);
- double total = 0.0;
- unsigned int count = 0;
- double max = DBL_MIN;
- double min = DBL_MAX;
-
- unsigned int i;
- for (i = 0; i<input.len; i += 1) {
- total += input.buf[i];
- count += 1;
- if (input.buf[i] > max) {
- max = input.buf[i];
- }
- if (input.buf[i] < min) {
- min = input.buf[i];
- }
- }
-
- struct tst_StatsResult *result = (struct tst_StatsResult *) calloc(1, sizeof(*result));
- if(count>0){
- result->average = total / count;
- }
- result->min = min;
- result->max = max;
- double *buf = (double *)calloc(input.len, sizeof(double));
- memcpy(buf, input.buf, input.len * sizeof(double));
- result->input.len = input.len;
- result->input.cap = input.len;
- result->input.buf = buf;
-
- *out = result;
- return 0;
- }
-
- struct item {
- double a;
- double b;
- };
-
- struct item_seq {
- uint32_t cap;
- uint32_t len;
- struct item **buf;
- };
-
- struct tst_serv {
- void *handle;
- int (*add)(void *, double, double, double *);
- int (*sub)(void *, double, double, double *);
- int (*sqrt)(void *, double, double *);
- int (*stats)(void *, struct tst_seq, struct tst_StatsResult **);
- };
-
- struct tst_serv_example4 {
- void *handle;
- int (*getName_example4)(void *, char** name);
- };
-
- void callTestPreAllocated(void) {
- dyn_interface_type *intf = NULL;
- FILE *desc = fopen("descriptors/example1.descriptor", "r");
- CHECK(desc != NULL);
- int rc = dynInterface_parse(desc, &intf);
- CHECK_EQUAL(0, rc);
- fclose(desc);
-
- char *result = NULL;
-
- struct tst_serv serv;
- serv.handle = NULL;
- serv.add = add;
-
-
- rc = jsonRpc_call(intf, &serv, "{\"m\":\"add(DD)D\", \"a\": [1.0,2.0]}", &result);
- CHECK_EQUAL(0, rc);
- STRCMP_CONTAINS("3.0", result);
-
- free(result);
- dynInterface_destroy(intf);
- }
-
- void callTestOutput(void) {
- dyn_interface_type *intf = NULL;
- FILE *desc = fopen("descriptors/example1.descriptor", "r");
- CHECK(desc != NULL);
- int rc = dynInterface_parse(desc, &intf);
- CHECK_EQUAL(0, rc);
- fclose(desc);
-
- char *result = NULL;
-
- struct tst_serv serv;
- serv.handle = NULL;
- serv.stats = stats;
-
- rc = jsonRpc_call(intf, &serv, "{\"m\":\"stats([D)LStatsResult;\", \"a\": [[1.0,2.0]]}", &result);
- CHECK_EQUAL(0, rc);
- STRCMP_CONTAINS("1.5", result); //avg
-
- free(result);
- dynInterface_destroy(intf);
- }
-
- void handleTestOut(void) {
- dyn_interface_type *intf = NULL;
- FILE *desc = fopen("descriptors/example1.descriptor", "r");
- CHECK(desc != NULL);
- int rc = dynInterface_parse(desc, &intf);
- CHECK_EQUAL(0, rc);
- fclose(desc);
-
- struct methods_head *head;
- dynInterface_methods(intf, &head);
- dyn_function_type *func = NULL;
- struct method_entry *entry = NULL;
- TAILQ_FOREACH(entry, head, entries) {
- if (strcmp(entry->name, "stats") == 0) {
- func = entry->dynFunc;
- break;
- }
- }
- CHECK(func != NULL);
-
- const char *reply = "{\"r\":{\"input\":[1.0,2.0],\"max\":2.0,\"average\":1.5,\"min\":1.0}}";
-
- void *args[3];
- args[0] = NULL;
- args[1] = NULL;
- args[2] = NULL;
-
- struct tst_StatsResult *result = NULL;
- void *out = &result;
- args[2] = &out;
-
- rc = jsonRpc_handleReply(func, reply, args);
- CHECK_EQUAL(0, rc);
- CHECK_EQUAL(1.5, result->average);
-
- free(result->input.buf);
- free(result);
- dynInterface_destroy(intf);
- }
-
- static void handleTestOutputSequence(void) {
- dyn_interface_type *intf = NULL;
- FILE *desc = fopen("descriptors/example2.descriptor", "r");
- CHECK(desc != NULL);
- int rc = dynInterface_parse(desc, &intf);
- CHECK_EQUAL(0, rc);
- fclose(desc);
-
- struct methods_head *head;
- dynInterface_methods(intf, &head);
- dyn_function_type *func = NULL;
- struct method_entry *entry = NULL;
- TAILQ_FOREACH(entry, head, entries) {
- if (strcmp(entry->name, "example1") == 0) {
- func = entry->dynFunc;
- break;
- }
- }
- CHECK(func != NULL);
-
- //dyn_type *arg = dynFunction_argumentTypeForIndex(func, 1);
- //dynType_print(arg, stdout);
-
- const char *reply = "{\"r\":[{\"a\":1.0,\"b\":1.5},{\"a\":2.0,\"b\":2.5}]}";
-
- void *args[2];
- args[0] = NULL;
- args[1] = NULL;
-
- struct item_seq *result = NULL;
- void *out = &result;
- args[1] = &out;
-
- rc = jsonRpc_handleReply(func, reply, args);
- CHECK_EQUAL(0, rc);
- CHECK_EQUAL(2, result->len);
- CHECK_EQUAL(1.0, result->buf[0]->a);
- CHECK_EQUAL(1.5, result->buf[0]->b);
- CHECK_EQUAL(2.0, result->buf[1]->a);
- CHECK_EQUAL(2.5, result->buf[1]->b);
-
-
- unsigned int i;
- for (i = 0; i < result->len; i +=1 ) {
- free(result->buf[i]);
- }
- free(result->buf);
- free(result);
- dynInterface_destroy(intf);
- }
-
-
-
-
- void callTestOutChar(void) {
- dyn_interface_type *intf = NULL;
- FILE *desc = fopen("descriptors/example4.descriptor", "r");
- CHECK(desc != NULL);
- int rc = dynInterface_parse(desc, &intf);
- CHECK_EQUAL(0, rc);
- fclose(desc);
-
- char *result = NULL;
-
- struct tst_serv_example4 serv;
- serv.handle = NULL;
- serv.getName_example4 = getName_example4;
-
- rc = jsonRpc_call(intf, &serv, "{\"m\":\"getName(V)t\", \"a\": []}", &result);
- CHECK_EQUAL(0, rc);
-
- STRCMP_CONTAINS("allocatedInFunction", result);
-
- free(result);
- dynInterface_destroy(intf);
- }
-
-
- void handleTestOutChar(void) {
- dyn_interface_type *intf = NULL;
- FILE *desc = fopen("descriptors/example4.descriptor", "r");
- CHECK(desc != NULL);
- int rc = dynInterface_parse(desc, &intf);
- CHECK_EQUAL(0, rc);
- fclose(desc);
-
- struct methods_head *head;
- dynInterface_methods(intf, &head);
- dyn_function_type *func = NULL;
- struct method_entry *entry = NULL;
- TAILQ_FOREACH(entry, head, entries) {
- if (strcmp(entry->name, "getName") == 0) {
- func = entry->dynFunc;
- break;
- }
- }
-
- CHECK(func != NULL);
-
- const char *reply = "{\"r\": \"this is a test string\" }";
- char *result = NULL;
- void *out = &result;
-
- void *args[2];
- args[0] = NULL;
- args[1] = &out;
-
- if(func!=NULL){ // Check needed just to satisfy Coverity
- rc = jsonRpc_handleReply(func, reply, args);
- }
-
- STRCMP_EQUAL("this is a test string", result);
-
- free(result);
- dynInterface_destroy(intf);
- }
-
-
-}
-
-TEST_GROUP(JsonRpcTests) {
- void setup() {
- int lvl = 1;
- dynCommon_logSetup(stdLog, NULL, lvl);
- dynType_logSetup(stdLog, NULL,lvl);
- dynFunction_logSetup(stdLog, NULL,lvl);
- dynInterface_logSetup(stdLog, NULL,lvl);
- jsonSerializer_logSetup(stdLog, NULL, lvl);
- jsonRpc_logSetup(stdLog, NULL, lvl);
-
- }
-};
-
-
-TEST(JsonRpcTests, prepareTest) {
- prepareTest();
-}
-
-TEST(JsonRpcTests, handleTestPre) {
- handleTestPre();
-}
-
-TEST(JsonRpcTests, handleTestOut) {
- handleTestOut();
-}
-
-TEST(JsonRpcTests, callPre) {
- callTestPreAllocated();
-}
-
-TEST(JsonRpcTests, callOut) {
- callTestOutput();
-}
-
-TEST(JsonRpcTests, handleOutSeq) {
- handleTestOutputSequence();
-}
-
-
-
-TEST(JsonRpcTests, callTestOutChar) {
- callTestOutChar();
-}
-
-TEST(JsonRpcTests, handleOutChar) {
- handleTestOutChar();
-}
-
http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/dfi/private/test/json_serializer_tests.cpp
----------------------------------------------------------------------
diff --git a/dfi/private/test/json_serializer_tests.cpp b/dfi/private/test/json_serializer_tests.cpp
deleted file mode 100644
index a52e4cc..0000000
--- a/dfi/private/test/json_serializer_tests.cpp
+++ /dev/null
@@ -1,558 +0,0 @@
-/**
- *Licensed to the Apache Software Foundation (ASF) under one
- *or more contributor license agreements. See the NOTICE file
- *distributed with this work for additional information
- *regarding copyright ownership. The ASF licenses this file
- *to you under the Apache License, Version 2.0 (the
- *"License"); you may not use this file except in compliance
- *with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- *Unless required by applicable law or agreed to in writing,
- *software distributed under the License is distributed on an
- *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- *specific language governing permissions and limitations
- *under the License.
- */
-#include <CppUTest/TestHarness.h>
-#include "CppUTest/CommandLineTestRunner.h"
-
-extern "C" {
-#include <stdio.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-
-#include <ffi.h>
-
-#include "dyn_common.h"
-#include "dyn_type.h"
-#include "json_serializer.h"
-
-static void stdLog(void*, int level, const char *file, int line, const char *msg, ...) {
- va_list ap;
- const char *levels[5] = {"NIL", "ERROR", "WARNING", "INFO", "DEBUG"};
- fprintf(stderr, "%s: FILE:%s, LINE:%i, MSG:",levels[level], file, line);
- va_start(ap, msg);
- vfprintf(stderr, msg, ap);
- fprintf(stderr, "\n");
- va_end(ap);
-}
-
-/*********** example 1 ************************/
-/** struct type ******************************/
-const char *example1_descriptor = "{DJISF a b c d e}";
-
-const char *example1_input = "{ \
- \"a\" : 1.0, \
- \"b\" : 22, \
- \"c\" : 32, \
- \"d\" : 42, \
- \"e\" : 4.4 \
-}";
-
-struct example1 {
- double a; //0
- int64_t b; //1
- int32_t c; //2
- int16_t d; //3
- float e; //4
-};
-
-static void check_example1(void *data) {
- struct example1 *ex = (struct example1 *)data;
- CHECK_EQUAL(1.0, ex->a);
- LONGS_EQUAL(22, ex->b);
- LONGS_EQUAL(32, ex->c);
- LONGS_EQUAL(42, ex->d);
- CHECK_EQUAL(4.4f, ex->e);
-}
-
-/*********** example 2 ************************/
-const char *example2_descriptor = "{BJJDFD byte long1 long2 double1 float1 double2}";
-
-const char *example2_input = "{ \
- \"byte\" : 42, \
- \"long1\" : 232, \
- \"long2\" : 242, \
- \"double1\" : 4.2, \
- \"float1\" : 3.2, \
- \"double2\" : 4.4 \
-}";
-
-struct example2 {
- char byte; //0
- int64_t long1; //1
- int64_t long2; //2
- double double1; //3
- float float1; //4
- double double2; //5
-};
-
-static void check_example2(void *data) {
- struct example2 *ex = (struct example2 *)data;
- CHECK_EQUAL(42, ex->byte);
- LONGS_EQUAL(232, ex->long1);
- LONGS_EQUAL(242, ex->long2);
- CHECK_EQUAL(4.2, ex->double1);
- CHECK_EQUAL(3.2f, ex->float1);
- CHECK_EQUAL(4.4, ex->double2);
-}
-
-
-/*********** example 3 ************************/
-/** sequence with a simple type **************/
-const char *example3_descriptor = "{[I numbers}";
-
-const char *example3_input = "{ \
- \"numbers\" : [22,32,42] \
-}";
-
-struct example3 {
- struct {
- uint32_t cap;
- uint32_t len;
- int32_t *buf;
- } numbers;
-};
-
-static void check_example3(void *data) {
- struct example3 *ex = (struct example3 *)data;
- CHECK_EQUAL(3, ex->numbers.len);
- CHECK_EQUAL(22, ex->numbers.buf[0]);
- CHECK_EQUAL(32, ex->numbers.buf[1]);
- CHECK_EQUAL(42, ex->numbers.buf[2]);
-}
-
-/*********** example 4 ************************/
-/** structs within a struct (by reference)*******/
-const char *example4_descriptor = "{{IDD index val1 val2}{IDD index val1 val2} left right}";
-
-static const char *example4_input = "{ \
- \"left\" : {\"index\":1, \"val1\":1.0, \"val2\":2.0 }, \
- \"right\" : {\"index\":2, \"val1\":5.0, \"val2\":4.0 } \
-}";
-
-struct ex4_leaf {
- int32_t index;
- double val1;
- double val2;
-};
-
-struct example4 {
- struct ex4_leaf left;
- struct ex4_leaf right;
-};
-
-static void check_example4(void *data) {
- struct example4 *ex = (struct example4 *)data;
- CHECK_EQUAL(1, ex->left.index);
- CHECK_EQUAL(1.0, ex->left.val1);
- CHECK_EQUAL(2.0, ex->left.val2);
- CHECK_EQUAL(2, ex->right.index);
- CHECK_EQUAL(5.0, ex->right.val1);
- CHECK_EQUAL(4.0, ex->right.val2);
-}
-
-
-/*********** example 5 ************************/
-/** structs within a struct (by reference)*******/
-const char *example5_descriptor = "Tleaf={ts name age};Tnode={Lnode;Lnode;Lleaf; left right value};{Lnode; head}";
-
-static const char *example5_input = "{ \
- \"head\" : {\
- \"left\" : {\
- \"value\" : {\
- \"name\" : \"John\",\
- \"age\" : 44 \
- }\
- },\
- \"right\" : {\
- \"value\" : {\
- \"name\" : \"Peter\", \
- \"age\" : 55 \
- }\
- }\
- }\
-}";
-
-struct leaf {
- const char *name;
- uint16_t age;
-};
-
-struct node {
- struct node *left;
- struct node *right;
- struct leaf *value;
-};
-
-struct example5 {
- struct node *head;
-};
-
-static void check_example5(void *data) {
- struct example5 *ex = (struct example5 *)data;
- CHECK_TRUE(ex->head != NULL);
-
- CHECK(ex->head->left != NULL);
- CHECK(ex->head->left->value != NULL);
- STRCMP_EQUAL("John", ex->head->left->value->name);
- CHECK_EQUAL(44, ex->head->left->value->age);
- CHECK(ex->head->left->left == NULL);
- CHECK(ex->head->left->right == NULL);
-
- CHECK(ex->head->right != NULL);
- CHECK(ex->head->right->value != NULL);
- STRCMP_EQUAL("Peter", ex->head->right->value->name);
- CHECK_EQUAL(55, ex->head->right->value->age);
- CHECK(ex->head->right->left == NULL);
- CHECK(ex->head->right->right == NULL);
-}
-
-static const char *example6_descriptor = "Tsample={DD v1 v2};[lsample;";
-
-static const char *example6_input = "[{\"v1\":0.1,\"v2\":0.2},{\"v1\":1.1,\"v2\":1.2},{\"v1\":2.1,\"v2\":2.2}]";
-
-struct ex6_sample {
- double v1;
- double v2;
-};
-
-struct ex6_sequence {
- uint32_t cap;
- uint32_t len;
- struct ex6_sample *buf;
-};
-
-static void check_example6(struct ex6_sequence seq) {
- CHECK_EQUAL(3, seq.cap);
- CHECK_EQUAL(3, seq.len);
- CHECK_EQUAL(0.1, seq.buf[0].v1);
- CHECK_EQUAL(0.2, seq.buf[0].v2);
- CHECK_EQUAL(1.1, seq.buf[1].v1);
- CHECK_EQUAL(1.2, seq.buf[1].v2);
- CHECK_EQUAL(2.1, seq.buf[2].v1);
- CHECK_EQUAL(2.2, seq.buf[2].v2);
-}
-
-
-/*********** example 7 ************************/
-const char *example7_descriptor = "{t a}";
-
-const char *example7_input = "{ \
- \"a\" : \"apache celix\" \
-}";
-
-struct example7 {
- char* a; //0
-};
-
-static void check_example7(void *data) {
- struct example7 *ex = (struct example7 *)data;
- STRCMP_EQUAL("apache celix", ex->a);
-}
-
-
-/*********** example 8 ************************/
-
-const char *example8_descriptor = "{ZbijNP a b c d e f}";
-
-const char *example8_input = "{ \
- \"a\" : true, \
- \"b\" : 4, \
- \"c\" : 8, \
- \"d\" : 16, \
- \"e\" : 32 \
-}";
-
-struct example8 {
- bool a;
- unsigned char b;
- uint32_t c;
- uint64_t d;
- int e;
- void* f;
-};
-
-static void check_example8(void *data) {
- struct example8 *ex = (struct example8 *)data;
- CHECK_EQUAL(true,ex->a);
- CHECK_EQUAL(4,ex->b);
- CHECK_EQUAL(8,ex->c);
- //error on mac CHECK_EQUAL(16,ex->d);
- CHECK(16 == ex->d)
- CHECK_EQUAL(32,ex->e);
-}
-
-
-static void parseTests(void) {
- dyn_type *type;
- void *inst;
- int rc;
-
- type = NULL;
- inst = NULL;
- rc = dynType_parseWithStr(example1_descriptor, NULL, NULL, &type);
- CHECK_EQUAL(0, rc);
- rc = jsonSerializer_deserialize(type, example1_input, &inst);
- CHECK_EQUAL(0, rc);
- check_example1(inst);
- dynType_free(type, inst);
- dynType_destroy(type);
-
- type = NULL;
- inst = NULL;
- rc = dynType_parseWithStr(example2_descriptor, NULL, NULL, &type);
- CHECK_EQUAL(0, rc);
- rc = jsonSerializer_deserialize(type, example2_input, &inst);
- CHECK_EQUAL(0, rc);
- check_example2(inst);
- dynType_free(type, inst);
- dynType_destroy(type);
-
- type = NULL;
- inst = NULL;
- rc = dynType_parseWithStr(example3_descriptor, NULL, NULL, &type);
- CHECK_EQUAL(0, rc);
- rc = jsonSerializer_deserialize(type, example3_input, &inst);
- CHECK_EQUAL(0, rc);
- check_example3(inst);
- dynType_free(type, inst);
- dynType_destroy(type);
-
- type = NULL;
- inst = NULL;
- rc = dynType_parseWithStr(example4_descriptor, NULL, NULL, &type);
- CHECK_EQUAL(0, rc);
- rc = jsonSerializer_deserialize(type, example4_input, &inst);
- CHECK_EQUAL(0, rc);
- check_example4(inst);
- dynType_free(type, inst);
- dynType_destroy(type);
-
- type = NULL;
- inst = NULL;
- rc = dynType_parseWithStr(example5_descriptor, NULL, NULL, &type);
- CHECK_EQUAL(0, rc);
- rc = jsonSerializer_deserialize(type, example5_input, &inst);
- CHECK_EQUAL(0, rc);
- check_example5(inst);
- dynType_free(type, inst);
- dynType_destroy(type);
-
- type = NULL;
- struct ex6_sequence *seq;
- rc = dynType_parseWithStr(example6_descriptor, NULL, NULL, &type);
- CHECK_EQUAL(0, rc);
- rc = jsonSerializer_deserialize(type, example6_input, (void **)&seq);
- CHECK_EQUAL(0, rc);
- check_example6((*seq));
- dynType_free(type, seq);
- dynType_destroy(type);
-
-
- type = NULL;
- inst = NULL;
- rc = dynType_parseWithStr(example7_descriptor, NULL, NULL, &type);
- CHECK_EQUAL(0, rc);
- rc = jsonSerializer_deserialize(type, example7_input, &inst);
- CHECK_EQUAL(0, rc);
- check_example7(inst);
- dynType_free(type, inst);
- dynType_destroy(type);
-
- type = NULL;
- inst = NULL;
- rc = dynType_parseWithStr(example8_descriptor, NULL, NULL, &type);
- CHECK_EQUAL(0, rc);
- rc = jsonSerializer_deserialize(type, example8_input, &inst);
- CHECK_EQUAL(0, rc);
- check_example8(inst);
- dynType_free(type, inst);
- dynType_destroy(type);
-}
-
-const char *write_example1_descriptor = "{BSIJsijFDNZb a b c d e f g h i j k l}";
-
-struct write_example1 {
- char a;
- int16_t b;
- int32_t c;
- int64_t d;
- uint16_t e;
- uint32_t f;
- uint64_t g;
- float h;
- double i;
- int j;
- bool k;
- unsigned char l;
-};
-
-void writeTest1(void) {
- struct write_example1 ex1;
- ex1.a=1;
- ex1.b=2;
- ex1.c=3;
- ex1.d=4;
- ex1.e=5;
- ex1.f=6;
- ex1.g=7;
- ex1.h=8.8f;
- ex1.i=9.9;
- ex1.j=10;
- ex1.k=true;
- ex1.l=12;
-
- dyn_type *type = NULL;
- char *result = NULL;
- int rc = dynType_parseWithStr(write_example1_descriptor, "ex1", NULL, &type);
- CHECK_EQUAL(0, rc);
- rc = jsonSerializer_serialize(type, &ex1, &result);
- CHECK_EQUAL(0, rc);
- STRCMP_CONTAINS("\"a\":1", result);
- STRCMP_CONTAINS("\"b\":2", result);
- STRCMP_CONTAINS("\"c\":3", result);
- STRCMP_CONTAINS("\"d\":4", result);
- STRCMP_CONTAINS("\"e\":5", result);
- STRCMP_CONTAINS("\"f\":6", result);
- STRCMP_CONTAINS("\"g\":7", result);
- STRCMP_CONTAINS("\"h\":8.8", result);
- STRCMP_CONTAINS("\"i\":9.9", result);
- STRCMP_CONTAINS("\"j\":10", result);
- STRCMP_CONTAINS("\"k\":true", result);
- STRCMP_CONTAINS("\"l\":12", result);
- //printf("example 1 result: '%s'\n", result);
- dynType_destroy(type);
- free(result);
-}
-
-const char *write_example2_descriptor = "{*{JJ a b}{SS c d} sub1 sub2}";
-
-struct write_example2_sub {
- int64_t a;
- int64_t b;
-};
-
-struct write_example2 {
- struct write_example2_sub *sub1;
- struct {
- int16_t c;
- int16_t d;
- } sub2;
-};
-
-void writeTest2(void) {
- struct write_example2_sub sub1;
- sub1.a = 1;
- sub1.b = 2;
-
- struct write_example2 ex;
- ex.sub1=&sub1;
- ex.sub2.c = 3;
- ex.sub2.d = 4;
-
- dyn_type *type = NULL;
- char *result = NULL;
- int rc = dynType_parseWithStr(write_example2_descriptor, "ex2", NULL, &type);
- CHECK_EQUAL(0, rc);
- rc = jsonSerializer_serialize(type, &ex, &result);
- CHECK_EQUAL(0, rc);
- STRCMP_CONTAINS("\"a\":1", result);
- STRCMP_CONTAINS("\"b\":2", result);
- STRCMP_CONTAINS("\"c\":3", result);
- STRCMP_CONTAINS("\"d\":4", result);
- //printf("example 2 result: '%s'\n", result);
- dynType_destroy(type);
- free(result);
-}
-
-const char *write_example3_descriptor = "Tperson={ti name age};[Lperson;";
-
-struct write_example3_person {
- const char *name;
- uint32_t age;
-};
-
-struct write_example3 {
- uint32_t cap;
- uint32_t len;
- struct write_example3_person **buf;
-};
-
-void writeTest3(void) {
- struct write_example3_person p1;
- p1.name = "John";
- p1.age = 33;
-
- struct write_example3_person p2;
- p2.name = "Peter";
- p2.age = 44;
-
- struct write_example3_person p3;
- p3.name = "Carol";
- p3.age = 55;
-
- struct write_example3_person p4;
- p4.name = "Elton";
- p4.age = 66;
-
- struct write_example3 seq;
- seq.buf = (struct write_example3_person **) calloc(4, sizeof(void *));
- seq.len = seq.cap = 4;
- seq.buf[0] = &p1;
- seq.buf[1] = &p2;
- seq.buf[2] = &p3;
- seq.buf[3] = &p4;
-
- dyn_type *type = NULL;
- char *result = NULL;
- int rc = dynType_parseWithStr(write_example3_descriptor, "ex3", NULL, &type);
- CHECK_EQUAL(0, rc);
- rc = jsonSerializer_serialize(type, &seq, &result);
- CHECK_EQUAL(0, rc);
- STRCMP_CONTAINS("\"age\":33", result);
- STRCMP_CONTAINS("\"age\":44", result);
- STRCMP_CONTAINS("\"age\":55", result);
- STRCMP_CONTAINS("\"age\":66", result);
- //printf("example 3 result: '%s'\n", result);
- free(seq.buf);
- dynType_destroy(type);
- free(result);
-}
-
-
-
-}
-
-TEST_GROUP(JsonSerializerTests) {
- void setup() {
- int lvl = 1;
- dynCommon_logSetup(stdLog, NULL, lvl);
- dynType_logSetup(stdLog, NULL,lvl);
- jsonSerializer_logSetup(stdLog, NULL, lvl);
- }
-};
-
-TEST(JsonSerializerTests, ParseTests) {
- //TODO split up
- parseTests();
-}
-
-TEST(JsonSerializerTests, WriteTest1) {
- writeTest1();
-}
-
-TEST(JsonSerializerTests, WriteTest2) {
- writeTest2();
-}
-
-TEST(JsonSerializerTests, WriteTest3) {
- writeTest3();
-}
-
-
http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/dfi/private/test/run_tests.cpp
----------------------------------------------------------------------
diff --git a/dfi/private/test/run_tests.cpp b/dfi/private/test/run_tests.cpp
deleted file mode 100644
index 786f4bf..0000000
--- a/dfi/private/test/run_tests.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-/**
- *Licensed to the Apache Software Foundation (ASF) under one
- *or more contributor license agreements. See the NOTICE file
- *distributed with this work for additional information
- *regarding copyright ownership. The ASF licenses this file
- *to you under the Apache License, Version 2.0 (the
- *"License"); you may not use this file except in compliance
- *with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- *Unless required by applicable law or agreed to in writing,
- *software distributed under the License is distributed on an
- *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- *specific language governing permissions and limitations
- *under the License.
- */
-#include <CppUTest/TestHarness.h>
-#include "CppUTest/CommandLineTestRunner.h"
-
-int main(int argc, char** argv) {
- return RUN_ALL_TESTS(argc, argv);
-}
http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/dfi/private/test/schemas/complex.avdl
----------------------------------------------------------------------
diff --git a/dfi/private/test/schemas/complex.avdl b/dfi/private/test/schemas/complex.avdl
deleted file mode 100644
index eff1fd8..0000000
--- a/dfi/private/test/schemas/complex.avdl
+++ /dev/null
@@ -1,30 +0,0 @@
-/**
- *Licensed to the Apache Software Foundation (ASF) under one
- *or more contributor license agreements. See the NOTICE file
- *distributed with this work for additional information
- *regarding copyright ownership. The ASF licenses this file
- *to you under the Apache License, Version 2.0 (the
- *"License"); you may not use this file except in compliance
- *with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- *Unless required by applicable law or agreed to in writing,
- *software distributed under the License is distributed on an
- *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- *specific language governing permissions and limitations
- *under the License.
- */
-
-protocol Complex {
-
- record StatResult {
- double sum;
- double min;
- double max;
- array<double> input;
- }
-
- StatResult stats(array<double> input);
-}
http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/dfi/private/test/schemas/complex.avpr
----------------------------------------------------------------------
diff --git a/dfi/private/test/schemas/complex.avpr b/dfi/private/test/schemas/complex.avpr
deleted file mode 100644
index ca39b56..0000000
--- a/dfi/private/test/schemas/complex.avpr
+++ /dev/null
@@ -1,55 +0,0 @@
-/**
- *Licensed to the Apache Software Foundation (ASF) under one
- *or more contributor license agreements. See the NOTICE file
- *distributed with this work for additional information
- *regarding copyright ownership. The ASF licenses this file
- *to you under the Apache License, Version 2.0 (the
- *"License"); you may not use this file except in compliance
- *with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- *Unless required by applicable law or agreed to in writing,
- *software distributed under the License is distributed on an
- *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- *specific language governing permissions and limitations
- *under the License.
- */
-
-{
- "protocol" : "Complex",
- "namespace" : null,
- "types" : [ {
- "type" : "record",
- "name" : "StatResult",
- "fields" : [ {
- "name" : "sum",
- "type" : "double"
- }, {
- "name" : "min",
- "type" : "double"
- }, {
- "name" : "max",
- "type" : "double"
- }, {
- "name" : "input",
- "type" : {
- "type" : "array",
- "items" : "double"
- }
- } ]
- } ],
- "messages" : {
- "stats" : {
- "request" : [ {
- "name" : "input",
- "type" : {
- "type" : "array",
- "items" : "double"
- }
- } ],
- "response" : "StatResult"
- }
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/dfi/private/test/schemas/invalid1.avpr
----------------------------------------------------------------------
diff --git a/dfi/private/test/schemas/invalid1.avpr b/dfi/private/test/schemas/invalid1.avpr
deleted file mode 100644
index bbf77ee..0000000
--- a/dfi/private/test/schemas/invalid1.avpr
+++ /dev/null
@@ -1,47 +0,0 @@
-/**
- *Licensed to the Apache Software Foundation (ASF) under one
- *or more contributor license agreements. See the NOTICE file
- *distributed with this work for additional information
- *regarding copyright ownership. The ASF licenses this file
- *to you under the Apache License, Version 2.0 (the
- *"License"); you may not use this file except in compliance
- *with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- *Unless required by applicable law or agreed to in writing,
- *software distributed under the License is distributed on an
- *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- *specific language governing permissions and limitations
- *under the License.
- */
-{
- "protocol" : "Complex",
- "namespace" : null,
- "types" : [ {
- "type" : "record",
- "name" : "StatResult",
- "fields" : [ {
- "name" : "sum",
- "type" : "double"
- }, {
- "name" : "min",
- "type" : "double"
- }, {
- "name" : "max",
- "type" : "double"
- }, {
- "name" : "input",
- "type" : {
- "type" : "array",
- "items" : "double"
- }
- } ]
- } ],
- "messages" : {
- "stats" : {
- "response" : "StatResult"
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/dfi/private/test/schemas/invalid2.avpr
----------------------------------------------------------------------
diff --git a/dfi/private/test/schemas/invalid2.avpr b/dfi/private/test/schemas/invalid2.avpr
deleted file mode 100644
index 9eb9209..0000000
--- a/dfi/private/test/schemas/invalid2.avpr
+++ /dev/null
@@ -1,49 +0,0 @@
-/**
- *Licensed to the Apache Software Foundation (ASF) under one
- *or more contributor license agreements. See the NOTICE file
- *distributed with this work for additional information
- *regarding copyright ownership. The ASF licenses this file
- *to you under the Apache License, Version 2.0 (the
- *"License"); you may not use this file except in compliance
- *with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- *Unless required by applicable law or agreed to in writing,
- *software distributed under the License is distributed on an
- *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- *specific language governing permissions and limitations
- *under the License.
- */
- {
- "protocol" : "Simple",
- "types" : [ ],
- "messages" : {
- "sum" : {
- "request" : [ {
- "name" : "a"
- }, {
- "name" : "b",
- "type" : "double"
- } ],
- "response" : "double"
- },
- "sub" : {
- "request" : [ {
- "name" : "a",
- "type" : "double"
- }, {
- "name" : "b",
- "type" : "double"
- } ],
- "response" : "double"
- },
- "sqrt" : {
- "request" : [ {
- "name" : "a"
- } ],
- "response" : "double"
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/dfi/private/test/schemas/simple.avdl
----------------------------------------------------------------------
diff --git a/dfi/private/test/schemas/simple.avdl b/dfi/private/test/schemas/simple.avdl
deleted file mode 100644
index a03e352..0000000
--- a/dfi/private/test/schemas/simple.avdl
+++ /dev/null
@@ -1,24 +0,0 @@
-/**
- *Licensed to the Apache Software Foundation (ASF) under one
- *or more contributor license agreements. See the NOTICE file
- *distributed with this work for additional information
- *regarding copyright ownership. The ASF licenses this file
- *to you under the Apache License, Version 2.0 (the
- *"License"); you may not use this file except in compliance
- *with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- *Unless required by applicable law or agreed to in writing,
- *software distributed under the License is distributed on an
- *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- *specific language governing permissions and limitations
- *under the License.
- */
- @namespace("org.apache.avro.test")
-protocol Simple {
- double sum(double a, double b);
- double sub(double a, double b);
- double sqrt(double a);
-}
http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/dfi/private/test/schemas/simple.avpr
----------------------------------------------------------------------
diff --git a/dfi/private/test/schemas/simple.avpr b/dfi/private/test/schemas/simple.avpr
deleted file mode 100644
index 4910346..0000000
--- a/dfi/private/test/schemas/simple.avpr
+++ /dev/null
@@ -1,51 +0,0 @@
-/**
- *Licensed to the Apache Software Foundation (ASF) under one
- *or more contributor license agreements. See the NOTICE file
- *distributed with this work for additional information
- *regarding copyright ownership. The ASF licenses this file
- *to you under the Apache License, Version 2.0 (the
- *"License"); you may not use this file except in compliance
- *with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- *Unless required by applicable law or agreed to in writing,
- *software distributed under the License is distributed on an
- *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- *specific language governing permissions and limitations
- *under the License.
- */
- {
- "protocol" : "Simple",
- "types" : [ ],
- "messages" : {
- "sum" : {
- "request" : [ {
- "name" : "a",
- "type" : "double"
- }, {
- "name" : "b",
- "type" : "double"
- } ],
- "response" : "double"
- },
- "sub" : {
- "request" : [ {
- "name" : "a",
- "type" : "double"
- }, {
- "name" : "b",
- "type" : "double"
- } ],
- "response" : "double"
- },
- "sqrt" : {
- "request" : [ {
- "name" : "a",
- "type" : "double"
- } ],
- "response" : "double"
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/dfi/private/test/schemas/simple_min.avpr
----------------------------------------------------------------------
diff --git a/dfi/private/test/schemas/simple_min.avpr b/dfi/private/test/schemas/simple_min.avpr
deleted file mode 100644
index f5c6673..0000000
--- a/dfi/private/test/schemas/simple_min.avpr
+++ /dev/null
@@ -1,19 +0,0 @@
-/**
- *Licensed to the Apache Software Foundation (ASF) under one
- *or more contributor license agreements. See the NOTICE file
- *distributed with this work for additional information
- *regarding copyright ownership. The ASF licenses this file
- *to you under the Apache License, Version 2.0 (the
- *"License"); you may not use this file except in compliance
- *with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- *Unless required by applicable law or agreed to in writing,
- *software distributed under the License is distributed on an
- *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- *specific language governing permissions and limitations
- *under the License.
- */
- {"protocol":"Simple","types":[],"messages":{"sum":{"request":[{"name":"a","type":"double"},{"name":"b","type":"double"}],"response":"double"},"sub":{"request":[{"name":"a","type":"double"},{"name":"b","type":"double"}],"response":"double"},"sqrt":{"request":[{"name":"a","type":"double"}],"response":"double"}}}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/dfi/public/include/dfi_log_util.h
----------------------------------------------------------------------
diff --git a/dfi/public/include/dfi_log_util.h b/dfi/public/include/dfi_log_util.h
deleted file mode 100644
index 2bcd8fa..0000000
--- a/dfi/public/include/dfi_log_util.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/**
- *Licensed to the Apache Software Foundation (ASF) under one
- *or more contributor license agreements. See the NOTICE file
- *distributed with this work for additional information
- *regarding copyright ownership. The ASF licenses this file
- *to you under the Apache License, Version 2.0 (the
- *"License"); you may not use this file except in compliance
- *with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- *Unless required by applicable law or agreed to in writing,
- *software distributed under the License is distributed on an
- *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- *specific language governing permissions and limitations
- *under the License.
- */
-#ifndef _DFI_LOG_UTIL_H_
-#define _DFI_LOG_UTIL_H_
-
-typedef void (*logf_ft)(void *handle, int level, const char *file, int line, const char *format, ...);
-
-#define DFI_SETUP_LOG_HEADER(cmp) \
- void cmp ## _logSetup(logf_ft logf, void *handle, int currentLogLevel);
-
-#define DFI_SETUP_LOG(cmp) \
- static logf_ft g_logf = NULL; \
- static void *g_logHandle = NULL; \
- static int g_currentLogLevel = 1; \
- \
- void cmp ## _logSetup(logf_ft logf, void *handle, int currentLogLevel) { \
- g_currentLogLevel = currentLogLevel; \
- g_logHandle = handle; \
- g_logf = logf; \
- }
-
-#define LOG_LVL_ERROR 1
-#define LOG_LVL_WARNING 2
-#define LOG_LVL_INFO 3
-#define LOG_LVL_DEBUG 4
-
-#define LOG_ERROR(msg, ...) \
- if (g_logf != NULL && g_currentLogLevel >= LOG_LVL_ERROR) { \
- g_logf(g_logHandle, LOG_LVL_ERROR, __FILE__, __LINE__, (msg), ##__VA_ARGS__); \
- }
-
-#define LOG_WARNING(msg, ...) \
- if (g_logf != NULL && g_currentLogLevel >= LOG_LVL_WARNING) { \
- g_logf(g_logHandle, LOG_LVL_WARNING, __FILE__, __LINE__, (msg), ##__VA_ARGS__); \
- }
-
-#define LOG_INFO(msg, ...) \
- if (g_logf != NULL && g_currentLogLevel >= LOG_LVL_INFO) { \
- g_logf(g_logHandle, LOG_LVL_INFO, __FILE__, __LINE__, (msg), ##__VA_ARGS__); \
- }
-
-#define LOG_DEBUG(msg, ...) \
- if (g_logf != NULL && g_currentLogLevel >= LOG_LVL_DEBUG) { \
- g_logf(g_logHandle, LOG_LVL_DEBUG, __FILE__, __LINE__, (msg), ##__VA_ARGS__); \
- }
-
-#endif
http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/dfi/public/include/dyn_common.h
----------------------------------------------------------------------
diff --git a/dfi/public/include/dyn_common.h b/dfi/public/include/dyn_common.h
deleted file mode 100644
index 6ec236f..0000000
--- a/dfi/public/include/dyn_common.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/**
- *Licensed to the Apache Software Foundation (ASF) under one
- *or more contributor license agreements. See the NOTICE file
- *distributed with this work for additional information
- *regarding copyright ownership. The ASF licenses this file
- *to you under the Apache License, Version 2.0 (the
- *"License"); you may not use this file except in compliance
- *with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- *Unless required by applicable law or agreed to in writing,
- *software distributed under the License is distributed on an
- *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- *specific language governing permissions and limitations
- *under the License.
- */
-#ifndef _DYN_COMMON_H_
-#define _DYN_COMMON_H_
-
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-#include <sys/queue.h>
-
-#include "dfi_log_util.h"
-
-//logging
-DFI_SETUP_LOG_HEADER(dynCommon);
-
-TAILQ_HEAD(namvals_head, namval_entry);
-
-struct namval_entry {
- char *name;
- char *value;
- TAILQ_ENTRY(namval_entry) entries;
-};
-
-int dynCommon_parseName(FILE *stream, char **result);
-int dynCommon_parseNameAlsoAccept(FILE *stream, const char *acceptedChars, char **result);
-int dynCommon_parseNameValue(FILE *stream, char **name, char **value);
-int dynCommon_eatChar(FILE *stream, int c);
-
-void dynCommon_clearNamValHead(struct namvals_head *head);
-
-#endif
http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/dfi/public/include/dyn_function.h
----------------------------------------------------------------------
diff --git a/dfi/public/include/dyn_function.h b/dfi/public/include/dyn_function.h
deleted file mode 100644
index 7f5cd57..0000000
--- a/dfi/public/include/dyn_function.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/**
- *Licensed to the Apache Software Foundation (ASF) under one
- *or more contributor license agreements. See the NOTICE file
- *distributed with this work for additional information
- *regarding copyright ownership. The ASF licenses this file
- *to you under the Apache License, Version 2.0 (the
- *"License"); you may not use this file except in compliance
- *with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- *Unless required by applicable law or agreed to in writing,
- *software distributed under the License is distributed on an
- *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- *specific language governing permissions and limitations
- *under the License.
- */
-#ifndef __DYN_FUNCTION_H_
-#define __DYN_FUNCTION_H_
-
-#include "dyn_type.h"
-#include "dfi_log_util.h"
-
-/**
- * Uses the following schema
- * (Name)([Type]*)Type
- *
- * Dyn fynction argument meta (am) as meta info, with the following possible values
- * am=handle #void pointer for the handle
- * am=pre #output pointer with memory preallocated
- * am=out #output pointer
- */
-
-typedef struct _dyn_function_type dyn_function_type;
-
-DFI_SETUP_LOG_HEADER(dynFunction);
-
-enum dyn_function_argument_meta {
- DYN_FUNCTION_ARGUMENT_META__STD = 0,
- DYN_FUNCTION_ARGUMENT_META__HANDLE = 1,
- DYN_FUNCTION_ARGUMENT_META__PRE_ALLOCATED_OUTPUT = 2,
- DYN_FUNCTION_ARGUMENT_META__OUTPUT = 3
-};
-
-int dynFunction_parse(FILE *descriptorStream, struct types_head *refTypes, dyn_function_type **dynFunc);
-int dynFunction_parseWithStr(const char *descriptor, struct types_head *refTypes, dyn_function_type **dynFunc);
-
-int dynFunction_nrOfArguments(dyn_function_type *dynFunc);
-dyn_type *dynFunction_argumentTypeForIndex(dyn_function_type *dynFunc, int argumentNr);
-enum dyn_function_argument_meta dynFunction_argumentMetaForIndex(dyn_function_type *dynFunc, int argumentNr);
-dyn_type * dynFunction_returnType(dyn_function_type *dynFunction);
-
-void dynFunction_destroy(dyn_function_type *dynFunc);
-int dynFunction_call(dyn_function_type *dynFunc, void(*fn)(void), void *returnValue, void **argValues);
-
-int dynFunction_createClosure(dyn_function_type *func, void (*bind)(void *, void **, void*), void *userData, void(**fn)(void));
-int dynFunction_getFnPointer(dyn_function_type *func, void (**fn)(void));
-
-#endif
http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/dfi/public/include/dyn_interface.h
----------------------------------------------------------------------
diff --git a/dfi/public/include/dyn_interface.h b/dfi/public/include/dyn_interface.h
deleted file mode 100644
index 54bf41c..0000000
--- a/dfi/public/include/dyn_interface.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/**
- *Licensed to the Apache Software Foundation (ASF) under one
- *or more contributor license agreements. See the NOTICE file
- *distributed with this work for additional information
- *regarding copyright ownership. The ASF licenses this file
- *to you under the Apache License, Version 2.0 (the
- *"License"); you may not use this file except in compliance
- *with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- *Unless required by applicable law or agreed to in writing,
- *software distributed under the License is distributed on an
- *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- *specific language governing permissions and limitations
- *under the License.
- */
-#ifndef __DYN_INTERFACE_H_
-#define __DYN_INTERFACE_H_
-
-#include "dyn_common.h"
-#include "dyn_type.h"
-#include "dyn_function.h"
-#include "dfi_log_util.h"
-
-#include "version.h"
-
-DFI_SETUP_LOG_HEADER(dynInterface);
-
-/* Description string
- *
- * Descriptor (interface) = HeaderSection AnnotationSection TypesSection MethodsSection
- *
- * HeaderSection=
- * ':header\n' [NameValue]*
- * ':annotations\n' [NameValue]*
- * ':types\n' [TypeIdValue]*
- * ':methods\n' [MethodIdValue]
- *
- */
-typedef struct _dyn_interface_type dyn_interface_type;
-
-TAILQ_HEAD(methods_head, method_entry);
-struct method_entry {
- int index;
- char *id;
- char *name;
- dyn_function_type *dynFunc;
-
- TAILQ_ENTRY(method_entry) entries;
-};
-
-int dynInterface_parse(FILE *descriptor, dyn_interface_type **out);
-void dynInterface_destroy(dyn_interface_type *intf);
-
-int dynInterface_getName(dyn_interface_type *intf, char **name);
-int dynInterface_getVersion(dyn_interface_type *intf, version_pt* version);
-int dynInterface_getVersionString(dyn_interface_type *intf, char **version);
-int dynInterface_getHeaderEntry(dyn_interface_type *intf, const char *name, char **value);
-int dynInterface_getAnnotationEntry(dyn_interface_type *intf, const char *name, char **value);
-int dynInterface_methods(dyn_interface_type *intf, struct methods_head **list);
-int dynInterface_nrOfMethods(dyn_interface_type *intf);
-
-
-#endif
http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/dfi/public/include/dyn_message.h
----------------------------------------------------------------------
diff --git a/dfi/public/include/dyn_message.h b/dfi/public/include/dyn_message.h
deleted file mode 100644
index d1c8dd7..0000000
--- a/dfi/public/include/dyn_message.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- *Licensed to the Apache Software Foundation (ASF) under one
- *or more contributor license agreements. See the NOTICE file
- *distributed with this work for additional information
- *regarding copyright ownership. The ASF licenses this file
- *to you under the Apache License, Version 2.0 (the
- *"License"); you may not use this file except in compliance
- *with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- *Unless required by applicable law or agreed to in writing,
- *software distributed under the License is distributed on an
- *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- *specific language governing permissions and limitations
- *under the License.
- */
-#ifndef __DYN_MESSAGE_H_
-#define __DYN_MESSAGE_H_
-
-#include "dyn_common.h"
-#include "dyn_type.h"
-#include "dfi_log_util.h"
-
-#include "version.h"
-
-DFI_SETUP_LOG_HEADER(dynMessage);
-
-/* Description string
- *
- * Descriptor (message) = HeaderSection AnnotationSection TypesSection MessageSection
- *
- * HeaderSection=
- * ':header\n' [NameValue]*
- * ':annotations\n' [NameValue]*
- * ':types\n' [TypeIdValue]*
- * ':message\n' [MessageIdValue]
- *
- */
-typedef struct _dyn_message_type dyn_message_type;
-
-
-int dynMessage_parse(FILE *descriptor, dyn_message_type **out);
-void dynMessage_destroy(dyn_message_type *msg);
-
-int dynMessage_getName(dyn_message_type *msg, char **name);
-int dynMessage_getVersion(dyn_message_type *msg, version_pt* version);
-int dynMessage_getVersionString(dyn_message_type *msg, char **version);
-int dynMessage_getHeaderEntry(dyn_message_type *msg, const char *name, char **value);
-int dynMessage_getAnnotationEntry(dyn_message_type *msg, const char *name, char **value);
-int dynMessage_getMessageType(dyn_message_type *msg, dyn_type **type);
-
-
-
-#endif
http://git-wip-us.apache.org/repos/asf/celix/blob/a1c30887/dfi/public/include/dyn_type.h
----------------------------------------------------------------------
diff --git a/dfi/public/include/dyn_type.h b/dfi/public/include/dyn_type.h
deleted file mode 100644
index 554966a..0000000
--- a/dfi/public/include/dyn_type.h
+++ /dev/null
@@ -1,155 +0,0 @@
-/**
- *Licensed to the Apache Software Foundation (ASF) under one
- *or more contributor license agreements. See the NOTICE file
- *distributed with this work for additional information
- *regarding copyright ownership. The ASF licenses this file
- *to you under the Apache License, Version 2.0 (the
- *"License"); you may not use this file except in compliance
- *with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- *Unless required by applicable law or agreed to in writing,
- *software distributed under the License is distributed on an
- *"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- *specific language governing permissions and limitations
- *under the License.
- */
-
-#ifndef _DYN_TYPE_H_
-#define _DYN_TYPE_H_
-
-#include <stdio.h>
-#include <sys/queue.h>
-#include <stdbool.h>
-
-#include <stdint.h>
-
-#include "dfi_log_util.h"
-
-#if defined(BSD) || defined(__APPLE__) || defined(__ANDROID__)
-#include "memstream/open_memstream.h"
-#include "memstream/fmemopen.h"
-#endif
-
-/* Description string
- *
- * Type = [TypeDef]* (MetaInfo)* (SimpleType | ComplexType | SequenceType | TypedPointer | PointerReference ) [TypeDef]*
- * Name = alpha[(alpha|numeric)*]
- * SPACE = ' '
- *
- * SimplesTypes (based on java bytecode method signatures)
- * //Java based:
- * B char
- * C (not supported)
- * D double
- * F float
- * I int32_t
- * J int64_t
- * S int16_t
- * V void
- * Z boolean
- * //Extended
- * b unsigned char
- * i uint32_t
- * j uint62_t
- * s uint64_t
- * P untyped pointer (void *)
- * t char* string
- * N native int
- *
- * ComplexTypes (Struct)
- * {[Type]+ [(Name)(SPACE)]+}
- *
- * ReferenceByValue
- * l(name);
- *
- * PointerReference -> note shortcut for *l(name);
- * L(Name);
- *
- * TypeDef
- * T(Name)=Type;
- *
- * SequenceType
- * [(Type)
- *
- * TypedPointer
- * *(Type)
- *
- * MetaInfo TODO
- * #Name=Value;
- *
- *
- *
- * examples
- * "{DDII a b c d}" -> struct { double a; double b; int c; int d; };
- * "{DD{FF c1 c2} a b c}" -> struct { double a; double b; struct c { float c1; float c2; }; };
- *
- *
- */
-
-#define DYN_TYPE_INVALID 0
-#define DYN_TYPE_SIMPLE 1
-#define DYN_TYPE_COMPLEX 2
-#define DYN_TYPE_SEQUENCE 3
-#define DYN_TYPE_TYPED_POINTER 4
-#define DYN_TYPE_TEXT 5
-#define DYN_TYPE_REF 6
-
-typedef struct _dyn_type dyn_type;
-
-TAILQ_HEAD(types_head, type_entry);
-struct type_entry {
- dyn_type *type;
- TAILQ_ENTRY(type_entry) entries;
-};
-
-TAILQ_HEAD(complex_type_entries_head, complex_type_entry);
-struct complex_type_entry {
- dyn_type *type;
- char *name;
- TAILQ_ENTRY(complex_type_entry) entries;
-};
-
-//logging
-DFI_SETUP_LOG_HEADER(dynType);
-
-//generic
-int dynType_parse(FILE *descriptorStream, const char *name, struct types_head *refTypes, dyn_type **type);
-int dynType_parseWithStr(const char *descriptor, const char *name, struct types_head *refTypes, dyn_type **type);
-void dynType_destroy(dyn_type *type);
-
-int dynType_alloc(dyn_type *type, void **bufLoc);
-void dynType_free(dyn_type *type, void *loc);
-
-void dynType_print(dyn_type *type, FILE *stream);
-size_t dynType_size(dyn_type *type);
-int dynType_type(dyn_type *type);
-int dynType_descriptorType(dyn_type *type);
-const char * dynType_getMetaInfo(dyn_type *type, const char *name);
-
-//complexType
-int dynType_complex_indexForName(dyn_type *type, const char *name);
-int dynType_complex_dynTypeAt(dyn_type *type, int index, dyn_type **subType);
-int dynType_complex_setValueAt(dyn_type *type, int index, void *inst, void *in);
-int dynType_complex_valLocAt(dyn_type *type, int index, void *inst, void **valLoc);
-int dynType_complex_entries(dyn_type *type, struct complex_type_entries_head **entries);
-
-//sequence
-int dynType_sequence_alloc(dyn_type *type, void *inst, uint32_t cap);
-int dynType_sequence_locForIndex(dyn_type *type, void *seqLoc, int index, void **valLoc);
-int dynType_sequence_increaseLengthAndReturnLastLoc(dyn_type *type, void *seqLoc, void **valLoc);
-dyn_type * dynType_sequence_itemType(dyn_type *type);
-uint32_t dynType_sequence_length(void *seqLoc);
-
-//typed pointer
-int dynType_typedPointer_getTypedType(dyn_type *type, dyn_type **typedType);
-
-//text
-int dynType_text_allocAndInit(dyn_type *type, void *textLoc, const char *value);
-
-//simple
-void dynType_simple_setValue(dyn_type *type, void *inst, void *in);
-
-#endif