Skip to content

Commit 06523f9

Browse files
committed
Add more tests
1 parent 7bd3332 commit 06523f9

File tree

1 file changed

+88
-0
lines changed

1 file changed

+88
-0
lines changed

src/test/java/org/lmdbjava/EnvTest.java

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import static org.lmdbjava.DbiFlags.MDB_CREATE;
2424
import static org.lmdbjava.Env.Builder.MAX_READERS_DEFAULT;
2525
import static org.lmdbjava.EnvFlags.MDB_NOSUBDIR;
26+
import static org.lmdbjava.EnvFlags.MDB_NOTLS;
2627
import static org.lmdbjava.EnvFlags.MDB_RDONLY_ENV;
2728
import static org.lmdbjava.TestUtils.DB_1;
2829
import static org.lmdbjava.TestUtils.bb;
@@ -32,8 +33,10 @@
3233
import java.nio.ByteBuffer;
3334
import java.nio.file.Files;
3435
import java.nio.file.Path;
36+
import java.util.Collection;
3537
import java.util.List;
3638
import java.util.Random;
39+
import org.assertj.core.api.Assertions;
3740
import org.junit.jupiter.api.AfterEach;
3841
import org.junit.jupiter.api.BeforeEach;
3942
import org.junit.jupiter.api.Test;
@@ -557,4 +560,89 @@ void testDefaultOpenNoName2() {
557560
assertThat(dbiNames.get(1)).isEqualTo("def".getBytes(Env.DEFAULT_NAME_CHARSET));
558561
}
559562
}
563+
564+
@Test
565+
void addEnvFlag() {
566+
final Path file = tempDir.createTempFile();
567+
try (Env<ByteBuffer> env =
568+
Env.create()
569+
.setMapSize(1, ByteUnit.MEBIBYTES)
570+
.setMaxDbs(1)
571+
.setMaxReaders(1)
572+
.addEnvFlag(MDB_NOSUBDIR)
573+
.addEnvFlag(MDB_NOTLS) // Should not overwrite the existing one
574+
.open(file)) {
575+
env.sync(true);
576+
assertThat(Files.isRegularFile(file)).isTrue();
577+
}
578+
}
579+
580+
@Test
581+
void addEnvFlags() {
582+
final Path file = tempDir.createTempFile();
583+
try (Env<ByteBuffer> env =
584+
Env.create()
585+
.setMapSize(1, ByteUnit.MEBIBYTES)
586+
.setMaxDbs(1)
587+
.setMaxReaders(1)
588+
.addEnvFlags(EnvFlagSet.of(MDB_NOSUBDIR, MDB_NOTLS))
589+
.addEnvFlag(MDB_NOTLS) // Should not overwrite the existing one
590+
.addEnvFlag(null) // no-op
591+
.addEnvFlags(null) // no-op
592+
.open(file)) {
593+
env.sync(true);
594+
assertThat(Files.isRegularFile(file)).isTrue();
595+
}
596+
}
597+
598+
@Test
599+
void setEnvFlags_null1() {
600+
final Path file = tempDir.createTempFile();
601+
// MDB_NOSUBDIR is cleared out so it will error as file is a file not a dir
602+
Assertions.assertThatThrownBy(() -> {
603+
try (Env<ByteBuffer> env =
604+
Env.create()
605+
.setMapSize(1, ByteUnit.MEBIBYTES)
606+
.setMaxDbs(1)
607+
.setMaxReaders(1)
608+
.addEnvFlag(MDB_NOSUBDIR)
609+
.setEnvFlags((Collection<EnvFlags>) null) // Clears the flags
610+
.open(file)) {
611+
}
612+
}).isInstanceOf(LmdbNativeException.class);
613+
}
614+
615+
@Test
616+
void setEnvFlags_null2() {
617+
final Path file = tempDir.createTempFile();
618+
// MDB_NOSUBDIR is cleared out so it will error as file is a file not a dir
619+
Assertions.assertThatThrownBy(() -> {
620+
try (Env<ByteBuffer> env =
621+
Env.create()
622+
.setMapSize(1, ByteUnit.MEBIBYTES)
623+
.setMaxDbs(1)
624+
.setMaxReaders(1)
625+
.addEnvFlag(MDB_NOSUBDIR)
626+
.setEnvFlags((EnvFlags) null) // Clears the flags
627+
.open(file)) {
628+
}
629+
}).isInstanceOf(LmdbNativeException.class);
630+
}
631+
632+
@Test
633+
void setEnvFlags_null3() {
634+
final Path file = tempDir.createTempFile();
635+
// MDB_NOSUBDIR is cleared out so it will error as file is a file not a dir
636+
Assertions.assertThatThrownBy(() -> {
637+
try (Env<ByteBuffer> env =
638+
Env.create()
639+
.setMapSize(1, ByteUnit.MEBIBYTES)
640+
.setMaxDbs(1)
641+
.setMaxReaders(1)
642+
.addEnvFlag(MDB_NOSUBDIR)
643+
.setEnvFlags((EnvFlagSet) null) // Clears the flags
644+
.open(file)) {
645+
}
646+
}).isInstanceOf(LmdbNativeException.class);
647+
}
560648
}

0 commit comments

Comments
 (0)