summaryrefslogtreecommitdiff
path: root/examples/redis-unstable/deps/jemalloc/test/unit/seq.c
diff options
context:
space:
mode:
Diffstat (limited to 'examples/redis-unstable/deps/jemalloc/test/unit/seq.c')
-rw-r--r--examples/redis-unstable/deps/jemalloc/test/unit/seq.c95
1 files changed, 0 insertions, 95 deletions
diff --git a/examples/redis-unstable/deps/jemalloc/test/unit/seq.c b/examples/redis-unstable/deps/jemalloc/test/unit/seq.c
deleted file mode 100644
index 06ed683..0000000
--- a/examples/redis-unstable/deps/jemalloc/test/unit/seq.c
+++ /dev/null
@@ -1,95 +0,0 @@
-#include "test/jemalloc_test.h"
-
-#include "jemalloc/internal/seq.h"
-
-typedef struct data_s data_t;
-struct data_s {
- int arr[10];
-};
-
-static void
-set_data(data_t *data, int num) {
- for (int i = 0; i < 10; i++) {
- data->arr[i] = num;
- }
-}
-
-static void
-expect_data(data_t *data) {
- int num = data->arr[0];
- for (int i = 0; i < 10; i++) {
- expect_d_eq(num, data->arr[i], "Data consistency error");
- }
-}
-
-seq_define(data_t, data)
-
-typedef struct thd_data_s thd_data_t;
-struct thd_data_s {
- seq_data_t data;
-};
-
-static void *
-seq_reader_thd(void *arg) {
- thd_data_t *thd_data = (thd_data_t *)arg;
- int iter = 0;
- data_t local_data;
- while (iter < 1000 * 1000 - 1) {
- bool success = seq_try_load_data(&local_data, &thd_data->data);
- if (success) {
- expect_data(&local_data);
- expect_d_le(iter, local_data.arr[0],
- "Seq read went back in time.");
- iter = local_data.arr[0];
- }
- }
- return NULL;
-}
-
-static void *
-seq_writer_thd(void *arg) {
- thd_data_t *thd_data = (thd_data_t *)arg;
- data_t local_data;
- memset(&local_data, 0, sizeof(local_data));
- for (int i = 0; i < 1000 * 1000; i++) {
- set_data(&local_data, i);
- seq_store_data(&thd_data->data, &local_data);
- }
- return NULL;
-}
-
-TEST_BEGIN(test_seq_threaded) {
- thd_data_t thd_data;
- memset(&thd_data, 0, sizeof(thd_data));
-
- thd_t reader;
- thd_t writer;
-
- thd_create(&reader, seq_reader_thd, &thd_data);
- thd_create(&writer, seq_writer_thd, &thd_data);
-
- thd_join(reader, NULL);
- thd_join(writer, NULL);
-}
-TEST_END
-
-TEST_BEGIN(test_seq_simple) {
- data_t data;
- seq_data_t seq;
- memset(&seq, 0, sizeof(seq));
- for (int i = 0; i < 1000 * 1000; i++) {
- set_data(&data, i);
- seq_store_data(&seq, &data);
- set_data(&data, 0);
- bool success = seq_try_load_data(&data, &seq);
- expect_b_eq(success, true, "Failed non-racing read");
- expect_data(&data);
- }
-}
-TEST_END
-
-int main(void) {
- return test_no_reentrancy(
- test_seq_simple,
- test_seq_threaded);
-}