summaryrefslogtreecommitdiffstats
path: root/test/gtest/test_tle_dring.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/gtest/test_tle_dring.cpp')
-rw-r--r--test/gtest/test_tle_dring.cpp63
1 files changed, 63 insertions, 0 deletions
diff --git a/test/gtest/test_tle_dring.cpp b/test/gtest/test_tle_dring.cpp
new file mode 100644
index 0000000..6ab4905
--- /dev/null
+++ b/test/gtest/test_tle_dring.cpp
@@ -0,0 +1,63 @@
+/*
+ * Copyright (c) 2016 Intel Corporation.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at:
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "test_tle_dring.h"
+
+TEST_F(dring, test_dring_st)
+{
+ printf("%s started;\n", __func__);
+
+ tle_dring_reset(&dr);
+ r = init_drb_ring(OBJ_NUM);
+
+ ASSERT_NE(r, (void *) NULL) << "Out of memory";
+
+ tle_dring_dump(stdout, 1, &dr);
+
+ memset(&arg, 0, sizeof(arg));
+ arg[0].dr = &dr;
+ arg[0].r = r;
+ arg[0].iter = ITER_NUM;
+ arg[0].enq_type = SINGLE;
+ arg[0].deq_type = SINGLE;
+ rc = test_dring_enq_deq(&arg[0]);
+
+ rc = (rc != 0) ? rc : (arg[0].enq != arg[0].deq);
+ printf("%s finished with status: %s(%d);\n",
+ __func__, strerror(-rc), rc);
+
+ tle_dring_dump(stdout, rc != 0, &dr);
+ fini_drb_ring(r);
+ EXPECT_EQ(rc, 0);
+}
+
+
+TEST_F(dring ,test_dring_mp_mc)
+{
+ rc = test_dring_mt(MULTI, MULTI, MULTI, MULTI);
+ EXPECT_EQ(rc, 0);
+}
+
+TEST_F(dring, test_dring_mp_sc)
+{
+ rc = test_dring_mt(MULTI, SINGLE, MULTI, NONE);
+ EXPECT_EQ(rc, 0);
+}
+
+TEST_F(dring, test_dring_sp_mc)
+{
+ rc = test_dring_mt(SINGLE, MULTI, NONE, MULTI);
+ EXPECT_EQ(rc, 0);
+}