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); }
TEST(MockParameterTest, outputParameterTraced) { mock().tracing(true); int param = 1; mock().actualCall("someFunc").withOutputParameter("someParameter", ¶m); mock().checkExpectations(); STRCMP_CONTAINS("Function name:someFunc someParameter:", mock().getTraceOutput()); mock().checkExpectations(); }
TEST(MockComparatorCopierTest, customTypeOutputParameterTraced) { MyTypeForTesting actualObject(676789); MyTypeForTestingCopier copier; mock().installCopier("MyTypeForTesting", copier); mock().tracing(true); mock().actualCall("someFunc").withOutputParameterOfType("MyTypeForTesting", "someParameter", &actualObject); mock().checkExpectations(); STRCMP_CONTAINS("Function name:someFunc MyTypeForTesting someParameter:", mock().getTraceOutput()); mock().removeAllComparatorsAndCopiers(); }
void checkUnexpectedNthCallMessage(unsigned int count, const char* expectedOrdinal) { MockExpectedCallsList callList; MockCheckedExpectedCall expCall; expCall.withName("bar"); for (unsigned int i = 0; i < (count - 1); i++) { expCall.callWasMade(1); callList.addExpectedCall(&expCall); } MockUnexpectedCallHappenedFailure failure(UtestShell::getCurrent(), "bar", callList); SimpleString expectedMessage = StringFromFormat("Mock Failure: Unexpected additional (%s) call to function: bar\n\tEXPECTED", expectedOrdinal); STRCMP_CONTAINS(expectedMessage.asCharString(), failure.getMessage().asCharString()); }
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 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 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); }
TEST(SimpleString, SmallDoubles) { SimpleString s(StringFrom(1.2e-10)); STRCMP_CONTAINS("1.2e", s.asCharString()); }