コード例 #1
0
ファイル: check_fixmsg.cpp プロジェクト: colding/MercuryFIX
END_TEST


/*
 * Test imprint() and done().
 */
START_TEST(test_FIXMessageTX_composition)
{
        int n;
        size_t len;
        const uint8_t *data;
        const char *msg_type;
	const struct timeval *ttl;
        FIXMessageTX tx_msg(DELIM);

        fail_unless(1 == tx_msg.init(), NULL);

        //
        // set msg type and append fields
        //
        fail_unless(1 == tx_msg.append_field(35, strlen("FOOBAR"), (const uint8_t*)"FOOBAR"), NULL);
        n = 0;
        while (test_fields_0[n].tag) {
                fail_unless(1 == tx_msg.append_field(test_fields_0[n].tag, strlen(test_fields_0[n].value), (const uint8_t*)test_fields_0[n].value), NULL);
                ++n;
        }
        fail_unless(1 == tx_msg.expose(&ttl, len, &data, &msg_type), NULL);
        fail_unless(0 == memcmp(data, partial_messages_tx[0], len), NULL);
        fail_unless(0 == strcmp("FOOBAR", msg_type), NULL);

        //
        // new message type and new message
        //
        fail_unless(1 == tx_msg.append_field(35, strlen("8"), (const uint8_t*)"8"), NULL);
        n = 0;
        while (test_fields_1[n].tag) {
                fail_unless(1 == tx_msg.append_field(test_fields_1[n].tag, strlen(test_fields_1[n].value), (const uint8_t*)test_fields_1[n].value), NULL);
                ++n;
        }
        fail_unless(1 == tx_msg.expose(&ttl, len, &data, &msg_type), NULL);
        fail_unless(0 == memcmp(data, partial_messages_tx[1], len), NULL);
        fail_unless(0 == strcmp("8", msg_type), NULL);

        //
        // keep the message type but feed it a new message
        //
        n = 0;
        while (test_fields_0[n].tag) {
                fail_unless(1 == tx_msg.append_field(test_fields_0[n].tag, strlen(test_fields_0[n].value), (const uint8_t*)test_fields_0[n].value), NULL);
                ++n;
        }
        fail_unless(1 == tx_msg.expose(&ttl, len, &data, &msg_type), NULL);
        fail_unless(0 == memcmp(data, partial_messages_tx[0], len), NULL);
        fail_unless(0 == strcmp("8", msg_type), NULL);
}
コード例 #2
0
ファイル: main.cpp プロジェクト: MarceloSalazar/mbed-os
int main() {
    MBED_HOSTTEST_TIMEOUT(20);
    MBED_HOSTTEST_SELECT(dev_null);
    MBED_HOSTTEST_DESCRIPTION(CAN Loopback);
    MBED_HOSTTEST_START("MBED_A27");

#if !defined(TARGET_VK_RZ_A1H)
    can1.mode(CAN::Reset);
#endif

    if (!can1.mode(CAN::LocalTest)) {
        printf("Mode change failed\n");
    }

    char success_count = 0;
    for (char i=0; i < TEST_ITERATIONS; i++) {
        unsigned int id = 1337;
        CANMessage tx_msg(id, &i, sizeof(i));
        bool sent = false;
        if (can1.write(tx_msg)) {
            printf("Sent %u: %d\n", id, i);
            sent = true;
        }
        wait_ms(50);

        bool read = false;
        CANMessage rx_msg;
        if (can1.read(rx_msg)) {
            printf("Read %u: %d\n", rx_msg.id, rx_msg.data[0]);
            read = (rx_msg.id == id) && (rx_msg.data[0] == i);
        }

        bool success = sent && read;

        if (success) {
            success_count++;
        }
    }

    MBED_HOSTTEST_RESULT(success_count == TEST_ITERATIONS);
}