1# This file @generated by `python buckifier/buckify_rocksdb.py`
2# --> DO NOT EDIT MANUALLY <--
3# This file is a Facebook-specific integration for buck builds, so can
4# only be validated by Facebook employees.
5#
6load("@fbcode_macros//build_defs:auto_headers.bzl", "AutoHeaders")
7load("@fbcode_macros//build_defs:cpp_library.bzl", "cpp_library")
8load(":defs.bzl", "test_binary")
9
10REPO_PATH = package_name() + "/"
11
12ROCKSDB_COMPILER_FLAGS = [
13    "-fno-builtin-memcmp",
14    # Needed to compile in fbcode
15    "-Wno-expansion-to-defined",
16    # Added missing flags from output of build_detect_platform
17    "-Wnarrowing",
18    "-DROCKSDB_NO_DYNAMIC_EXTENSION",
19]
20
21ROCKSDB_EXTERNAL_DEPS = [
22    ("bzip2", None, "bz2"),
23    ("snappy", None, "snappy"),
24    ("zlib", None, "z"),
25    ("gflags", None, "gflags"),
26    ("lz4", None, "lz4"),
27    ("zstd", None),
28    ("tbb", None),
29    ("googletest", None, "gtest"),
30]
31
32ROCKSDB_OS_DEPS = [
33    (
34        "linux",
35        ["third-party//numa:numa", "third-party//liburing:uring"],
36    ),
37]
38
39ROCKSDB_OS_PREPROCESSOR_FLAGS = [
40    (
41        "linux",
42        [
43            "-DOS_LINUX",
44            "-DROCKSDB_FALLOCATE_PRESENT",
45            "-DROCKSDB_MALLOC_USABLE_SIZE",
46            "-DROCKSDB_PTHREAD_ADAPTIVE_MUTEX",
47            "-DROCKSDB_RANGESYNC_PRESENT",
48            "-DROCKSDB_SCHED_GETCPU_PRESENT",
49            "-DROCKSDB_IOURING_PRESENT",
50            "-DHAVE_SSE42",
51            "-DLIBURING",
52            "-DNUMA",
53        ],
54    ),
55    (
56        "macos",
57        ["-DOS_MACOSX"],
58    ),
59]
60
61ROCKSDB_PREPROCESSOR_FLAGS = [
62    "-DROCKSDB_PLATFORM_POSIX",
63    "-DROCKSDB_LIB_IO_POSIX",
64    "-DROCKSDB_SUPPORT_THREAD_LOCAL",
65
66    # Flags to enable libs we include
67    "-DSNAPPY",
68    "-DZLIB",
69    "-DBZIP2",
70    "-DLZ4",
71    "-DZSTD",
72    "-DZSTD_STATIC_LINKING_ONLY",
73    "-DGFLAGS=gflags",
74    "-DTBB",
75
76    # Added missing flags from output of build_detect_platform
77    "-DROCKSDB_BACKTRACE",
78
79    # Directories with files for #include
80    "-I" + REPO_PATH + "include/",
81    "-I" + REPO_PATH,
82]
83
84ROCKSDB_ARCH_PREPROCESSOR_FLAGS = {
85    "x86_64": [
86        "-DHAVE_PCLMUL",
87    ],
88}
89
90build_mode = read_config("fbcode", "build_mode")
91
92is_opt_mode = build_mode.startswith("opt")
93
94# -DNDEBUG is added by default in opt mode in fbcode. But adding it twice
95# doesn't harm and avoid forgetting to add it.
96ROCKSDB_COMPILER_FLAGS += (["-DNDEBUG"] if is_opt_mode else [])
97
98sanitizer = read_config("fbcode", "sanitizer")
99
100# Do not enable jemalloc if sanitizer presents. RocksDB will further detect
101# whether the binary is linked with jemalloc at runtime.
102ROCKSDB_OS_PREPROCESSOR_FLAGS += ([(
103    "linux",
104    ["-DROCKSDB_JEMALLOC"],
105)] if sanitizer == "" else [])
106
107ROCKSDB_OS_DEPS += ([(
108    "linux",
109    ["third-party//jemalloc:headers"],
110)] if sanitizer == "" else [])
111
112cpp_library(
113    name = "rocksdb_lib",
114    srcs = [
115        "cache/clock_cache.cc",
116        "cache/lru_cache.cc",
117        "cache/sharded_cache.cc",
118        "db/arena_wrapped_db_iter.cc",
119        "db/builder.cc",
120        "db/c.cc",
121        "db/column_family.cc",
122        "db/compacted_db_impl.cc",
123        "db/compaction/compaction.cc",
124        "db/compaction/compaction_iterator.cc",
125        "db/compaction/compaction_job.cc",
126        "db/compaction/compaction_picker.cc",
127        "db/compaction/compaction_picker_fifo.cc",
128        "db/compaction/compaction_picker_level.cc",
129        "db/compaction/compaction_picker_universal.cc",
130        "db/convenience.cc",
131        "db/db_filesnapshot.cc",
132        "db/db_impl/db_impl.cc",
133        "db/db_impl/db_impl_compaction_flush.cc",
134        "db/db_impl/db_impl_debug.cc",
135        "db/db_impl/db_impl_experimental.cc",
136        "db/db_impl/db_impl_files.cc",
137        "db/db_impl/db_impl_open.cc",
138        "db/db_impl/db_impl_readonly.cc",
139        "db/db_impl/db_impl_secondary.cc",
140        "db/db_impl/db_impl_write.cc",
141        "db/db_info_dumper.cc",
142        "db/db_iter.cc",
143        "db/dbformat.cc",
144        "db/error_handler.cc",
145        "db/event_helpers.cc",
146        "db/experimental.cc",
147        "db/external_sst_file_ingestion_job.cc",
148        "db/file_indexer.cc",
149        "db/flush_job.cc",
150        "db/flush_scheduler.cc",
151        "db/forward_iterator.cc",
152        "db/import_column_family_job.cc",
153        "db/internal_stats.cc",
154        "db/log_reader.cc",
155        "db/log_writer.cc",
156        "db/logs_with_prep_tracker.cc",
157        "db/malloc_stats.cc",
158        "db/memtable.cc",
159        "db/memtable_list.cc",
160        "db/merge_helper.cc",
161        "db/merge_operator.cc",
162        "db/range_del_aggregator.cc",
163        "db/range_tombstone_fragmenter.cc",
164        "db/repair.cc",
165        "db/snapshot_impl.cc",
166        "db/table_cache.cc",
167        "db/table_properties_collector.cc",
168        "db/transaction_log_impl.cc",
169        "db/trim_history_scheduler.cc",
170        "db/version_builder.cc",
171        "db/version_edit.cc",
172        "db/version_set.cc",
173        "db/wal_manager.cc",
174        "db/write_batch.cc",
175        "db/write_batch_base.cc",
176        "db/write_controller.cc",
177        "db/write_thread.cc",
178        "env/env.cc",
179        "env/env_chroot.cc",
180        "env/env_encryption.cc",
181        "env/env_hdfs.cc",
182        "env/env_posix.cc",
183        "env/file_system.cc",
184        "env/fs_posix.cc",
185        "env/io_posix.cc",
186        "env/mock_env.cc",
187        "file/delete_scheduler.cc",
188        "file/file_prefetch_buffer.cc",
189        "file/file_util.cc",
190        "file/filename.cc",
191        "file/random_access_file_reader.cc",
192        "file/read_write_util.cc",
193        "file/readahead_raf.cc",
194        "file/sequence_file_reader.cc",
195        "file/sst_file_manager_impl.cc",
196        "file/writable_file_writer.cc",
197        "logging/auto_roll_logger.cc",
198        "logging/event_logger.cc",
199        "logging/log_buffer.cc",
200        "memory/arena.cc",
201        "memory/concurrent_arena.cc",
202        "memory/jemalloc_nodump_allocator.cc",
203        "memtable/alloc_tracker.cc",
204        "memtable/hash_linklist_rep.cc",
205        "memtable/hash_skiplist_rep.cc",
206        "memtable/skiplistrep.cc",
207        "memtable/vectorrep.cc",
208        "memtable/write_buffer_manager.cc",
209        "monitoring/histogram.cc",
210        "monitoring/histogram_windowing.cc",
211        "monitoring/in_memory_stats_history.cc",
212        "monitoring/instrumented_mutex.cc",
213        "monitoring/iostats_context.cc",
214        "monitoring/perf_context.cc",
215        "monitoring/perf_level.cc",
216        "monitoring/persistent_stats_history.cc",
217        "monitoring/statistics.cc",
218        "monitoring/thread_status_impl.cc",
219        "monitoring/thread_status_updater.cc",
220        "monitoring/thread_status_updater_debug.cc",
221        "monitoring/thread_status_util.cc",
222        "monitoring/thread_status_util_debug.cc",
223        "options/cf_options.cc",
224        "options/db_options.cc",
225        "options/options.cc",
226        "options/options_helper.cc",
227        "options/options_parser.cc",
228        "options/options_sanity_check.cc",
229        "port/port_posix.cc",
230        "port/stack_trace.cc",
231        "table/adaptive/adaptive_table_factory.cc",
232        "table/block_based/block.cc",
233        "table/block_based/block_based_filter_block.cc",
234        "table/block_based/block_based_table_builder.cc",
235        "table/block_based/block_based_table_factory.cc",
236        "table/block_based/block_based_table_reader.cc",
237        "table/block_based/block_builder.cc",
238        "table/block_based/block_prefix_index.cc",
239        "table/block_based/data_block_footer.cc",
240        "table/block_based/data_block_hash_index.cc",
241        "table/block_based/filter_block_reader_common.cc",
242        "table/block_based/filter_policy.cc",
243        "table/block_based/flush_block_policy.cc",
244        "table/block_based/full_filter_block.cc",
245        "table/block_based/index_builder.cc",
246        "table/block_based/parsed_full_filter_block.cc",
247        "table/block_based/partitioned_filter_block.cc",
248        "table/block_based/uncompression_dict_reader.cc",
249        "table/block_fetcher.cc",
250        "table/cuckoo/cuckoo_table_builder.cc",
251        "table/cuckoo/cuckoo_table_factory.cc",
252        "table/cuckoo/cuckoo_table_reader.cc",
253        "table/format.cc",
254        "table/get_context.cc",
255        "table/iterator.cc",
256        "table/merging_iterator.cc",
257        "table/meta_blocks.cc",
258        "table/persistent_cache_helper.cc",
259        "table/plain/plain_table_bloom.cc",
260        "table/plain/plain_table_builder.cc",
261        "table/plain/plain_table_factory.cc",
262        "table/plain/plain_table_index.cc",
263        "table/plain/plain_table_key_coding.cc",
264        "table/plain/plain_table_reader.cc",
265        "table/sst_file_reader.cc",
266        "table/sst_file_writer.cc",
267        "table/table_properties.cc",
268        "table/two_level_iterator.cc",
269        "test_util/sync_point.cc",
270        "test_util/sync_point_impl.cc",
271        "test_util/transaction_test_util.cc",
272        "tools/dump/db_dump_tool.cc",
273        "tools/ldb_cmd.cc",
274        "tools/ldb_tool.cc",
275        "tools/sst_dump_tool.cc",
276        "trace_replay/block_cache_tracer.cc",
277        "trace_replay/trace_replay.cc",
278        "util/build_version.cc",
279        "util/coding.cc",
280        "util/compaction_job_stats_impl.cc",
281        "util/comparator.cc",
282        "util/compression_context_cache.cc",
283        "util/concurrent_task_limiter_impl.cc",
284        "util/crc32c.cc",
285        "util/dynamic_bloom.cc",
286        "util/file_checksum_helper.cc",
287        "util/hash.cc",
288        "util/murmurhash.cc",
289        "util/random.cc",
290        "util/rate_limiter.cc",
291        "util/slice.cc",
292        "util/status.cc",
293        "util/string_util.cc",
294        "util/thread_local.cc",
295        "util/threadpool_imp.cc",
296        "util/xxhash.cc",
297        "utilities/backupable/backupable_db.cc",
298        "utilities/blob_db/blob_compaction_filter.cc",
299        "utilities/blob_db/blob_db.cc",
300        "utilities/blob_db/blob_db_impl.cc",
301        "utilities/blob_db/blob_db_impl_filesnapshot.cc",
302        "utilities/blob_db/blob_dump_tool.cc",
303        "utilities/blob_db/blob_file.cc",
304        "utilities/blob_db/blob_log_format.cc",
305        "utilities/blob_db/blob_log_reader.cc",
306        "utilities/blob_db/blob_log_writer.cc",
307        "utilities/cassandra/cassandra_compaction_filter.cc",
308        "utilities/cassandra/format.cc",
309        "utilities/cassandra/merge_operator.cc",
310        "utilities/checkpoint/checkpoint_impl.cc",
311        "utilities/compaction_filters/remove_emptyvalue_compactionfilter.cc",
312        "utilities/convenience/info_log_finder.cc",
313        "utilities/debug.cc",
314        "utilities/env_mirror.cc",
315        "utilities/env_timed.cc",
316        "utilities/leveldb_options/leveldb_options.cc",
317        "utilities/memory/memory_util.cc",
318        "utilities/merge_operators/bytesxor.cc",
319        "utilities/merge_operators/max.cc",
320        "utilities/merge_operators/put.cc",
321        "utilities/merge_operators/sortlist.cc",
322        "utilities/merge_operators/string_append/stringappend.cc",
323        "utilities/merge_operators/string_append/stringappend2.cc",
324        "utilities/merge_operators/uint64add.cc",
325        "utilities/object_registry.cc",
326        "utilities/option_change_migration/option_change_migration.cc",
327        "utilities/options/options_util.cc",
328        "utilities/persistent_cache/block_cache_tier.cc",
329        "utilities/persistent_cache/block_cache_tier_file.cc",
330        "utilities/persistent_cache/block_cache_tier_metadata.cc",
331        "utilities/persistent_cache/persistent_cache_tier.cc",
332        "utilities/persistent_cache/volatile_tier_impl.cc",
333        "utilities/simulator_cache/cache_simulator.cc",
334        "utilities/simulator_cache/sim_cache.cc",
335        "utilities/table_properties_collectors/compact_on_deletion_collector.cc",
336        "utilities/trace/file_trace_reader_writer.cc",
337        "utilities/transactions/optimistic_transaction.cc",
338        "utilities/transactions/optimistic_transaction_db_impl.cc",
339        "utilities/transactions/pessimistic_transaction.cc",
340        "utilities/transactions/pessimistic_transaction_db.cc",
341        "utilities/transactions/snapshot_checker.cc",
342        "utilities/transactions/transaction_base.cc",
343        "utilities/transactions/transaction_db_mutex_impl.cc",
344        "utilities/transactions/transaction_lock_mgr.cc",
345        "utilities/transactions/transaction_util.cc",
346        "utilities/transactions/write_prepared_txn.cc",
347        "utilities/transactions/write_prepared_txn_db.cc",
348        "utilities/transactions/write_unprepared_txn.cc",
349        "utilities/transactions/write_unprepared_txn_db.cc",
350        "utilities/ttl/db_ttl_impl.cc",
351        "utilities/write_batch_with_index/write_batch_with_index.cc",
352        "utilities/write_batch_with_index/write_batch_with_index_internal.cc",
353    ],
354    auto_headers = AutoHeaders.RECURSIVE_GLOB,
355    arch_preprocessor_flags = ROCKSDB_ARCH_PREPROCESSOR_FLAGS,
356    compiler_flags = ROCKSDB_COMPILER_FLAGS,
357    os_deps = ROCKSDB_OS_DEPS,
358    os_preprocessor_flags = ROCKSDB_OS_PREPROCESSOR_FLAGS,
359    preprocessor_flags = ROCKSDB_PREPROCESSOR_FLAGS,
360    deps = [],
361    external_deps = ROCKSDB_EXTERNAL_DEPS,
362)
363
364cpp_library(
365    name = "rocksdb_test_lib",
366    srcs = [
367        "db/db_test_util.cc",
368        "table/mock_table.cc",
369        "test_util/fault_injection_test_env.cc",
370        "test_util/testharness.cc",
371        "test_util/testutil.cc",
372        "tools/block_cache_analyzer/block_cache_trace_analyzer.cc",
373        "tools/trace_analyzer_tool.cc",
374        "utilities/cassandra/test_utils.cc",
375    ],
376    auto_headers = AutoHeaders.RECURSIVE_GLOB,
377    arch_preprocessor_flags = ROCKSDB_ARCH_PREPROCESSOR_FLAGS,
378    compiler_flags = ROCKSDB_COMPILER_FLAGS,
379    os_deps = ROCKSDB_OS_DEPS,
380    os_preprocessor_flags = ROCKSDB_OS_PREPROCESSOR_FLAGS,
381    preprocessor_flags = ROCKSDB_PREPROCESSOR_FLAGS,
382    deps = [":rocksdb_lib"],
383    external_deps = ROCKSDB_EXTERNAL_DEPS,
384)
385
386cpp_library(
387    name = "rocksdb_tools_lib",
388    srcs = [
389        "test_util/testutil.cc",
390        "tools/block_cache_analyzer/block_cache_trace_analyzer.cc",
391        "tools/db_bench_tool.cc",
392        "tools/trace_analyzer_tool.cc",
393    ],
394    auto_headers = AutoHeaders.RECURSIVE_GLOB,
395    arch_preprocessor_flags = ROCKSDB_ARCH_PREPROCESSOR_FLAGS,
396    compiler_flags = ROCKSDB_COMPILER_FLAGS,
397    os_deps = ROCKSDB_OS_DEPS,
398    os_preprocessor_flags = ROCKSDB_OS_PREPROCESSOR_FLAGS,
399    preprocessor_flags = ROCKSDB_PREPROCESSOR_FLAGS,
400    deps = [":rocksdb_lib"],
401    external_deps = ROCKSDB_EXTERNAL_DEPS,
402)
403
404cpp_library(
405    name = "rocksdb_stress_lib",
406    srcs = [
407        "db_stress_tool/batched_ops_stress.cc",
408        "db_stress_tool/cf_consistency_stress.cc",
409        "db_stress_tool/db_stress_common.cc",
410        "db_stress_tool/db_stress_driver.cc",
411        "db_stress_tool/db_stress_gflags.cc",
412        "db_stress_tool/db_stress_shared_state.cc",
413        "db_stress_tool/db_stress_test_base.cc",
414        "db_stress_tool/db_stress_tool.cc",
415        "db_stress_tool/no_batched_ops_stress.cc",
416        "test_util/testutil.cc",
417        "tools/block_cache_analyzer/block_cache_trace_analyzer.cc",
418        "tools/trace_analyzer_tool.cc",
419    ],
420    auto_headers = AutoHeaders.RECURSIVE_GLOB,
421    arch_preprocessor_flags = ROCKSDB_ARCH_PREPROCESSOR_FLAGS,
422    compiler_flags = ROCKSDB_COMPILER_FLAGS,
423    os_deps = ROCKSDB_OS_DEPS,
424    os_preprocessor_flags = ROCKSDB_OS_PREPROCESSOR_FLAGS,
425    preprocessor_flags = ROCKSDB_PREPROCESSOR_FLAGS,
426    deps = [":rocksdb_lib"],
427    external_deps = ROCKSDB_EXTERNAL_DEPS,
428)
429
430cpp_library(
431    name = "env_basic_test_lib",
432    srcs = ["env/env_basic_test.cc"],
433    auto_headers = AutoHeaders.RECURSIVE_GLOB,
434    arch_preprocessor_flags = ROCKSDB_ARCH_PREPROCESSOR_FLAGS,
435    compiler_flags = ROCKSDB_COMPILER_FLAGS,
436    os_deps = ROCKSDB_OS_DEPS,
437    os_preprocessor_flags = ROCKSDB_OS_PREPROCESSOR_FLAGS,
438    preprocessor_flags = ROCKSDB_PREPROCESSOR_FLAGS,
439    deps = [":rocksdb_test_lib"],
440    external_deps = ROCKSDB_EXTERNAL_DEPS,
441)
442
443# [test_name, test_src, test_type, extra_deps, extra_compiler_flags]
444ROCKS_TESTS = [
445    [
446        "arena_test",
447        "memory/arena_test.cc",
448        "serial",
449        [],
450        [],
451    ],
452    [
453        "auto_roll_logger_test",
454        "logging/auto_roll_logger_test.cc",
455        "serial",
456        [],
457        [],
458    ],
459    [
460        "autovector_test",
461        "util/autovector_test.cc",
462        "serial",
463        [],
464        [],
465    ],
466    [
467        "backupable_db_test",
468        "utilities/backupable/backupable_db_test.cc",
469        "parallel",
470        [],
471        [],
472    ],
473    [
474        "blob_db_test",
475        "utilities/blob_db/blob_db_test.cc",
476        "serial",
477        [],
478        [],
479    ],
480    [
481        "block_based_filter_block_test",
482        "table/block_based/block_based_filter_block_test.cc",
483        "serial",
484        [],
485        [],
486    ],
487    [
488        "block_cache_trace_analyzer_test",
489        "tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc",
490        "serial",
491        [],
492        [],
493    ],
494    [
495        "block_cache_tracer_test",
496        "trace_replay/block_cache_tracer_test.cc",
497        "serial",
498        [],
499        [],
500    ],
501    [
502        "block_test",
503        "table/block_based/block_test.cc",
504        "serial",
505        [],
506        [],
507    ],
508    [
509        "bloom_test",
510        "util/bloom_test.cc",
511        "serial",
512        [],
513        [],
514    ],
515    [
516        "c_test",
517        "db/c_test.c",
518        "serial",
519        [],
520        [],
521    ],
522    [
523        "cache_simulator_test",
524        "utilities/simulator_cache/cache_simulator_test.cc",
525        "serial",
526        [],
527        [],
528    ],
529    [
530        "cache_test",
531        "cache/cache_test.cc",
532        "serial",
533        [],
534        [],
535    ],
536    [
537        "cassandra_format_test",
538        "utilities/cassandra/cassandra_format_test.cc",
539        "serial",
540        [],
541        [],
542    ],
543    [
544        "cassandra_functional_test",
545        "utilities/cassandra/cassandra_functional_test.cc",
546        "serial",
547        [],
548        [],
549    ],
550    [
551        "cassandra_row_merge_test",
552        "utilities/cassandra/cassandra_row_merge_test.cc",
553        "serial",
554        [],
555        [],
556    ],
557    [
558        "cassandra_serialize_test",
559        "utilities/cassandra/cassandra_serialize_test.cc",
560        "serial",
561        [],
562        [],
563    ],
564    [
565        "checkpoint_test",
566        "utilities/checkpoint/checkpoint_test.cc",
567        "serial",
568        [],
569        [],
570    ],
571    [
572        "cleanable_test",
573        "table/cleanable_test.cc",
574        "serial",
575        [],
576        [],
577    ],
578    [
579        "coding_test",
580        "util/coding_test.cc",
581        "serial",
582        [],
583        [],
584    ],
585    [
586        "column_family_test",
587        "db/column_family_test.cc",
588        "serial",
589        [],
590        [],
591    ],
592    [
593        "compact_files_test",
594        "db/compact_files_test.cc",
595        "serial",
596        [],
597        [],
598    ],
599    [
600        "compact_on_deletion_collector_test",
601        "utilities/table_properties_collectors/compact_on_deletion_collector_test.cc",
602        "serial",
603        [],
604        [],
605    ],
606    [
607        "compaction_iterator_test",
608        "db/compaction/compaction_iterator_test.cc",
609        "serial",
610        [],
611        [],
612    ],
613    [
614        "compaction_job_stats_test",
615        "db/compaction/compaction_job_stats_test.cc",
616        "serial",
617        [],
618        [],
619    ],
620    [
621        "compaction_job_test",
622        "db/compaction/compaction_job_test.cc",
623        "serial",
624        [],
625        [],
626    ],
627    [
628        "compaction_picker_test",
629        "db/compaction/compaction_picker_test.cc",
630        "serial",
631        [],
632        [],
633    ],
634    [
635        "comparator_db_test",
636        "db/comparator_db_test.cc",
637        "serial",
638        [],
639        [],
640    ],
641    [
642        "corruption_test",
643        "db/corruption_test.cc",
644        "serial",
645        [],
646        [],
647    ],
648    [
649        "crc32c_test",
650        "util/crc32c_test.cc",
651        "serial",
652        [],
653        [],
654    ],
655    [
656        "cuckoo_table_builder_test",
657        "table/cuckoo/cuckoo_table_builder_test.cc",
658        "serial",
659        [],
660        [],
661    ],
662    [
663        "cuckoo_table_db_test",
664        "db/cuckoo_table_db_test.cc",
665        "serial",
666        [],
667        [],
668    ],
669    [
670        "cuckoo_table_reader_test",
671        "table/cuckoo/cuckoo_table_reader_test.cc",
672        "serial",
673        [],
674        [],
675    ],
676    [
677        "data_block_hash_index_test",
678        "table/block_based/data_block_hash_index_test.cc",
679        "serial",
680        [],
681        [],
682    ],
683    [
684        "db_basic_test",
685        "db/db_basic_test.cc",
686        "serial",
687        [],
688        [],
689    ],
690    [
691        "db_blob_index_test",
692        "db/db_blob_index_test.cc",
693        "serial",
694        [],
695        [],
696    ],
697    [
698        "db_block_cache_test",
699        "db/db_block_cache_test.cc",
700        "serial",
701        [],
702        [],
703    ],
704    [
705        "db_bloom_filter_test",
706        "db/db_bloom_filter_test.cc",
707        "parallel",
708        [],
709        [],
710    ],
711    [
712        "db_compaction_filter_test",
713        "db/db_compaction_filter_test.cc",
714        "parallel",
715        [],
716        [],
717    ],
718    [
719        "db_compaction_test",
720        "db/db_compaction_test.cc",
721        "parallel",
722        [],
723        [],
724    ],
725    [
726        "db_dynamic_level_test",
727        "db/db_dynamic_level_test.cc",
728        "serial",
729        [],
730        [],
731    ],
732    [
733        "db_encryption_test",
734        "db/db_encryption_test.cc",
735        "serial",
736        [],
737        [],
738    ],
739    [
740        "db_flush_test",
741        "db/db_flush_test.cc",
742        "serial",
743        [],
744        [],
745    ],
746    [
747        "db_inplace_update_test",
748        "db/db_inplace_update_test.cc",
749        "serial",
750        [],
751        [],
752    ],
753    [
754        "db_io_failure_test",
755        "db/db_io_failure_test.cc",
756        "serial",
757        [],
758        [],
759    ],
760    [
761        "db_iter_stress_test",
762        "db/db_iter_stress_test.cc",
763        "serial",
764        [],
765        [],
766    ],
767    [
768        "db_iter_test",
769        "db/db_iter_test.cc",
770        "serial",
771        [],
772        [],
773    ],
774    [
775        "db_iterator_test",
776        "db/db_iterator_test.cc",
777        "serial",
778        [],
779        [],
780    ],
781    [
782        "db_log_iter_test",
783        "db/db_log_iter_test.cc",
784        "serial",
785        [],
786        [],
787    ],
788    [
789        "db_memtable_test",
790        "db/db_memtable_test.cc",
791        "serial",
792        [],
793        [],
794    ],
795    [
796        "db_merge_operand_test",
797        "db/db_merge_operand_test.cc",
798        "serial",
799        [],
800        [],
801    ],
802    [
803        "db_merge_operator_test",
804        "db/db_merge_operator_test.cc",
805        "parallel",
806        [],
807        [],
808    ],
809    [
810        "db_options_test",
811        "db/db_options_test.cc",
812        "serial",
813        [],
814        [],
815    ],
816    [
817        "db_properties_test",
818        "db/db_properties_test.cc",
819        "serial",
820        [],
821        [],
822    ],
823    [
824        "db_range_del_test",
825        "db/db_range_del_test.cc",
826        "serial",
827        [],
828        [],
829    ],
830    [
831        "db_secondary_test",
832        "db/db_impl/db_secondary_test.cc",
833        "serial",
834        [],
835        [],
836    ],
837    [
838        "db_sst_test",
839        "db/db_sst_test.cc",
840        "parallel",
841        [],
842        [],
843    ],
844    [
845        "db_statistics_test",
846        "db/db_statistics_test.cc",
847        "serial",
848        [],
849        [],
850    ],
851    [
852        "db_table_properties_test",
853        "db/db_table_properties_test.cc",
854        "serial",
855        [],
856        [],
857    ],
858    [
859        "db_tailing_iter_test",
860        "db/db_tailing_iter_test.cc",
861        "serial",
862        [],
863        [],
864    ],
865    [
866        "db_test",
867        "db/db_test.cc",
868        "parallel",
869        [],
870        [],
871    ],
872    [
873        "db_test2",
874        "db/db_test2.cc",
875        "serial",
876        [],
877        [],
878    ],
879    [
880        "db_universal_compaction_test",
881        "db/db_universal_compaction_test.cc",
882        "parallel",
883        [],
884        [],
885    ],
886    [
887        "db_wal_test",
888        "db/db_wal_test.cc",
889        "parallel",
890        [],
891        [],
892    ],
893    [
894        "db_write_test",
895        "db/db_write_test.cc",
896        "serial",
897        [],
898        [],
899    ],
900    [
901        "dbformat_test",
902        "db/dbformat_test.cc",
903        "serial",
904        [],
905        [],
906    ],
907    [
908        "defer_test",
909        "util/defer_test.cc",
910        "serial",
911        [],
912        [],
913    ],
914    [
915        "delete_scheduler_test",
916        "file/delete_scheduler_test.cc",
917        "serial",
918        [],
919        [],
920    ],
921    [
922        "deletefile_test",
923        "db/deletefile_test.cc",
924        "serial",
925        [],
926        [],
927    ],
928    [
929        "dynamic_bloom_test",
930        "util/dynamic_bloom_test.cc",
931        "serial",
932        [],
933        [],
934    ],
935    [
936        "env_basic_test",
937        "env/env_basic_test.cc",
938        "serial",
939        [],
940        [],
941    ],
942    [
943        "env_logger_test",
944        "logging/env_logger_test.cc",
945        "serial",
946        [],
947        [],
948    ],
949    [
950        "env_test",
951        "env/env_test.cc",
952        "serial",
953        [],
954        [],
955    ],
956    [
957        "env_timed_test",
958        "utilities/env_timed_test.cc",
959        "serial",
960        [],
961        [],
962    ],
963    [
964        "error_handler_test",
965        "db/error_handler_test.cc",
966        "serial",
967        [],
968        [],
969    ],
970    [
971        "event_logger_test",
972        "logging/event_logger_test.cc",
973        "serial",
974        [],
975        [],
976    ],
977    [
978        "external_sst_file_basic_test",
979        "db/external_sst_file_basic_test.cc",
980        "serial",
981        [],
982        [],
983    ],
984    [
985        "external_sst_file_test",
986        "db/external_sst_file_test.cc",
987        "parallel",
988        [],
989        [],
990    ],
991    [
992        "fault_injection_test",
993        "db/fault_injection_test.cc",
994        "parallel",
995        [],
996        [],
997    ],
998    [
999        "file_indexer_test",
1000        "db/file_indexer_test.cc",
1001        "serial",
1002        [],
1003        [],
1004    ],
1005    [
1006        "file_reader_writer_test",
1007        "util/file_reader_writer_test.cc",
1008        "parallel",
1009        [],
1010        [],
1011    ],
1012    [
1013        "filelock_test",
1014        "util/filelock_test.cc",
1015        "serial",
1016        [],
1017        [],
1018    ],
1019    [
1020        "filename_test",
1021        "db/filename_test.cc",
1022        "serial",
1023        [],
1024        [],
1025    ],
1026    [
1027        "flush_job_test",
1028        "db/flush_job_test.cc",
1029        "serial",
1030        [],
1031        [],
1032    ],
1033    [
1034        "full_filter_block_test",
1035        "table/block_based/full_filter_block_test.cc",
1036        "serial",
1037        [],
1038        [],
1039    ],
1040    [
1041        "hash_table_test",
1042        "utilities/persistent_cache/hash_table_test.cc",
1043        "serial",
1044        [],
1045        [],
1046    ],
1047    [
1048        "hash_test",
1049        "util/hash_test.cc",
1050        "serial",
1051        [],
1052        [],
1053    ],
1054    [
1055        "heap_test",
1056        "util/heap_test.cc",
1057        "serial",
1058        [],
1059        [],
1060    ],
1061    [
1062        "histogram_test",
1063        "monitoring/histogram_test.cc",
1064        "serial",
1065        [],
1066        [],
1067    ],
1068    [
1069        "import_column_family_test",
1070        "db/import_column_family_test.cc",
1071        "parallel",
1072        [],
1073        [],
1074    ],
1075    [
1076        "inlineskiplist_test",
1077        "memtable/inlineskiplist_test.cc",
1078        "parallel",
1079        [],
1080        [],
1081    ],
1082    [
1083        "iostats_context_test",
1084        "monitoring/iostats_context_test.cc",
1085        "serial",
1086        [],
1087        [],
1088    ],
1089    [
1090        "ldb_cmd_test",
1091        "tools/ldb_cmd_test.cc",
1092        "serial",
1093        [],
1094        [],
1095    ],
1096    [
1097        "listener_test",
1098        "db/listener_test.cc",
1099        "serial",
1100        [],
1101        [],
1102    ],
1103    [
1104        "log_test",
1105        "db/log_test.cc",
1106        "serial",
1107        [],
1108        [],
1109    ],
1110    [
1111        "lru_cache_test",
1112        "cache/lru_cache_test.cc",
1113        "serial",
1114        [],
1115        [],
1116    ],
1117    [
1118        "manual_compaction_test",
1119        "db/manual_compaction_test.cc",
1120        "parallel",
1121        [],
1122        [],
1123    ],
1124    [
1125        "memory_test",
1126        "utilities/memory/memory_test.cc",
1127        "serial",
1128        [],
1129        [],
1130    ],
1131    [
1132        "memtable_list_test",
1133        "db/memtable_list_test.cc",
1134        "serial",
1135        [],
1136        [],
1137    ],
1138    [
1139        "merge_helper_test",
1140        "db/merge_helper_test.cc",
1141        "serial",
1142        [],
1143        [],
1144    ],
1145    [
1146        "merge_test",
1147        "db/merge_test.cc",
1148        "serial",
1149        [],
1150        [],
1151    ],
1152    [
1153        "merger_test",
1154        "table/merger_test.cc",
1155        "serial",
1156        [],
1157        [],
1158    ],
1159    [
1160        "mock_env_test",
1161        "env/mock_env_test.cc",
1162        "serial",
1163        [],
1164        [],
1165    ],
1166    [
1167        "object_registry_test",
1168        "utilities/object_registry_test.cc",
1169        "serial",
1170        [],
1171        [],
1172    ],
1173    [
1174        "obsolete_files_test",
1175        "db/obsolete_files_test.cc",
1176        "serial",
1177        [],
1178        [],
1179    ],
1180    [
1181        "optimistic_transaction_test",
1182        "utilities/transactions/optimistic_transaction_test.cc",
1183        "serial",
1184        [],
1185        [],
1186    ],
1187    [
1188        "option_change_migration_test",
1189        "utilities/option_change_migration/option_change_migration_test.cc",
1190        "serial",
1191        [],
1192        [],
1193    ],
1194    [
1195        "options_file_test",
1196        "db/options_file_test.cc",
1197        "serial",
1198        [],
1199        [],
1200    ],
1201    [
1202        "options_settable_test",
1203        "options/options_settable_test.cc",
1204        "serial",
1205        [],
1206        [],
1207    ],
1208    [
1209        "options_test",
1210        "options/options_test.cc",
1211        "serial",
1212        [],
1213        [],
1214    ],
1215    [
1216        "options_util_test",
1217        "utilities/options/options_util_test.cc",
1218        "serial",
1219        [],
1220        [],
1221    ],
1222    [
1223        "partitioned_filter_block_test",
1224        "table/block_based/partitioned_filter_block_test.cc",
1225        "serial",
1226        [],
1227        [],
1228    ],
1229    [
1230        "perf_context_test",
1231        "db/perf_context_test.cc",
1232        "serial",
1233        [],
1234        [],
1235    ],
1236    [
1237        "persistent_cache_test",
1238        "utilities/persistent_cache/persistent_cache_test.cc",
1239        "parallel",
1240        [],
1241        [],
1242    ],
1243    [
1244        "plain_table_db_test",
1245        "db/plain_table_db_test.cc",
1246        "serial",
1247        [],
1248        [],
1249    ],
1250    [
1251        "prefix_test",
1252        "db/prefix_test.cc",
1253        "serial",
1254        [],
1255        [],
1256    ],
1257    [
1258        "random_test",
1259        "util/random_test.cc",
1260        "serial",
1261        [],
1262        [],
1263    ],
1264    [
1265        "range_del_aggregator_test",
1266        "db/range_del_aggregator_test.cc",
1267        "serial",
1268        [],
1269        [],
1270    ],
1271    [
1272        "range_tombstone_fragmenter_test",
1273        "db/range_tombstone_fragmenter_test.cc",
1274        "serial",
1275        [],
1276        [],
1277    ],
1278    [
1279        "rate_limiter_test",
1280        "util/rate_limiter_test.cc",
1281        "serial",
1282        [],
1283        [],
1284    ],
1285    [
1286        "reduce_levels_test",
1287        "tools/reduce_levels_test.cc",
1288        "serial",
1289        [],
1290        [],
1291    ],
1292    [
1293        "repair_test",
1294        "db/repair_test.cc",
1295        "serial",
1296        [],
1297        [],
1298    ],
1299    [
1300        "repeatable_thread_test",
1301        "util/repeatable_thread_test.cc",
1302        "serial",
1303        [],
1304        [],
1305    ],
1306    [
1307        "sim_cache_test",
1308        "utilities/simulator_cache/sim_cache_test.cc",
1309        "serial",
1310        [],
1311        [],
1312    ],
1313    [
1314        "skiplist_test",
1315        "memtable/skiplist_test.cc",
1316        "serial",
1317        [],
1318        [],
1319    ],
1320    [
1321        "slice_test",
1322        "util/slice_test.cc",
1323        "serial",
1324        [],
1325        [],
1326    ],
1327    [
1328        "slice_transform_test",
1329        "util/slice_transform_test.cc",
1330        "serial",
1331        [],
1332        [],
1333    ],
1334    [
1335        "sst_dump_test",
1336        "tools/sst_dump_test.cc",
1337        "serial",
1338        [],
1339        [],
1340    ],
1341    [
1342        "sst_file_reader_test",
1343        "table/sst_file_reader_test.cc",
1344        "serial",
1345        [],
1346        [],
1347    ],
1348    [
1349        "statistics_test",
1350        "monitoring/statistics_test.cc",
1351        "serial",
1352        [],
1353        [],
1354    ],
1355    [
1356        "stats_history_test",
1357        "monitoring/stats_history_test.cc",
1358        "serial",
1359        [],
1360        [],
1361    ],
1362    [
1363        "stringappend_test",
1364        "utilities/merge_operators/string_append/stringappend_test.cc",
1365        "serial",
1366        [],
1367        [],
1368    ],
1369    [
1370        "table_properties_collector_test",
1371        "db/table_properties_collector_test.cc",
1372        "serial",
1373        [],
1374        [],
1375    ],
1376    [
1377        "table_test",
1378        "table/table_test.cc",
1379        "parallel",
1380        [],
1381        [],
1382    ],
1383    [
1384        "thread_list_test",
1385        "util/thread_list_test.cc",
1386        "serial",
1387        [],
1388        [],
1389    ],
1390    [
1391        "thread_local_test",
1392        "util/thread_local_test.cc",
1393        "serial",
1394        [],
1395        [],
1396    ],
1397    [
1398        "timer_queue_test",
1399        "util/timer_queue_test.cc",
1400        "serial",
1401        [],
1402        [],
1403    ],
1404    [
1405        "trace_analyzer_test",
1406        "tools/trace_analyzer_test.cc",
1407        "serial",
1408        [],
1409        [],
1410    ],
1411    [
1412        "transaction_test",
1413        "utilities/transactions/transaction_test.cc",
1414        "parallel",
1415        [],
1416        [],
1417    ],
1418    [
1419        "ttl_test",
1420        "utilities/ttl/ttl_test.cc",
1421        "serial",
1422        [],
1423        [],
1424    ],
1425    [
1426        "util_merge_operators_test",
1427        "utilities/util_merge_operators_test.cc",
1428        "serial",
1429        [],
1430        [],
1431    ],
1432    [
1433        "version_builder_test",
1434        "db/version_builder_test.cc",
1435        "serial",
1436        [],
1437        [],
1438    ],
1439    [
1440        "version_edit_test",
1441        "db/version_edit_test.cc",
1442        "serial",
1443        [],
1444        [],
1445    ],
1446    [
1447        "version_set_test",
1448        "db/version_set_test.cc",
1449        "serial",
1450        [],
1451        [],
1452    ],
1453    [
1454        "wal_manager_test",
1455        "db/wal_manager_test.cc",
1456        "serial",
1457        [],
1458        [],
1459    ],
1460    [
1461        "write_batch_test",
1462        "db/write_batch_test.cc",
1463        "serial",
1464        [],
1465        [],
1466    ],
1467    [
1468        "write_batch_with_index_test",
1469        "utilities/write_batch_with_index/write_batch_with_index_test.cc",
1470        "serial",
1471        [],
1472        [],
1473    ],
1474    [
1475        "write_buffer_manager_test",
1476        "memtable/write_buffer_manager_test.cc",
1477        "serial",
1478        [],
1479        [],
1480    ],
1481    [
1482        "write_callback_test",
1483        "db/write_callback_test.cc",
1484        "serial",
1485        [],
1486        [],
1487    ],
1488    [
1489        "write_controller_test",
1490        "db/write_controller_test.cc",
1491        "serial",
1492        [],
1493        [],
1494    ],
1495    [
1496        "write_prepared_transaction_test",
1497        "utilities/transactions/write_prepared_transaction_test.cc",
1498        "parallel",
1499        [],
1500        [],
1501    ],
1502    [
1503        "write_unprepared_transaction_test",
1504        "utilities/transactions/write_unprepared_transaction_test.cc",
1505        "parallel",
1506        [],
1507        [],
1508    ],
1509]
1510
1511# Generate a test rule for each entry in ROCKS_TESTS
1512# Do not build the tests in opt mode, since SyncPoint and other test code
1513# will not be included.
1514[
1515    test_binary(
1516        extra_compiler_flags = extra_compiler_flags,
1517        extra_deps = extra_deps,
1518        parallelism = parallelism,
1519        rocksdb_arch_preprocessor_flags = ROCKSDB_ARCH_PREPROCESSOR_FLAGS,
1520        rocksdb_compiler_flags = ROCKSDB_COMPILER_FLAGS,
1521        rocksdb_external_deps = ROCKSDB_EXTERNAL_DEPS,
1522        rocksdb_os_deps = ROCKSDB_OS_DEPS,
1523        rocksdb_os_preprocessor_flags = ROCKSDB_OS_PREPROCESSOR_FLAGS,
1524        rocksdb_preprocessor_flags = ROCKSDB_PREPROCESSOR_FLAGS,
1525        test_cc = test_cc,
1526        test_name = test_name,
1527    )
1528    for test_name, test_cc, parallelism, extra_deps, extra_compiler_flags in ROCKS_TESTS
1529    if not is_opt_mode
1530]
1531