#pragma once

/**
** \defgroup ssb_tests SSB Tests
** Tests for SSB functionality.
** @{
*/

/**
** Options to control how tests are run.
*/
typedef struct _tf_test_options_t tf_test_options_t;

/**
** Test converting SSB identities.
** @param options The test options.
*/
void tf_ssb_test_id_conversion(const tf_test_options_t* options);

/**
** Test SSB connections and replication.
** @param options The test options.
*/
void tf_ssb_test_ssb(const tf_test_options_t* options);

/**
** Test SSB following calculations.
** @param options The test options.
*/
void tf_ssb_test_following(const tf_test_options_t* options);

/**
** Test SSB rooms.
** @param options The test options.
*/
void tf_ssb_test_rooms(const tf_test_options_t* options);

/**
** Benchmark SSB replication performacnce.
** @param options The test options.
*/
void tf_ssb_test_bench(const tf_test_options_t* options);

/**
** Test communicating with go-ssb-room.
** @param options The test options.
*/
void tf_ssb_test_go_ssb_room(const tf_test_options_t* options);

/** @} */
