kaa_error_t kaa_platform_protocol_alloc_serialize_client_sync(kaa_platform_protocol_t *self, const kaa_extension_id *services, size_t services_count, uint8_t **buffer, size_t *buffer_size) { if (!self || !buffer || !buffer_size) { return KAA_ERR_BADPARAM; } if (!services || services_count == 0) { return KAA_ERR_BADDATA; } *buffer_size = 0; kaa_error_t error = kaa_platform_protocol_serialize_client_sync(self, services, services_count, NULL, buffer_size); // TODO(982): assert error != KAA_ERR_NONE if (error != KAA_ERR_BUFFER_IS_NOT_ENOUGH) { return error; } *buffer = KAA_MALLOC(*buffer_size); if (!*buffer) { KAA_LOG_ERROR(self->logger, KAA_ERR_NOMEM, "No memory for buffer"); return KAA_ERR_NOMEM; } return kaa_platform_protocol_serialize_client_sync(self, services, services_count, *buffer, buffer_size); }
void test_empty_log_collector_extension_count(void) { kaa_service_t service = KAA_SERVICE_LOGGING; info = (kaa_serialize_info_t *) KAA_MALLOC(sizeof(kaa_serialize_info_t)); info->services = &service; info->services_count = 1; info->allocator = &allocator; info->allocator_context = mock; void *log_storage_context = NULL; void *log_upload_strategy_context = NULL; kaa_error_t error_code = ext_unlimited_log_storage_create(&log_storage_context, kaa_context->logger); ASSERT_EQUAL(error_code, KAA_ERR_NONE); error_code = ext_log_upload_strategy_create(kaa_context , &log_upload_strategy_context , KAA_LOG_UPLOAD_VOLUME_STRATEGY); ASSERT_EQUAL(error_code, KAA_ERR_NONE); error_code = kaa_logging_init(kaa_context->log_collector, log_storage_context, log_upload_strategy_context); ASSERT_EQUAL(error_code, KAA_ERR_NONE); error_code = kaa_platform_protocol_serialize_client_sync(kaa_context->platform_protocol, info, &buffer, &buffer_size); KAA_FREE(info); ASSERT_EQUAL(error_code, KAA_ERR_NONE); char count_of_extensions = *(buffer + 7); KAA_LOG_DEBUG(kaa_context->logger, KAA_ERR_NONE, "count of extensions is %d, expected 1", count_of_extensions); ASSERT_EQUAL(count_of_extensions, 1); }
void test_serializing(void) { KAA_TRACE_IN(context->logger); kaa_serialize_info_t *info = (kaa_serialize_info_t *) KAA_MALLOC(sizeof(kaa_serialize_info_t)); kaa_service_t service[] = { KAA_SERVICE_NOTIFICATION }; info->services = service; info->services_count = 1; info->allocator = &allocator; info->allocator_context = &allocator; //mock err = kaa_platform_protocol_serialize_client_sync(context->platform_protocol, info, &buffer, &buffer_size); ASSERT_EQUAL(err, KAA_ERR_NONE); KAA_FREE(buffer); KAA_FREE(info); KAA_TRACE_OUT(context->logger); }