Пример #1
0
void TestAppend(CuTest* tc)
{
    buffer_t *buf = BufferCreate();
    uint8_t data[2] = { 1, 2 };
    BufferAppend(buf, data, sizeof(data));
    CuAssertIntEquals(tc, 2, BufferGetSize(buf));
    CuAssertIntEquals(tc, 1, BufferGetByte(buf, 0));
    CuAssertIntEquals(tc, 2, BufferGetByte(buf, 1));
    BufferDestroy(&buf);
}
Пример #2
0
void TestExtractBuffer(CuTest* tc)
{
    buffer_t *buf = BufferCreate();
    uint8_t data[4] = { 1, 2, 3, 4 };
    BufferAppend(buf, data, sizeof(data));
    uint8_t *data_out;
    size_t size_out;
    BufferExtract(buf, 2, &data_out, &size_out);
    CuAssertIntEquals(tc, 2, size_out);
    CuAssertIntEquals(tc, 0, memcmp(data, data_out, 2));
    free(data_out);
    CuAssertIntEquals(tc, 2, BufferGetSize(buf));
    CuAssertIntEquals(tc, 3, BufferGetByte(buf, 0));
    CuAssertIntEquals(tc, 4, BufferGetByte(buf, 1));
    BufferDestroy(&buf);
}
Пример #3
0
JNIEXPORT jbyte JNICALL Java_com_aio4c_buffer_Buffer_get(JNIEnv* jvm, jobject buffer) {
    Buffer* _buffer = _GetBuffer(jvm, buffer);
    jbyte _byte = 0;

    if (!BufferGetByte(_buffer, &_byte)) {
        _ThrowBufferUnderflow(jvm, buffer);
    }

    return _byte;
}
Пример #4
0
int main(int argc, char* argv[]) {
    Buffer* a = NULL;
    aio4c_byte_t* data = NULL;
    aio4c_byte_t b = 0;
    char* s = NULL;
    int i = 0;
    int d = 12345;
    size_t len = 0;
    Aio4cInit(argc, argv, NULL, NULL);

    s = aio4c_malloc(strlen(TEST_STRING) + 1);
    assert(s != NULL);
    memcpy(s, TEST_STRING, strlen(TEST_STRING) + 1);

    a = NewBuffer(BUFFER_SIZE);
    assert(a != NULL);
    assert(BufferGetCapacity(a) == BUFFER_SIZE);
    assert(BufferGetLimit(a) == BUFFER_SIZE);
    assert(BufferGetPosition(a) == 0);
    assert(BufferHasRemaining(a) == true);
    assert(BufferRemaining(a) == BUFFER_SIZE);
    assert((data = BufferGetBytes(a)) != NULL);
    for(i = 0; i < BUFFER_SIZE; i++) {
        assert(data[i] == 0);
    }
    assert(BufferPutInt(a, &d) == true);
    assert(BufferGetPosition(a) == sizeof(int));
    assert(BufferFlip(a) == a);
    assert(BufferGetPosition(a) == 0);
    assert(BufferGetLimit(a) == sizeof(int));
    d = 0;
    assert(BufferGetInt(a, &d) == true);
    assert(d == 12345);
    d = 45678;
    assert(BufferGetInt(a, &d) == false);
    assert(d == 45678);
    assert(BufferPutInt(a, &d) == false);
    assert(BufferReset(a) == a);
    assert(BufferPutString(a, s) == true);
    assert(BufferGetPosition(a) == (int)(strlen(s) + 1));
    assert(BufferFlip(a) == a);
    assert(BufferGetPosition(a) == 0);
    assert(BufferGetLimit(a) == (int)(strlen(s) + 1));
    for(i = 0; i < (int)(strlen(s) + 1); i++) {
        assert(BufferGetByte(a, &b) == true);
        assert(b == s[i]);
        assert(BufferGetPosition(a) == (i + 1));
    }
    assert(BufferGetByte(a, &b) == false);
    assert(BufferHasRemaining(a) == false);
    assert(BufferReset(a) == a);
    assert(BufferGetCapacity(a) == BUFFER_SIZE);
    assert(BufferGetLimit(a) == BUFFER_SIZE);
    assert(BufferGetPosition(a) == 0);
    assert(BufferHasRemaining(a) == true);
    assert((data = BufferGetBytes(a)) != NULL);
    assert(BufferLimit(a, strlen(s) + 1) == a);
    assert(BufferGetLimit(a) == (int)(strlen(s) + 1));
    len = strlen(s);
    s[len] = '0';
    for(i = 0; i < BUFFER_SIZE; i++) {
        assert(data[i] == 0);
    }
    assert(BufferPutString(a, s) == false);
    for(i = 0; i < BUFFER_SIZE; i++) {
        assert(data[i] == 0);
    }
    s[len] = '\0';
    assert(BufferPutString(a, s) == true);
    assert(BufferFlip(a) == a);
    for(i = 0; i < (int)(strlen(s) + 1); i++) {
        assert(BufferGetByte(a, &b) == true);
        assert(b == s[i]);
        assert(BufferGetPosition(a) == (i + 1));
    }
    assert(BufferHasRemaining(a) == false);
    Aio4cEnd();
    return 0;
}