struct test_pdu {
bool valid;
- const uint8_t *data;
+ uint8_t *data;
size_t size;
};
#define raw_pdu(args...) \
{ \
.valid = true, \
- .data = data(args), \
+ .data = g_memdup(data(args), sizeof(data(args))), \
.size = sizeof(data(args)), \
}
static void test_free(gconstpointer user_data)
{
const struct test_data *data = user_data;
+ struct test_pdu *pdu;
+ int i;
+
+ for (i = 0; (pdu = &data->pdu_list[i]) && pdu->valid; i++)
+ g_free(pdu->data);
g_free(data->test_name);
g_free(data->pdu_list);
struct test_pdu {
bool valid;
bool fragmented;
- const uint8_t *data;
+ uint8_t *data;
size_t size;
};
#define raw_pdu(args...) \
{ \
.valid = true, \
- .data = data(args), \
+ .data = g_memdup(data(args), sizeof(data(args))), \
.size = sizeof(data(args)), \
}
{ \
.valid = true, \
.fragmented = true, \
- .data = data(args), \
+ .data = g_memdup(data(args), sizeof(data(args))), \
.size = sizeof(data(args)), \
}
static struct test_data data; \
data.test_name = g_strdup(name); \
data.pdu_list = g_memdup(pdus, sizeof(pdus)); \
- tester_add(name, &data, NULL, function, NULL); \
+ tester_add(name, &data, NULL, function, NULL); \
} while (0)
struct context {
static void test_free(gconstpointer user_data)
{
const struct test_data *data = user_data;
+ struct test_pdu *pdu;
+ int i;
+
+ for (i = 0; (pdu = &data->pdu_list[i]) && pdu->valid; i++)
+ g_free(pdu->data);
g_free(data->test_name);
g_free(data->pdu_list);
bool fragmented;
bool continuing;
bool browse;
- const uint8_t *data;
+ uint8_t *data;
size_t size;
};
#define raw_pdu(args...) \
{ \
.valid = true, \
- .data = data(args), \
+ .data = g_memdup(data(args), sizeof(data(args))), \
.size = sizeof(data(args)), \
}
{ \
.valid = true, \
.browse = true, \
- .data = data(args), \
+ .data = g_memdup(data(args), sizeof(data(args))), \
.size = sizeof(data(args)), \
}
{ \
.valid = true, \
.fragmented = true, \
- .data = data(args), \
+ .data = g_memdup(data(args), sizeof(data(args))), \
.size = sizeof(data(args)), \
}
{ \
.valid = true, \
.continuing = true, \
- .data = data(args), \
+ .data = g_memdup(data(args), sizeof(data(args))), \
.size = sizeof(data(args)), \
}
static void test_free(gconstpointer user_data)
{
const struct test_data *data = user_data;
+ struct test_pdu *pdu;
+ int i;
+
+ for (i = 0; (pdu = &data->pdu_list[i]) && pdu->valid; i++)
+ g_free(pdu->data);
g_free(data->test_name);
g_free(data->pdu_list);
struct test_pdu {
bool valid;
- const uint8_t *data;
+ uint8_t *data;
size_t size;
};
#define raw_pdu(args...) \
{ \
.valid = true, \
- .data = data(args), \
+ .data = g_memdup(data(args), sizeof(data(args))), \
.size = sizeof(data(args)), \
}
static void test_free(gconstpointer user_data)
{
const struct test_data *data = user_data;
+ struct test_pdu *pdu;
+ int i;
+
+ for (i = 0; (pdu = &data->pdu_list[i]) && pdu->valid; i++)
+ g_free(pdu->data);
g_free(data->test_name);
g_free(data->pdu_list);
g_assert_cmpint(len, ==, pdu.size);
tester_monitor('<', 0x0004, 0x0000, pdu.data, len);
+
+ g_free(pdu.data);
}
static void test_search_primary(gconstpointer data)
struct test_pdu {
bool valid;
- const uint8_t *data;
+ uint8_t *data;
size_t size;
enum hfp_gw_cmd_type type;
bool fragmented;
#define raw_pdu(args...) \
{ \
.valid = true, \
- .data = data(args), \
+ .data = g_memdup(data(args), sizeof(data(args))), \
.size = sizeof(data(args)), \
}
#define type_pdu(cmd_type, args...) \
{ \
.valid = true, \
- .data = data(args), \
+ .data = g_memdup(data(args), sizeof(data(args))), \
.size = sizeof(data(args)), \
.type = cmd_type, \
}
#define frg_pdu(args...) \
{ \
.valid = true, \
- .data = data(args), \
+ .data = g_memdup(data(args), sizeof(data(args))), \
.size = sizeof(data(args)), \
.fragmented = true, \
}
static void test_free(gconstpointer user_data)
{
const struct test_data *data = user_data;
+ struct test_pdu *pdu;
+ int i;
+
+ for (i = 0; (pdu = &data->pdu_list[i]) && pdu->valid; i++)
+ g_free(pdu->data);
g_free(data->test_name);
g_free(data->pdu_list);
#define data(args...) ((const unsigned char[]) { args })
-#define raw_pdu(args...) \
-{ \
- .valid = true, \
- .data = data(args), \
- .size = sizeof(data(args)),\
+#define raw_pdu(args...) \
+{ \
+ .valid = true, \
+ .data = g_memdup(data(args), sizeof(data(args))), \
+ .size = sizeof(data(args)), \
}
#define false_pdu() \
#define raw_pdu(args...) \
{ \
.valid = true, \
- .raw_data = raw_data(args), \
+ .raw_data = g_memdup(raw_data(args), sizeof(raw_data(args))), \
.raw_size = sizeof(raw_data(args)), \
}
#define raw_pdu_cont(cont, args...) \
{ \
.valid = true, \
- .raw_data = raw_data(args), \
+ .raw_data = g_memdup(raw_data(args), sizeof(raw_data(args))), \
.raw_size = sizeof(raw_data(args)), \
.cont_len = cont, \
}
#define define_test_de_attr(name, input, exp) \
do { \
static struct test_data_de data; \
- data.input_data = input; \
+ data.input_data = g_memdup(input, sizeof(input)); \
data.input_size = sizeof(input); \
data.expected = exp; \
tester_add("/sdp/DE/ATTR/" name, &data, NULL, \