Beispiel #1
0
static void
test_value_i8(void) { 

    xmlrpc_value * v;
    xmlrpc_env env;
    xmlrpc_int64 i;

    xmlrpc_env_init(&env);

    TEST(streq(xmlrpc_type_name(XMLRPC_TYPE_I8), "I8"));

    v = xmlrpc_i8_new(&env, (xmlrpc_int64) 25);
    TEST_NO_FAULT(&env);
    TEST(xmlrpc_value_type(v) == XMLRPC_TYPE_I8);
    xmlrpc_read_i8(&env, v, &i);
    TEST_NO_FAULT(&env);
    TEST(i == 25);
    xmlrpc_DECREF(v);

    v = xmlrpc_i8_new(&env, (xmlrpc_int64) -25);
    TEST_NO_FAULT(&env);
    TEST(xmlrpc_value_type(v) == XMLRPC_TYPE_I8);
    xmlrpc_read_i8(&env, v, &i);
    TEST_NO_FAULT(&env);
    TEST(i == -25);
    xmlrpc_DECREF(v);

    v = xmlrpc_i8_new(&env, (xmlrpc_int64)1 << 40);
    TEST_NO_FAULT(&env);
    TEST(xmlrpc_value_type(v) == XMLRPC_TYPE_I8);
    xmlrpc_read_i8(&env, v, &i);
    TEST_NO_FAULT(&env);
    TEST(i == (xmlrpc_int64)1 << 40);
    xmlrpc_DECREF(v);

    v = xmlrpc_build_value(&env, "I", (xmlrpc_int64) 10);
    TEST_NO_FAULT(&env);
    TEST(v != NULL);
    TEST(xmlrpc_value_type(v) == XMLRPC_TYPE_I8);
    xmlrpc_decompose_value(&env, v, "I", &i);
    xmlrpc_DECREF(v);
    TEST_NO_FAULT(&env);
    TEST(i == 10);

    xmlrpc_env_clean(&env);
}
static void
test_serialize_apache_response(void) {

    char const serializedData[] =
        XML_PROLOGUE
        "<methodResponse " XMLNS_APACHE ">\r\n"
        "<params>\r\n"
        "<param><value><ex:i8>8</ex:i8></value></param>\r\n"
        "</params>\r\n"
        "</methodResponse>\r\n";

    xmlrpc_env env;
    xmlrpc_value * resultP;
    xmlrpc_mem_block * outputP;
    size_t size;

    xmlrpc_env_init(&env);

    resultP = xmlrpc_i8_new(&env, 8);
    TEST_NO_FAULT(&env);
    
    outputP = XMLRPC_MEMBLOCK_NEW(char, &env, 0);
    TEST_NO_FAULT(&env);
    xmlrpc_serialize_response2(&env, outputP, resultP,
                               xmlrpc_dialect_apache);
    TEST_NO_FAULT(&env);

    size = XMLRPC_MEMBLOCK_SIZE(char, outputP);

    TEST(size == strlen(serializedData));
    TEST(memeq(XMLRPC_MEMBLOCK_CONTENTS(char, outputP), serializedData, size));
    
    XMLRPC_MEMBLOCK_FREE(char, outputP);
    xmlrpc_DECREF(resultP);

    xmlrpc_env_clean(&env);
}
Beispiel #3
0
        cWrapper(xmlrpc_int64 const cppvalue) {
            env_wrap env;

            this->valueP = xmlrpc_i8_new(&env.env_c, cppvalue);
            throwIfError(env);
        }