27 #include <linux/kernel.h> 63 const double eps = 1
E-5;
65 return a * (1. - eps) <= b && b <= a * (1. + eps);
104 void *bv_addr = bv_buf;
134 unsigned long arr_len)
139 for (
i = 0;
i < arr_len; ++
i) {
145 #define STATS_SAMPLE(sample_name) \ 146 static unsigned long sample_name ## _sample[] 148 #define STATS__EXPECTED(sample_name, count, min, max, sum, avg, stddev) \ 149 static struct stats_expected sample_name ## _expected = { \ 150 .se_count = (count), \ 155 .se_stddev = (stddev), \ 159 #define STATS_EXPECTED STATS__EXPECTED 161 #define STATS_EXPECTED(sample_name, count, min, max, sum, avg, stddev) \ 162 STATS__EXPECTED(sample_name, count, min, max, 0, 0, 0) 165 #define STATS_SAMPLE_ADD(stats_name, sample_name) \ 167 add_one_by_one(stats_name, sample_name ## _sample, \ 168 ARRAY_SIZE(sample_name ## _sample)); \ 171 #define STATS_CHECK(stats_name, sample_name) \ 172 sample_check(stats_name, &sample_name ## _expected) 174 #define STATS_ADD_CHECK(stats_name, sample_name) \ 176 STATS_SAMPLE_ADD(stats_name, sample_name); \ 177 STATS_CHECK(stats_name, sample_name); \ 193 STATS_EXPECTED(one_plus_five_values, 6, 1, 5, 16., 16./6, 1.632993161);
203 for (
i = 0;
i < 5; ++
i) {
286 void *bv_addr = bv_buf;
#define M0_BUFVEC_INIT_BUF(addr_ptr, count_ptr)
m0_bcount_t m0_net_test_stats_serialize(enum m0_net_test_serialize_op op, struct m0_net_test_stats *stats, struct m0_bufvec *bv, m0_bcount_t bv_offset)
void m0_net_test_timestamp_init(struct m0_net_test_timestamp *t, uint64_t seq)
void m0_net_test_timestamp_ut(void)
static void sample_check(struct m0_net_test_stats *stats, struct stats_expected *expected)
uint64_t m0_time_nanoseconds(const m0_time_t time)
void m0_net_test_stats_reset(struct m0_net_test_stats *stats)
double m0_net_test_stats_avg(const struct m0_net_test_stats *stats)
#define STATS_SAMPLE_ADD(stats_name, sample_name)
double m0_net_test_stats_sum(const struct m0_net_test_stats *stats)
m0_time_t m0_time(uint64_t secs, long ns)
unsigned long m0_net_test_stats_max(const struct m0_net_test_stats *stats)
m0_bcount_t m0_net_test_timestamp_serialize(enum m0_net_test_serialize_op op, struct m0_net_test_timestamp *t, struct m0_bufvec *bv, m0_bcount_t bv_offset)
static void stats_time_ut(void)
m0_time_t m0_net_test_stats_time_stddev(struct m0_net_test_stats *stats)
m0_time_t m0_net_test_stats_time_avg(struct m0_net_test_stats *stats)
m0_time_t m0_time_now(void)
static bool is_in_eps_neighborhood(double a, double b)
m0_time_t m0_net_test_stats_time_sum(struct m0_net_test_stats *stats)
#define STATS_CHECK(stats_name, sample_name)
uint64_t m0_time_seconds(const m0_time_t time)
m0_time_t m0_net_test_stats_time_min(struct m0_net_test_stats *stats)
static void stats_serialize_ut(struct m0_net_test_stats *stats)
#define STATS_SAMPLE(sample_name)
m0_time_t m0_net_test_stats_time_max(struct m0_net_test_stats *stats)
#define STATS_ADD_CHECK(stats_name, sample_name)
unsigned long m0_net_test_stats_min(const struct m0_net_test_stats *stats)
static void add_one_by_one(struct m0_net_test_stats *stats, unsigned long *arr, unsigned long arr_len)
void m0_net_test_stats_add_stats(struct m0_net_test_stats *stats, const struct m0_net_test_stats *stats2)
void m0_net_test_stats_ut(void)
void m0_net_test_stats_add(struct m0_net_test_stats *stats, unsigned long value)
double m0_net_test_stats_stddev(const struct m0_net_test_stats *stats)
void m0_net_test_stats_time_add(struct m0_net_test_stats *stats, m0_time_t time)