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).
7 import org
.junit
.ClassRule
;
10 import static org
.assertj
.core
.api
.Assertions
.assertThat
;
11 import static org
.rocksdb
.RateLimiter
.*;
13 public class RateLimiterTest
{
16 public static final RocksNativeLibraryResource ROCKS_NATIVE_LIBRARY_RESOURCE
=
17 new RocksNativeLibraryResource();
20 public void bytesPerSecond() {
21 try(final RateLimiter rateLimiter
=
22 new RateLimiter(1000, DEFAULT_REFILL_PERIOD_MICROS
,
23 DEFAULT_FAIRNESS
, DEFAULT_MODE
, DEFAULT_AUTOTUNE
)) {
24 assertThat(rateLimiter
.getBytesPerSecond()).isGreaterThan(0);
25 rateLimiter
.setBytesPerSecond(2000);
26 assertThat(rateLimiter
.getBytesPerSecond()).isGreaterThan(0);
31 public void getSingleBurstBytes() {
32 try(final RateLimiter rateLimiter
=
33 new RateLimiter(1000, DEFAULT_REFILL_PERIOD_MICROS
,
34 DEFAULT_FAIRNESS
, DEFAULT_MODE
, DEFAULT_AUTOTUNE
)) {
35 assertThat(rateLimiter
.getSingleBurstBytes()).isEqualTo(100);
40 public void getTotalBytesThrough() {
41 try(final RateLimiter rateLimiter
=
42 new RateLimiter(1000, DEFAULT_REFILL_PERIOD_MICROS
,
43 DEFAULT_FAIRNESS
, DEFAULT_MODE
, DEFAULT_AUTOTUNE
)) {
44 assertThat(rateLimiter
.getTotalBytesThrough()).isEqualTo(0);
49 public void getTotalRequests() {
50 try(final RateLimiter rateLimiter
=
51 new RateLimiter(1000, DEFAULT_REFILL_PERIOD_MICROS
,
52 DEFAULT_FAIRNESS
, DEFAULT_MODE
, DEFAULT_AUTOTUNE
)) {
53 assertThat(rateLimiter
.getTotalRequests()).isEqualTo(0);
58 public void autoTune() {
59 try(final RateLimiter rateLimiter
=
60 new RateLimiter(1000, DEFAULT_REFILL_PERIOD_MICROS
,
61 DEFAULT_FAIRNESS
, DEFAULT_MODE
, true)) {
62 assertThat(rateLimiter
.getBytesPerSecond()).isGreaterThan(0);