#ifndef __H_PROFTEST #define __H_PROFTEST /* * XDG paths are dynamic and generated per-test based on stub_port. * Each test instance uses unique directories (./tests/functionaltests/files/{port}/xdg_*) * to allow parallel test execution without file conflicts. */ extern char xdg_config_home[256]; extern char xdg_data_home[256]; extern int stub_port; int init_prof_test(void** state); int close_prof_test(void** state); void prof_start(void); void prof_connect(void); void prof_connect_with_roster(const char* roster); void prof_input(const char* input); int prof_output_exact(const char* text); int prof_output_regex(const char* text); void prof_timeout(int timeout); void prof_timeout_reset(void); /* Short timeout for negative assertions (seconds) */ #define NEGATIVE_ASSERT_TIMEOUT 3 /* Per-test threshold overrides (0 = use default) */ extern double prof_test_slow_threshold; extern double prof_test_fast_threshold; /* Timezone used for profanity child process (default "UTC") */ extern const char *prof_test_tz; #endif