コード例 #1
0
static void
ble_att_clt_test_misc_prep_good(uint16_t handle, uint16_t offset,
                                uint8_t *attr_data, uint16_t attr_data_len)
{
    struct ble_att_prep_write_cmd req;
    struct os_mbuf *om;
    uint16_t conn_handle;
    int rc;
    int i;

    conn_handle = ble_att_clt_test_misc_init();

    req.bapc_handle = handle;
    req.bapc_offset = offset;
    rc = ble_att_clt_tx_prep_write(conn_handle, &req, attr_data,
                                   attr_data_len);
    TEST_ASSERT(rc == 0);

    ble_hs_test_util_tx_all();
    om = ble_hs_test_util_prev_tx_dequeue_pullup();
    TEST_ASSERT_FATAL(om != NULL);
    TEST_ASSERT(om->om_len == BLE_ATT_PREP_WRITE_CMD_BASE_SZ + attr_data_len);

    ble_att_prep_write_req_parse(om->om_data, om->om_len, &req);
    TEST_ASSERT(req.bapc_handle == handle);
    TEST_ASSERT(req.bapc_offset == offset);
    for (i = 0; i < attr_data_len; i++) {
        TEST_ASSERT(om->om_data[BLE_ATT_PREP_WRITE_CMD_BASE_SZ + i] ==
                    attr_data[i]);
    }
}
コード例 #2
0
static void
ble_att_clt_test_case_tx_write_req_or_cmd(int is_req)
{
    struct ble_att_write_req req;
    uint16_t conn_handle;
    uint8_t value300[500] = { 0 };
    uint8_t value5[5] = { 6, 7, 54, 34, 8 };

    conn_handle = ble_att_clt_test_misc_init();

    /*** 5-byte write. */
    req.bawq_handle = 0x1234;
    ble_att_clt_test_tx_write_req_or_cmd(conn_handle, &req, value5,
                                         sizeof value5, is_req);
    ble_hs_test_util_tx_all();
    ble_att_clt_test_misc_verify_tx_write(0x1234, value5, sizeof value5,
                                          is_req);

    /*** Overlong write; verify command truncated to ATT MTU. */
    req.bawq_handle = 0xab83;
    ble_att_clt_test_tx_write_req_or_cmd(conn_handle, &req, value300,
                                         sizeof value300, is_req);
    ble_hs_test_util_tx_all();
    ble_att_clt_test_misc_verify_tx_write(0xab83, value300,
                                          BLE_ATT_MTU_DFLT - 3, is_req);
}
コード例 #3
0
static void
ble_att_clt_test_misc_exec_good(uint8_t flags)
{
    struct ble_att_exec_write_req req;
    struct ble_l2cap_chan *chan;
    struct ble_hs_conn *conn;
    struct os_mbuf *om;
    int rc;

    ble_att_clt_test_misc_init(&conn, &chan);

    req.baeq_flags = flags;
    rc = ble_att_clt_tx_exec_write(conn->bhc_handle, &req);
    TEST_ASSERT(rc == 0);

    ble_hs_test_util_tx_all();
    TEST_ASSERT_FATAL(ble_hs_test_util_prev_tx != NULL);

    om = os_mbuf_pullup(ble_hs_test_util_prev_tx,
                        OS_MBUF_PKTLEN(ble_hs_test_util_prev_tx));
    TEST_ASSERT_FATAL(om != NULL);
    TEST_ASSERT(om->om_len == BLE_ATT_EXEC_WRITE_REQ_SZ);

    ble_att_exec_write_req_parse(om->om_data, om->om_len, &req);
    TEST_ASSERT(req.baeq_flags == flags);
}
コード例 #4
0
static void
ble_att_clt_test_misc_prep_bad(uint16_t handle, uint16_t offset,
                               uint8_t *attr_data, uint16_t attr_data_len,
                               int status)
{
    struct ble_att_prep_write_cmd req;
    uint16_t conn_handle;
    int rc;

    conn_handle = ble_att_clt_test_misc_init();

    req.bapc_handle = handle;
    req.bapc_offset = offset;
    rc = ble_att_clt_tx_prep_write(conn_handle, &req, attr_data,
                                   attr_data_len);
    TEST_ASSERT(rc == status);
}
コード例 #5
0
static void
ble_att_clt_test_misc_prep_bad(uint16_t handle, uint16_t offset,
                               uint8_t *attr_data, uint16_t attr_data_len,
                               int status)
{
    struct ble_att_prep_write_cmd req;
    struct ble_l2cap_chan *chan;
    struct ble_hs_conn *conn;
    int rc;

    ble_att_clt_test_misc_init(&conn, &chan);

    req.bapc_handle = handle;
    req.bapc_offset = offset;
    rc = ble_att_clt_tx_prep_write(conn->bhc_handle, &req, attr_data,
                                   attr_data_len);
    TEST_ASSERT(rc == status);
}
コード例 #6
0
static void
ble_att_clt_test_misc_exec_good(uint8_t flags)
{
    struct ble_att_exec_write_req req;
    struct os_mbuf *om;
    uint16_t conn_handle;
    int rc;

    conn_handle = ble_att_clt_test_misc_init();

    req.baeq_flags = flags;
    rc = ble_att_clt_tx_exec_write(conn_handle, &req);
    TEST_ASSERT(rc == 0);

    ble_hs_test_util_tx_all();
    om = ble_hs_test_util_prev_tx_dequeue_pullup();
    TEST_ASSERT_FATAL(om != NULL);
    TEST_ASSERT(om->om_len == BLE_ATT_EXEC_WRITE_REQ_SZ);

    ble_att_exec_write_req_parse(om->om_data, om->om_len, &req);
    TEST_ASSERT(req.baeq_flags == flags);
}