| // Copyright (c) 2011-present, Facebook, Inc. All rights reserved. |
| // This source code is licensed under both the GPLv2 (found in the |
| // COPYING file in the root directory) and Apache 2.0 License |
| // (found in the LICENSE.Apache file in the root directory). |
| |
| package org.rocksdb; |
| |
| import org.junit.ClassRule; |
| import org.junit.Test; |
| |
| import java.util.Random; |
| |
| import static org.assertj.core.api.Assertions.assertThat; |
| |
| public class EnvOptionsTest { |
| @ClassRule |
| public static final RocksMemoryResource rocksMemoryResource = new RocksMemoryResource(); |
| |
| public static final Random rand = PlatformRandomHelper.getPlatformSpecificRandomFactory(); |
| |
| @Test |
| public void useMmapReads() { |
| try (final EnvOptions envOptions = new EnvOptions()) { |
| final boolean boolValue = rand.nextBoolean(); |
| envOptions.setUseMmapReads(boolValue); |
| assertThat(envOptions.useMmapReads()).isEqualTo(boolValue); |
| } |
| } |
| |
| @Test |
| public void useMmapWrites() { |
| try (final EnvOptions envOptions = new EnvOptions()) { |
| final boolean boolValue = rand.nextBoolean(); |
| envOptions.setUseMmapWrites(boolValue); |
| assertThat(envOptions.useMmapWrites()).isEqualTo(boolValue); |
| } |
| } |
| |
| @Test |
| public void useDirectReads() { |
| try (final EnvOptions envOptions = new EnvOptions()) { |
| final boolean boolValue = rand.nextBoolean(); |
| envOptions.setUseDirectReads(boolValue); |
| assertThat(envOptions.useDirectReads()).isEqualTo(boolValue); |
| } |
| } |
| |
| @Test |
| public void useDirectWrites() { |
| try (final EnvOptions envOptions = new EnvOptions()) { |
| final boolean boolValue = rand.nextBoolean(); |
| envOptions.setUseDirectWrites(boolValue); |
| assertThat(envOptions.useDirectWrites()).isEqualTo(boolValue); |
| } |
| } |
| |
| @Test |
| public void allowFallocate() { |
| try (final EnvOptions envOptions = new EnvOptions()) { |
| final boolean boolValue = rand.nextBoolean(); |
| envOptions.setAllowFallocate(boolValue); |
| assertThat(envOptions.allowFallocate()).isEqualTo(boolValue); |
| } |
| } |
| |
| @Test |
| public void setFdCloexecs() { |
| try (final EnvOptions envOptions = new EnvOptions()) { |
| final boolean boolValue = rand.nextBoolean(); |
| envOptions.setSetFdCloexec(boolValue); |
| assertThat(envOptions.setFdCloexec()).isEqualTo(boolValue); |
| } |
| } |
| |
| @Test |
| public void bytesPerSync() { |
| try (final EnvOptions envOptions = new EnvOptions()) { |
| final long longValue = rand.nextLong(); |
| envOptions.setBytesPerSync(longValue); |
| assertThat(envOptions.bytesPerSync()).isEqualTo(longValue); |
| } |
| } |
| |
| @Test |
| public void fallocateWithKeepSize() { |
| try (final EnvOptions envOptions = new EnvOptions()) { |
| final boolean boolValue = rand.nextBoolean(); |
| envOptions.setFallocateWithKeepSize(boolValue); |
| assertThat(envOptions.fallocateWithKeepSize()).isEqualTo(boolValue); |
| } |
| } |
| |
| @Test |
| public void compactionReadaheadSize() { |
| try (final EnvOptions envOptions = new EnvOptions()) { |
| final int intValue = rand.nextInt(); |
| envOptions.setCompactionReadaheadSize(intValue); |
| assertThat(envOptions.compactionReadaheadSize()).isEqualTo(intValue); |
| } |
| } |
| |
| @Test |
| public void randomAccessMaxBufferSize() { |
| try (final EnvOptions envOptions = new EnvOptions()) { |
| final int intValue = rand.nextInt(); |
| envOptions.setRandomAccessMaxBufferSize(intValue); |
| assertThat(envOptions.randomAccessMaxBufferSize()).isEqualTo(intValue); |
| } |
| } |
| |
| @Test |
| public void writableFileMaxBufferSize() { |
| try (final EnvOptions envOptions = new EnvOptions()) { |
| final int intValue = rand.nextInt(); |
| envOptions.setWritableFileMaxBufferSize(intValue); |
| assertThat(envOptions.writableFileMaxBufferSize()).isEqualTo(intValue); |
| } |
| } |
| |
| @Test |
| public void rateLimiter() { |
| try (final EnvOptions envOptions = new EnvOptions(); |
| final RateLimiter rateLimiter1 = new RateLimiter(1000, 100 * 1000, 1)) { |
| envOptions.setRateLimiter(rateLimiter1); |
| assertThat(envOptions.rateLimiter()).isEqualTo(rateLimiter1); |
| |
| try(final RateLimiter rateLimiter2 = new RateLimiter(1000)) { |
| envOptions.setRateLimiter(rateLimiter2); |
| assertThat(envOptions.rateLimiter()).isEqualTo(rateLimiter2); |
| } |
| } |
| } |
| } |