aboutsummaryrefslogtreecommitdiff
path: root/db/skiplist_test.cu
diff options
context:
space:
mode:
authorKunoiSayami <[email protected]>2021-12-13 21:53:55 +0800
committerKunoiSayami <[email protected]>2021-12-13 21:53:55 +0800
commit4e02041bb14d92d8e724bd81430f8f48658c37ca (patch)
treef87770ca9f206666f3526f95c052ca0f05a48c89 /db/skiplist_test.cu
parentb338a2083d68b9a8d1e3eb17538535aa050426df (diff)
test(skiplist): Add more test
Signed-off-by: KunoiSayami <[email protected]>
Diffstat (limited to 'db/skiplist_test.cu')
-rw-r--r--db/skiplist_test.cu34
1 files changed, 32 insertions, 2 deletions
diff --git a/db/skiplist_test.cu b/db/skiplist_test.cu
index 2b42b48..0022c84 100644
--- a/db/skiplist_test.cu
+++ b/db/skiplist_test.cu
@@ -2,11 +2,13 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
#include "db/skiplist.cuh"
//#include <atomic>
#include <set>
#include "leveldb/env.h"
+#include "cassert"
#include "port/port.h"
#include "port/thread_annotations.h"
@@ -387,10 +389,10 @@ __host__ void host_insert_test() {
init<<<gridSize, blockSize>>>(&pArena, &skipList);
cudaDeviceSynchronize();
- insert_skiplist<<<gridSize, blockSize>>>(skipList, device_rnd);
+ //insert_skiplist<<<gridSize, blockSize>>>(skipList, device_rnd);
- cudaDeviceSynchronize();
+ //cudaDeviceSynchronize();
insert_and_lookup<<<gridSize, blockSize>>>(skipList);
cudaDeviceSynchronize();
@@ -402,6 +404,34 @@ TEST(SkipTest, TestCudaInsert) {
host_insert_test();
}
+#define cudaAssert(condition) \
+ if (!(condition)){ printf("Assertion %s failed!\n", #condition); asm("trap;"); }
+
+__global__ void test_empty() {
+ Arena arena;
+ Comparator cmp;
+ SkipList<Key, Comparator> list(cmp, &arena);
+ assert(!list.Contains(10));
+ SkipList<Key, Comparator>::Iterator iter(&list);
+ assert(!iter.Valid());
+ iter.SeekToFirst();
+ assert(!iter.Valid());
+ iter.Seek(100);
+ assert(!iter.Valid());
+ iter.SeekToLast();
+ assert(!iter.Valid());
+}
+
+__global__ void test_fail() {
+ std::printf("show some message");
+ assert(0);
+}
+
+TEST(SkipTest, Empty) {
+ test_fail<<<1,1>>>();
+ cudaDeviceSynchronize();
+}
+
/*
// Needed when building in C++11 mode.
constexpr uint32_t ConcurrentTest::K;