Skip to content

Commit

Permalink
Add (& fix) some simple source code checks (#8821)
Browse files Browse the repository at this point in the history
Summary:
* Don't hardcode namespace rocksdb (use ROCKSDB_NAMESPACE)
* Don't #include <rocksdb/...> (use double quotes)
* Support putting NOCOMMIT (any case) in source code that should not be
committed/pushed in current state.

These will be run with `make check` and in GitHub actions

Pull Request resolved: #8821

Test Plan: existing tests, manually try out new checks

Reviewed By: zhichao-cao

Differential Revision: D30791726

Pulled By: pdillinger

fbshipit-source-id: 399c883f312be24d9e55c58951d4013e18429d92
  • Loading branch information
pdillinger authored and facebook-github-bot committed Sep 8, 2021
1 parent 9308ff3 commit cb5b851
Show file tree
Hide file tree
Showing 16 changed files with 61 additions and 25 deletions.
3 changes: 3 additions & 0 deletions .github/workflows/sanity_check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,3 +39,6 @@ jobs:

- name: Compare buckify output
run: make check-buck-targets

- name: Simple source code checks
run: make check-sources
8 changes: 6 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -943,6 +943,7 @@ endif
ifndef SKIP_FORMAT_BUCK_CHECKS
$(MAKE) check-format
$(MAKE) check-buck-targets
$(MAKE) check-sources
endif

# TODO add ldb_tests
Expand Down Expand Up @@ -1220,6 +1221,9 @@ check-format:
check-buck-targets:
buckifier/check_buck_targets.sh

check-sources:
build_tools/check-sources.sh

package:
bash build_tools/make_package.sh $(SHARED_MAJOR).$(SHARED_MINOR)

Expand Down Expand Up @@ -1897,7 +1901,7 @@ clipping_iterator_test: $(OBJ_DIR)/db/compaction/clipping_iterator_test.o $(TEST

ribbon_bench: $(OBJ_DIR)/microbench/ribbon_bench.o $(LIBRARY)
$(AM_LINK)

cache_reservation_manager_test: $(OBJ_DIR)/cache/cache_reservation_manager_test.o $(TEST_LIBRARY) $(LIBRARY)
$(AM_LINK)
#-------------------------------------------------
Expand Down Expand Up @@ -2364,7 +2368,7 @@ build_subset_tests: $(ROCKSDBTESTS_SUBSET)

# Remove the rules for which dependencies should not be generated and see if any are left.
#If so, include the dependencies; if not, do not include the dependency files
ROCKS_DEP_RULES=$(filter-out clean format check-format check-buck-targets jclean jtest package analyze tags rocksdbjavastatic% unity.% unity_test, $(MAKECMDGOALS))
ROCKS_DEP_RULES=$(filter-out clean format check-format check-buck-targets check-sources jclean jtest package analyze tags rocksdbjavastatic% unity.% unity_test, $(MAKECMDGOALS))
ifneq ("$(ROCKS_DEP_RULES)", "")
-include $(DEPFILES)
endif
28 changes: 28 additions & 0 deletions build_tools/check-sources.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#!/usr/bin/env bash
# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
#
# Check for some simple mistakes that should prevent commit or push

BAD=""

git grep 'namespace rocksdb' -- '*.[ch]*'
if [ "$?" != "1" ]; then
echo "^^^^^ Do not hardcode namespace rocksdb. Use ROCKSDB_NAMESPACE"
BAD=1
fi

git grep -i 'nocommit' -- ':!build_tools/check-sources.sh'
if [ "$?" != "1" ]; then
echo "^^^^^ Code was not intended to be committed"
BAD=1
fi

git grep '<rocksdb/' -- ':!build_tools/check-sources.sh'
if [ "$?" != "1" ]; then
echo '^^^^^ Use double-quotes as in #include "rocksdb/something.h"'
BAD=1
fi

if [ "$BAD" ]; then
exit 1
fi
2 changes: 1 addition & 1 deletion cache/cache_bench.cc
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ int main() {
return 1;
}
#else
#include <rocksdb/cache_bench_tool.h>
#include "rocksdb/cache_bench_tool.h"
int main(int argc, char** argv) {
return ROCKSDB_NAMESPACE::cache_bench_tool(argc, argv);
}
Expand Down
2 changes: 1 addition & 1 deletion db_stress_tool/db_stress.cc
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ int main() {
return 1;
}
#else
#include <rocksdb/db_stress_tool.h>
#include "rocksdb/db_stress_tool.h"

int main(int argc, char** argv) {
return ROCKSDB_NAMESPACE::db_stress_tool(argc, argv);
Expand Down
8 changes: 4 additions & 4 deletions examples/compaction_filter_example.cc
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
// COPYING file in the root directory) and Apache 2.0 License
// (found in the LICENSE.Apache file in the root directory).

#include <rocksdb/compaction_filter.h>
#include <rocksdb/db.h>
#include <rocksdb/merge_operator.h>
#include <rocksdb/options.h>
#include "rocksdb/compaction_filter.h"
#include "rocksdb/db.h"
#include "rocksdb/merge_operator.h"
#include "rocksdb/options.h"

class MyMerge : public ROCKSDB_NAMESPACE::MergeOperator {
public:
Expand Down
3 changes: 2 additions & 1 deletion include/rocksdb/memtablerep.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,14 +35,15 @@

#pragma once

#include <rocksdb/slice.h>
#include <stdint.h>
#include <stdlib.h>

#include <memory>
#include <stdexcept>
#include <unordered_set>

#include "rocksdb/slice.h"

namespace ROCKSDB_NAMESPACE {

class Arena;
Expand Down
5 changes: 3 additions & 2 deletions include/rocksdb/system_clock.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,13 @@
// found in the LICENSE file. See the AUTHORS file for names of contributors.

#pragma once
#include <rocksdb/rocksdb_namespace.h>
#include <rocksdb/status.h>
#include <stdint.h>

#include <memory>

#include "rocksdb/rocksdb_namespace.h"
#include "rocksdb/status.h"

#ifdef _WIN32
// Windows API macro interference
#undef GetCurrentTime
Expand Down
4 changes: 2 additions & 2 deletions java/rocksjni/event_listener_jnicallback.cc
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

#include "rocksjni/portal.h"

namespace rocksdb {
namespace ROCKSDB_NAMESPACE {
EventListenerJniCallback::EventListenerJniCallback(
JNIEnv* env, jobject jevent_listener,
const std::set<EnabledEventCallback>& enabled_event_callbacks)
Expand Down Expand Up @@ -499,4 +499,4 @@ void EventListenerJniCallback::OnFileOperation(const jmethodID& mid,

CleanupCallbackInvocation(env, attached_thread, {&jop_info});
}
} // namespace rocksdb
} // namespace ROCKSDB_NAMESPACE
4 changes: 2 additions & 2 deletions java/rocksjni/event_listener_jnicallback.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
#include "rocksdb/listener.h"
#include "rocksjni/jnicallback.h"

namespace rocksdb {
namespace ROCKSDB_NAMESPACE {

enum EnabledEventCallback {
ON_FLUSH_COMPLETED = 0x0,
Expand Down Expand Up @@ -117,6 +117,6 @@ class EventListenerJniCallback : public JniCallback, public EventListener {
jmethodID m_on_error_recovery_completed_mid;
};

} // namespace rocksdb
} // namespace ROCKSDB_NAMESPACE

#endif // JAVA_ROCKSJNI_EVENT_LISTENER_JNICALLBACK_H_
4 changes: 2 additions & 2 deletions memory/memkind_kmem_allocator.cc
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

#include "memkind_kmem_allocator.h"

namespace rocksdb {
namespace ROCKSDB_NAMESPACE {

void* MemkindKmemAllocator::Allocate(size_t size) {
void* p = memkind_malloc(MEMKIND_DAX_KMEM, size);
Expand All @@ -29,5 +29,5 @@ size_t MemkindKmemAllocator::UsableSize(void* p,
}
#endif // ROCKSDB_MALLOC_USABLE_SIZE

} // namespace rocksdb
} // namespace ROCKSDB_NAMESPACE
#endif // MEMKIND
4 changes: 2 additions & 2 deletions memory/memkind_kmem_allocator.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
#include <memkind.h>
#include "rocksdb/memory_allocator.h"

namespace rocksdb {
namespace ROCKSDB_NAMESPACE {

class MemkindKmemAllocator : public MemoryAllocator {
public:
Expand All @@ -23,5 +23,5 @@ class MemkindKmemAllocator : public MemoryAllocator {
#endif
};

} // namespace rocksdb
} // namespace ROCKSDB_NAMESPACE
#endif // MEMKIND
4 changes: 2 additions & 2 deletions memory/memkind_kmem_allocator_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
#include "table/block_based/block_based_table_factory.h"
#include "test_util/testharness.h"

namespace rocksdb {
namespace ROCKSDB_NAMESPACE {
TEST(MemkindKmemAllocatorTest, Allocate) {
MemkindKmemAllocator allocator;
void* p;
Expand Down Expand Up @@ -84,7 +84,7 @@ TEST(MemkindKmemAllocatorTest, DatabaseBlockCache) {
ASSERT_OK(s);
ASSERT_OK(DestroyDB(dbname, options));
}
} // namespace rocksdb
} // namespace ROCKSDB_NAMESPACE

int main(int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv);
Expand Down
3 changes: 1 addition & 2 deletions table/block_based/index_builder.cc
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,8 @@
#include "table/block_based/partitioned_filter_block.h"
#include "table/format.h"

// Without anonymous namespace here, we fail the warning -Wmissing-prototypes
namespace ROCKSDB_NAMESPACE {
// using namespace rocksdb;

// Create a index builder based on its type.
IndexBuilder* IndexBuilder::CreateIndexBuilder(
BlockBasedTableOptions::IndexType index_type,
Expand Down
2 changes: 1 addition & 1 deletion test_util/testharness.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
#else
#include <gtest/gtest.h>
#endif
#include <rocksdb/utilities/regex.h>
#include "rocksdb/utilities/regex.h"

// A "skipped" test has a specific meaning in Facebook infrastructure: the
// test is in good shape and should be run, but something about the
Expand Down
2 changes: 1 addition & 1 deletion tools/db_bench.cc
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ int main() {
return 1;
}
#else
#include <rocksdb/db_bench_tool.h>
#include "rocksdb/db_bench_tool.h"
int main(int argc, char** argv) {
return ROCKSDB_NAMESPACE::db_bench_tool(argc, argv);
}
Expand Down

0 comments on commit cb5b851

Please sign in to comment.