@@ -1107,6 +1107,8 @@ TEST_F(DBOptionsTest, ChangeCompression) {
1107
1107
" LevelCompactionPicker::PickCompaction:Return" , [&](void * arg) {
1108
1108
Compaction* c = reinterpret_cast <Compaction*>(arg);
1109
1109
compression_used = c->output_compressor ()->GetCompressionType ();
1110
+ compression_opt_used =
1111
+ *(c->output_compressor ()->GetOptions <CompressionOptions>());
1110
1112
compacted = true ;
1111
1113
});
1112
1114
SyncPoint::GetInstance ()->EnableProcessing ();
@@ -1127,7 +1129,8 @@ TEST_F(DBOptionsTest, ChangeCompression) {
1127
1129
compression_used = CompressionType::kLZ4Compression ;
1128
1130
compacted = false ;
1129
1131
ASSERT_OK (dbfull ()->SetOptions (
1130
- {{" bottommost_compression" , " kSnappyCompression" },
1132
+ {{" bottommost_compressor" , " nullptr" },
1133
+ {" bottommost_compression" , " kSnappyCompression" },
1131
1134
{" bottommost_compression_opts" , " 0:6:0:0:4:true" }}));
1132
1135
ASSERT_OK (Put (" foo" , " foofoofoo" ));
1133
1136
ASSERT_OK (Put (" bar" , " foofoofoo" ));
@@ -1138,8 +1141,30 @@ TEST_F(DBOptionsTest, ChangeCompression) {
1138
1141
ASSERT_OK (dbfull ()->TEST_WaitForCompact ());
1139
1142
ASSERT_TRUE (compacted);
1140
1143
ASSERT_EQ (CompressionType::kSnappyCompression , compression_used);
1144
+ // Snappy compressor does not define level option. Default is returned.
1145
+ ASSERT_EQ (32767 , compression_opt_used.level );
1141
1146
// Right now parallel_level is not yet allowed to be changed.
1142
1147
1148
+ if (!Zlib_Supported ()) {
1149
+ return ;
1150
+ }
1151
+ compression_used = CompressionType::kLZ4Compression ;
1152
+ compacted = false ;
1153
+ ASSERT_OK (dbfull ()->SetOptions (
1154
+ {{" bottommost_compressor" , " nullptr" },
1155
+ {" bottommost_compression" , " kZlibCompression" },
1156
+ {" bottommost_compression_opts" , " 0:6:0:0:4:true" }}));
1157
+ ASSERT_OK (Put (" foo" , " foofoofoo" ));
1158
+ ASSERT_OK (Put (" bar" , " foofoofoo" ));
1159
+ ASSERT_OK (Flush ());
1160
+ ASSERT_OK (Put (" foo" , " foofoofoo" ));
1161
+ ASSERT_OK (Put (" bar" , " foofoofoo" ));
1162
+ ASSERT_OK (Flush ());
1163
+ ASSERT_OK (dbfull ()->TEST_WaitForCompact ());
1164
+ ASSERT_TRUE (compacted);
1165
+ ASSERT_EQ (CompressionType::kZlibCompression , compression_used);
1166
+ ASSERT_EQ (6 , compression_opt_used.level );
1167
+
1143
1168
SyncPoint::GetInstance ()->DisableProcessing ();
1144
1169
}
1145
1170
0 commit comments