- Updated the BackupableDBOptions functionality to 3.8.0. - Aligned Options implementation with remaining source code. - Invented test-case.main
parent
fbc42a0933
commit
9972f969ee
@ -0,0 +1,284 @@ |
||||
// Copyright (c) 2014, Facebook, Inc. All rights reserved.
|
||||
// This source code is licensed under the BSD-style license found in the
|
||||
// LICENSE file in the root directory of this source tree. An additional grant
|
||||
// of patent rights can be found in the PATENTS file in the same directory.
|
||||
|
||||
package org.rocksdb.test; |
||||
|
||||
import org.junit.ClassRule; |
||||
import org.junit.Rule; |
||||
import org.junit.Test; |
||||
import org.junit.rules.ExpectedException; |
||||
import org.rocksdb.BackupableDBOptions; |
||||
|
||||
import java.util.Random; |
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat; |
||||
|
||||
public class BackupableDBOptionsTest { |
||||
|
||||
private final static String ARBITRARY_PATH = "/path"; |
||||
|
||||
@ClassRule |
||||
public static final RocksMemoryResource rocksMemoryResource = |
||||
new RocksMemoryResource(); |
||||
|
||||
@Rule |
||||
public ExpectedException exception = ExpectedException.none(); |
||||
|
||||
public static final Random rand = PlatformRandomHelper. |
||||
getPlatformSpecificRandomFactory(); |
||||
|
||||
@Test |
||||
public void backupDir() { |
||||
BackupableDBOptions backupableDBOptions = null; |
||||
try { |
||||
backupableDBOptions = new BackupableDBOptions(ARBITRARY_PATH); |
||||
assertThat(backupableDBOptions.backupDir()). |
||||
isEqualTo(ARBITRARY_PATH); |
||||
} finally { |
||||
if (backupableDBOptions != null) { |
||||
backupableDBOptions.dispose(); |
||||
} |
||||
} |
||||
} |
||||
|
||||
@Test |
||||
public void shareTableFiles() { |
||||
BackupableDBOptions backupableDBOptions = null; |
||||
try { |
||||
backupableDBOptions = new BackupableDBOptions(ARBITRARY_PATH); |
||||
boolean value = rand.nextBoolean(); |
||||
backupableDBOptions.setShareTableFiles(value); |
||||
assertThat(backupableDBOptions.shareTableFiles()). |
||||
isEqualTo(value); |
||||
} finally { |
||||
if (backupableDBOptions != null) { |
||||
backupableDBOptions.dispose(); |
||||
} |
||||
} |
||||
} |
||||
|
||||
@Test |
||||
public void sync() { |
||||
BackupableDBOptions backupableDBOptions = null; |
||||
try { |
||||
backupableDBOptions = new BackupableDBOptions(ARBITRARY_PATH); |
||||
boolean value = rand.nextBoolean(); |
||||
backupableDBOptions.setSync(value); |
||||
assertThat(backupableDBOptions.sync()).isEqualTo(value); |
||||
} finally { |
||||
if (backupableDBOptions != null) { |
||||
backupableDBOptions.dispose(); |
||||
} |
||||
} |
||||
} |
||||
|
||||
@Test |
||||
public void destroyOldData() { |
||||
BackupableDBOptions backupableDBOptions = null; |
||||
try { |
||||
backupableDBOptions = new BackupableDBOptions(ARBITRARY_PATH); |
||||
boolean value = rand.nextBoolean(); |
||||
backupableDBOptions.setDestroyOldData(value); |
||||
assertThat(backupableDBOptions.destroyOldData()). |
||||
isEqualTo(value); |
||||
} finally { |
||||
if (backupableDBOptions != null) { |
||||
backupableDBOptions.dispose(); |
||||
} |
||||
} |
||||
} |
||||
|
||||
@Test |
||||
public void backupLogFiles() { |
||||
BackupableDBOptions backupableDBOptions = null; |
||||
try { |
||||
backupableDBOptions = new BackupableDBOptions(ARBITRARY_PATH); |
||||
boolean value = rand.nextBoolean(); |
||||
backupableDBOptions.setBackupLogFiles(value); |
||||
assertThat(backupableDBOptions.backupLogFiles()). |
||||
isEqualTo(value); |
||||
} finally { |
||||
if (backupableDBOptions != null) { |
||||
backupableDBOptions.dispose(); |
||||
} |
||||
} |
||||
} |
||||
|
||||
@Test |
||||
public void backupRateLimit() { |
||||
BackupableDBOptions backupableDBOptions = null; |
||||
try { |
||||
backupableDBOptions = new BackupableDBOptions(ARBITRARY_PATH); |
||||
long value = Math.abs(rand.nextLong()); |
||||
backupableDBOptions.setBackupRateLimit(value); |
||||
assertThat(backupableDBOptions.backupRateLimit()). |
||||
isEqualTo(value); |
||||
// negative will be mapped to 0
|
||||
backupableDBOptions.setBackupRateLimit(-1); |
||||
assertThat(backupableDBOptions.backupRateLimit()). |
||||
isEqualTo(0); |
||||
} finally { |
||||
if (backupableDBOptions != null) { |
||||
backupableDBOptions.dispose(); |
||||
} |
||||
} |
||||
} |
||||
|
||||
@Test |
||||
public void restoreRateLimit() { |
||||
BackupableDBOptions backupableDBOptions = null; |
||||
try { |
||||
backupableDBOptions = new BackupableDBOptions(ARBITRARY_PATH); |
||||
long value = Math.abs(rand.nextLong()); |
||||
backupableDBOptions.setRestoreRateLimit(value); |
||||
assertThat(backupableDBOptions.restoreRateLimit()). |
||||
isEqualTo(value); |
||||
// negative will be mapped to 0
|
||||
backupableDBOptions.setRestoreRateLimit(-1); |
||||
assertThat(backupableDBOptions.restoreRateLimit()). |
||||
isEqualTo(0); |
||||
} finally { |
||||
if (backupableDBOptions != null) { |
||||
backupableDBOptions.dispose(); |
||||
} |
||||
} |
||||
} |
||||
|
||||
@Test |
||||
public void shareFilesWithChecksum() { |
||||
BackupableDBOptions backupableDBOptions = null; |
||||
try { |
||||
backupableDBOptions = new BackupableDBOptions(ARBITRARY_PATH); |
||||
boolean value = rand.nextBoolean(); |
||||
backupableDBOptions.setShareFilesWithChecksum(value); |
||||
assertThat(backupableDBOptions.shareFilesWithChecksum()). |
||||
isEqualTo(value); |
||||
} finally { |
||||
if (backupableDBOptions != null) { |
||||
backupableDBOptions.dispose(); |
||||
} |
||||
} |
||||
} |
||||
|
||||
@Test |
||||
public void failBackupDirIsNull() { |
||||
exception.expect(AssertionError.class); |
||||
new BackupableDBOptions(null); |
||||
} |
||||
|
||||
@Test |
||||
public void failBackupDirIfDisposed(){ |
||||
BackupableDBOptions options = setupUninitializedBackupableDBOptions( |
||||
exception); |
||||
options.backupDir(); |
||||
} |
||||
|
||||
@Test |
||||
public void failSetShareTableFilesIfDisposed(){ |
||||
BackupableDBOptions options = setupUninitializedBackupableDBOptions( |
||||
exception); |
||||
options.setShareTableFiles(true); |
||||
} |
||||
|
||||
@Test |
||||
public void failShareTableFilesIfDisposed(){ |
||||
BackupableDBOptions options = setupUninitializedBackupableDBOptions( |
||||
exception); |
||||
options.shareTableFiles(); |
||||
} |
||||
|
||||
@Test |
||||
public void failSetSyncIfDisposed(){ |
||||
BackupableDBOptions options = setupUninitializedBackupableDBOptions( |
||||
exception); |
||||
options.setSync(true); |
||||
} |
||||
|
||||
@Test |
||||
public void failSyncIfDisposed(){ |
||||
BackupableDBOptions options = setupUninitializedBackupableDBOptions( |
||||
exception); |
||||
options.sync(); |
||||
} |
||||
|
||||
@Test |
||||
public void failSetDestroyOldDataIfDisposed(){ |
||||
BackupableDBOptions options = setupUninitializedBackupableDBOptions( |
||||
exception); |
||||
options.setDestroyOldData(true); |
||||
} |
||||
|
||||
@Test |
||||
public void failDestroyOldDataIfDisposed(){ |
||||
BackupableDBOptions options = setupUninitializedBackupableDBOptions( |
||||
exception); |
||||
options.destroyOldData(); |
||||
} |
||||
|
||||
@Test |
||||
public void failSetBackupLogFilesIfDisposed(){ |
||||
BackupableDBOptions options = setupUninitializedBackupableDBOptions( |
||||
exception); |
||||
options.setBackupLogFiles(true); |
||||
} |
||||
|
||||
@Test |
||||
public void failBackupLogFilesIfDisposed(){ |
||||
BackupableDBOptions options = setupUninitializedBackupableDBOptions( |
||||
exception); |
||||
options.backupLogFiles(); |
||||
} |
||||
|
||||
@Test |
||||
public void failSetBackupRateLimitIfDisposed(){ |
||||
BackupableDBOptions options = setupUninitializedBackupableDBOptions( |
||||
exception); |
||||
options.setBackupRateLimit(1); |
||||
} |
||||
|
||||
@Test |
||||
public void failBackupRateLimitIfDisposed(){ |
||||
BackupableDBOptions options = setupUninitializedBackupableDBOptions( |
||||
exception); |
||||
options.backupRateLimit(); |
||||
} |
||||
|
||||
@Test |
||||
public void failSetRestoreRateLimitIfDisposed(){ |
||||
BackupableDBOptions options = setupUninitializedBackupableDBOptions( |
||||
exception); |
||||
options.setRestoreRateLimit(1); |
||||
} |
||||
|
||||
@Test |
||||
public void failRestoreRateLimitIfDisposed(){ |
||||
BackupableDBOptions options = setupUninitializedBackupableDBOptions( |
||||
exception); |
||||
options.restoreRateLimit(); |
||||
} |
||||
|
||||
@Test |
||||
public void failSetShareFilesWithChecksumIfDisposed(){ |
||||
BackupableDBOptions options = setupUninitializedBackupableDBOptions( |
||||
exception); |
||||
options.setShareFilesWithChecksum(true); |
||||
} |
||||
|
||||
@Test |
||||
public void failShareFilesWithChecksumIfDisposed(){ |
||||
BackupableDBOptions options = setupUninitializedBackupableDBOptions( |
||||
exception); |
||||
options.shareFilesWithChecksum(); |
||||
} |
||||
|
||||
private BackupableDBOptions setupUninitializedBackupableDBOptions( |
||||
ExpectedException exception) { |
||||
BackupableDBOptions backupableDBOptions = |
||||
new BackupableDBOptions(ARBITRARY_PATH); |
||||
backupableDBOptions.dispose(); |
||||
exception.expect(AssertionError.class); |
||||
return backupableDBOptions; |
||||
} |
||||
} |
Loading…
Reference in new issue