40#define GIB ((size_t)1024 * 1024 * 1024)
41#define MIB ((size_t)1024 * 1024)
99 assert_int_equal(
p.mark, 12 *
GIB);
138 assert_true(
p.mark < 13 *
GIB);
150 const size_t step =
p.plan / 32;
155 assert_true(now >= previous);
156 assert_true(now - previous <= step);
170 const size_t held = 11 *
GIB;
175int main(
int argc,
char *argv[])
177 const struct CMUnitTest tests[] = {
187 return cmocka_run_group_tests(tests, NULL, NULL);
typedef void((*dt_cache_allocate_t)(void *userdata, dt_cache_entry_t *entry))
#define DT_PIXELPIPE_CACHE_PRESSURE_KEEP
static size_t dt_pixelpipe_cache_pressure_cap(const dt_pixelpipe_cache_pressure_t *p)
static size_t dt_pixelpipe_cache_pressure_shed_target(const dt_pixelpipe_cache_pressure_t *p, const double share, const size_t current)
static void dt_pixelpipe_cache_pressure_after_shed(dt_pixelpipe_cache_pressure_t *p, const size_t before, const size_t after)
static gboolean dt_pixelpipe_cache_pressure_relax(dt_pixelpipe_cache_pressure_t *p)
static void dt_pixelpipe_cache_pressure_init(dt_pixelpipe_cache_pressure_t *p, const size_t plan)
static size_t dt_pixelpipe_cache_pressure_reported(const dt_pixelpipe_cache_pressure_t *p, const size_t current)
static size_t dt_pixelpipe_cache_pressure_floor(const dt_pixelpipe_cache_pressure_t *p)
static size_t dt_pixelpipe_cache_pressure_mark_top(const dt_pixelpipe_cache_pressure_t *p)
static size_t dt_pixelpipe_cache_pressure_budget(const dt_pixelpipe_cache_pressure_t *p)
const float uint32_t state[4]
static void _recovery_reaches_the_plan_without_a_jump(void **state)
static void _the_budget_never_falls_under_the_floor(void **state)
static void _reported_budget_never_underflows_its_readers(void **state)
static void _a_shed_lowers_the_budget_to_what_is_left(void **state)
static void _an_empty_cache_is_not_the_cause(void **state)
static dt_pixelpipe_cache_pressure_t _plan_of(const size_t plan)
static void _recovery_waits_under_the_mark(void **state)
static void _starts_at_the_plan(void **state)
static void _sheds_a_share_of_what_is_held(void **state)