]>
Commit | Line | Data |
---|---|---|
494da23a TL |
1 | // Copyright (c) 2011-present, Facebook, Inc. All rights reserved. |
2 | // This source code is licensed under both the GPLv2 (found in the | |
3 | // COPYING file in the root directory) and Apache 2.0 License | |
4 | // (found in the LICENSE.Apache file in the root directory). | |
5 | ||
6 | package org.rocksdb; | |
7 | ||
8 | import org.junit.ClassRule; | |
9 | import org.junit.Rule; | |
10 | import org.junit.Test; | |
11 | import org.junit.rules.TemporaryFolder; | |
12 | ||
13 | import java.util.Collection; | |
14 | import java.util.List; | |
15 | ||
16 | import static org.assertj.core.api.Assertions.assertThat; | |
17 | ||
18 | public class DefaultEnvTest { | |
19 | ||
20 | @ClassRule | |
f67539c2 TL |
21 | public static final RocksNativeLibraryResource ROCKS_NATIVE_LIBRARY_RESOURCE = |
22 | new RocksNativeLibraryResource(); | |
494da23a TL |
23 | |
24 | @Rule | |
25 | public TemporaryFolder dbFolder = new TemporaryFolder(); | |
26 | ||
27 | @Test | |
28 | public void backgroundThreads() { | |
29 | try (final Env defaultEnv = RocksEnv.getDefault()) { | |
30 | defaultEnv.setBackgroundThreads(5, Priority.BOTTOM); | |
31 | assertThat(defaultEnv.getBackgroundThreads(Priority.BOTTOM)).isEqualTo(5); | |
32 | ||
33 | defaultEnv.setBackgroundThreads(5); | |
34 | assertThat(defaultEnv.getBackgroundThreads(Priority.LOW)).isEqualTo(5); | |
35 | ||
36 | defaultEnv.setBackgroundThreads(5, Priority.LOW); | |
37 | assertThat(defaultEnv.getBackgroundThreads(Priority.LOW)).isEqualTo(5); | |
38 | ||
39 | defaultEnv.setBackgroundThreads(5, Priority.HIGH); | |
40 | assertThat(defaultEnv.getBackgroundThreads(Priority.HIGH)).isEqualTo(5); | |
41 | } | |
42 | } | |
43 | ||
44 | @Test | |
45 | public void threadPoolQueueLen() { | |
46 | try (final Env defaultEnv = RocksEnv.getDefault()) { | |
47 | assertThat(defaultEnv.getThreadPoolQueueLen(Priority.BOTTOM)).isEqualTo(0); | |
48 | assertThat(defaultEnv.getThreadPoolQueueLen(Priority.LOW)).isEqualTo(0); | |
49 | assertThat(defaultEnv.getThreadPoolQueueLen(Priority.HIGH)).isEqualTo(0); | |
50 | } | |
51 | } | |
52 | ||
53 | @Test | |
54 | public void incBackgroundThreadsIfNeeded() { | |
55 | try (final Env defaultEnv = RocksEnv.getDefault()) { | |
56 | defaultEnv.incBackgroundThreadsIfNeeded(20, Priority.BOTTOM); | |
57 | assertThat(defaultEnv.getBackgroundThreads(Priority.BOTTOM)).isGreaterThanOrEqualTo(20); | |
58 | ||
59 | defaultEnv.incBackgroundThreadsIfNeeded(20, Priority.LOW); | |
60 | assertThat(defaultEnv.getBackgroundThreads(Priority.LOW)).isGreaterThanOrEqualTo(20); | |
61 | ||
62 | defaultEnv.incBackgroundThreadsIfNeeded(20, Priority.HIGH); | |
63 | assertThat(defaultEnv.getBackgroundThreads(Priority.HIGH)).isGreaterThanOrEqualTo(20); | |
64 | } | |
65 | } | |
66 | ||
67 | @Test | |
68 | public void lowerThreadPoolIOPriority() { | |
69 | try (final Env defaultEnv = RocksEnv.getDefault()) { | |
70 | defaultEnv.lowerThreadPoolIOPriority(Priority.BOTTOM); | |
71 | ||
72 | defaultEnv.lowerThreadPoolIOPriority(Priority.LOW); | |
73 | ||
74 | defaultEnv.lowerThreadPoolIOPriority(Priority.HIGH); | |
75 | } | |
76 | } | |
77 | ||
78 | @Test | |
79 | public void lowerThreadPoolCPUPriority() { | |
80 | try (final Env defaultEnv = RocksEnv.getDefault()) { | |
81 | defaultEnv.lowerThreadPoolCPUPriority(Priority.BOTTOM); | |
82 | ||
83 | defaultEnv.lowerThreadPoolCPUPriority(Priority.LOW); | |
84 | ||
85 | defaultEnv.lowerThreadPoolCPUPriority(Priority.HIGH); | |
86 | } | |
87 | } | |
88 | ||
89 | @Test | |
90 | public void threadList() throws RocksDBException { | |
91 | try (final Env defaultEnv = RocksEnv.getDefault()) { | |
92 | final Collection<ThreadStatus> threadList = defaultEnv.getThreadList(); | |
93 | assertThat(threadList.size()).isGreaterThan(0); | |
94 | } | |
95 | } | |
96 | ||
97 | @Test | |
98 | public void threadList_integration() throws RocksDBException { | |
99 | try (final Env env = RocksEnv.getDefault(); | |
100 | final Options opt = new Options() | |
101 | .setCreateIfMissing(true) | |
102 | .setCreateMissingColumnFamilies(true) | |
103 | .setEnv(env)) { | |
104 | // open database | |
105 | try (final RocksDB db = RocksDB.open(opt, | |
106 | dbFolder.getRoot().getAbsolutePath())) { | |
107 | ||
108 | final List<ThreadStatus> threadList = env.getThreadList(); | |
109 | assertThat(threadList.size()).isGreaterThan(0); | |
110 | } | |
111 | } | |
112 | } | |
113 | } |