OSDN Git Service

drm_hwcomposer: CI: Process every file with clang-tidy.
authorRoman Stratiienko <roman.o.stratiienko@globallogic.com>
Thu, 23 Dec 2021 14:25:20 +0000 (16:25 +0200)
committerRoman Stratiienko <roman.o.stratiienko@globallogic.com>
Wed, 12 Jan 2022 08:33:55 +0000 (10:33 +0200)
Currently part of header files isn't processed by CI.

Signed-off-by: Roman Stratiienko <roman.o.stratiienko@globallogic.com>
.ci/Makefile
.clang-tidy
DrmHwcTwo.cpp
DrmHwcTwo.h
drm/DrmDevice.cpp
drm/DrmDevice.h
drm/DrmPlane.h
drm/ResourceManager.cpp
drm/ResourceManager.h
drm/UEventListener.h
utils/properties.h

index 08ca2b1..d78fde6 100644 (file)
@@ -45,17 +45,25 @@ BUILD_FILES := \
 #bufferinfo/BufferInfoMapperMetadata.cpp
 #utils/hwcutils.cpp
 
-TIDY_FILES_H := \
-    drm/DrmFbImporter.h \
-    drm/DrmUnique.h \
-    utils/UniqueFd.h \
-    utils/log.h \
-    utils/properties.h \
-
-TIDY_FILES_CPP := \
-
-TIDY_COARSE_CHECKS := * \
+TIDY_CHECKS_NORMAL := * \
     -hicpp-* -llvmlibc-* -fuchsia-* -altera-* \
+    -llvm-header-guard \
+    -cppcoreguidelines-special-member-functions \
+    -cppcoreguidelines-pro-type-cstyle-cast \
+    -cppcoreguidelines-macro-usage \
+    -cppcoreguidelines-avoid-c-arrays \
+    -google-readability-braces-around-statements \
+    -google-readability-casting \
+    -misc-non-private-member-variables-in-classes \
+    -modernize-avoid-c-arrays \
+    -modernize-use-trailing-return-type \
+    -readability-braces-around-statements \
+    -readability-convert-member-functions-to-static \
+    -readability-implicit-bool-conversion \
+    -readability-identifier-naming \
+
+TIDY_CHECKS_COARSE := \
+    $(TIDY_CHECKS_NORMAL) \
     -cppcoreguidelines-pro-bounds-array-to-pointer-decay \
     -cppcoreguidelines-pro-bounds-constant-array-index \
     -cppcoreguidelines-pro-bounds-pointer-arithmetic \
@@ -77,6 +85,75 @@ TIDY_COARSE_CHECKS := * \
     -readability-magic-numbers \
     -readability-use-anyofallof \
 
+TIDY_FILES := \
+    drm/UEventListener.h:COARSE                        \
+    drm/DrmFbImporter.h:FINE                           \
+    drm/ResourceManager.h:                             \
+    drm/DrmMode.h:                                     \
+    drm/DrmDevice.h:                                   \
+    drm/DrmProperty.h:                                 \
+    drm/DrmConnector.h:                                \
+    drm/DrmCrtc.h:                                     \
+    drm/VSyncWorker.h:                                 \
+    drm/DrmPlane.h:                                    \
+    drm/DrmUnique.h:FINE                               \
+    drm/DrmEncoder.h:                                  \
+    bufferinfo/legacy/BufferInfoMinigbm.h:             \
+    bufferinfo/legacy/BufferInfoLibdrm.h:              \
+    bufferinfo/legacy/BufferInfoMaliMediatek.h:        \
+    bufferinfo/legacy/BufferInfoMaliHisi.h:            \
+    bufferinfo/legacy/BufferInfoImagination.h:         \
+    bufferinfo/legacy/BufferInfoMaliMeson.h:           \
+    bufferinfo/BufferInfoGetter.h:                     \
+    bufferinfo/BufferInfoMapperMetadata.h:             \
+    include/drmhwcgralloc.h:                           \
+    include/drmhwcomposer.h:                           \
+    utils/Worker.h:                                    \
+    utils/UniqueFd.h:FINE                              \
+    utils/autolock.h:                                  \
+    utils/log.h:FINE                                   \
+    utils/properties.h:FINE                            \
+    compositor/DrmDisplayCompositor.h:                 \
+    compositor/Planner.h:                              \
+    compositor/DrmDisplayComposition.h:                \
+    backend/BackendManager.h:                          \
+    backend/BackendClient.h:                           \
+    backend/Backend.h:                                 \
+    backend/BackendRCarDu.h:                           \
+    DrmHwcTwo.h:                                       \
+
+TIDY_FILES += \
+    backend/BackendClient.cpp:COARSE                       \
+    backend/Backend.cpp:COARSE                             \
+    backend/BackendManager.cpp:COARSE                      \
+    backend/BackendRCarDu.cpp:COARSE                       \
+    bufferinfo/BufferInfoGetter.cpp:COARSE                 \
+    bufferinfo/legacy/BufferInfoImagination.cpp:COARSE     \
+    bufferinfo/legacy/BufferInfoLibdrm.cpp:COARSE          \
+    bufferinfo/legacy/BufferInfoMaliHisi.cpp:COARSE        \
+    bufferinfo/legacy/BufferInfoMaliMediatek.cpp:COARSE    \
+    bufferinfo/legacy/BufferInfoMaliMeson.cpp:COARSE       \
+    bufferinfo/legacy/BufferInfoMinigbm.cpp:COARSE         \
+    compositor/DrmDisplayComposition.cpp:COARSE            \
+    compositor/DrmDisplayCompositor.cpp:COARSE             \
+    compositor/Planner.cpp:COARSE                          \
+    drm/DrmConnector.cpp:COARSE                            \
+    drm/DrmCrtc.cpp:COARSE                                 \
+    drm/DrmDevice.cpp:COARSE                               \
+    drm/DrmEncoder.cpp:COARSE                              \
+    drm/DrmFbImporter.cpp:COARSE                           \
+    drm/DrmMode.cpp:COARSE                                 \
+    drm/DrmPlane.cpp:COARSE                                \
+    drm/DrmProperty.cpp:COARSE                             \
+    DrmHwcTwo.cpp:COARSE                                   \
+    drm/ResourceManager.cpp:COARSE                         \
+    drm/UEventListener.cpp:COARSE                          \
+    drm/VSyncWorker.cpp:COARSE                             \
+    tests/worker_test.cpp:COARSE                           \
+    utils/autolock.cpp:COARSE                              \
+    utils/Worker.cpp:COARSE                                \
+
+
 .PHONY: all build tidy tidy-fine clean
 
 all: build tidy tidy-fine
@@ -87,21 +164,10 @@ clean:
 _OBJ := $(BUILD_FILES:.cpp=.o)
 OBJ  := $(patsubst %,$(OUT_DIR)/%,$(_OBJ))
 
-_TIDY_TS := $(BUILD_FILES:.cpp=.cpp.t_ts)
-TIDY_TS := $(patsubst %,$(OUT_DIR)/%,$(_TIDY_TS))
-
-_FINE_TIDY_TS := $(TIDY_FILES_CPP:.cpp=.cpp,ft_ts)
-_FINE_TIDY_TS += $(TIDY_FILES_H:.h=.h.ft_ts)
-FINE_TIDY_TS  := $(patsubst %,$(OUT_DIR)/%,$(_FINE_TIDY_TS))
-
 DEPS := $(patsubst %.cpp,$(OUT_DIR)/%.d,$(BUILD_FILES))
 
 build: $(OBJ)
 
-tidy: $(TIDY_TS) build
-
-tidy-fine: $(FINE_TIDY_TS) build
-
 CXXARGS := $(foreach dir,$(INCLUDE_DIRS),-I$(SRC_DIR)/$(dir)) $(foreach dir,$(SYSTEM_INCLUDE_DIRS),-I$(dir)) $(CXXFLAGS)
 
 $(OUT_DIR)/%.o: $(SRC_DIR)/%.cpp
@@ -112,34 +178,37 @@ $(OUT_DIR)/%.d: $(SRC_DIR)/%.cpp
        mkdir -p $(dir $@)
        $(CLANG) $(CXXARGS) $< -MM -MT $(OUT_DIR)/$(patsubst %.cpp,%.o,$<) -o $@
 
+# TIDY
 space := $(subst ,, )
 comma := ,
 
-# TIDY
-define exec-tidy
-       mkdir -p $(dir $@)
-       $(CLANG_TIDY) $< --checks="$(subst $(space),$(comma),$(strip $(TIDY_COARSE_CHECKS)))" -- -x c++ $(CXXARGS)
-       touch $@
-endef
+TIDY_ARGS_FINE :=
+TIDY_ARGS_NONE := --checks="-*,llvm-include-order"
+TIDY_ARGS_     := --checks="-*,llvm-include-order"
+TIDY_ARGS_NORMAL := --checks="$(subst $(space),$(comma),$(strip $(TIDY_CHECKS_NORMAL)))"
+TIDY_ARGS_COARSE := --checks="$(subst $(space),$(comma),$(strip $(TIDY_CHECKS_COARSE)))"
 
-$(OUT_DIR)/%.h.t_ts: $(SRC_DIR)/%.h
-       $(exec-tidy)
+define process-tidy
 
-$(OUT_DIR)/%.cpp.t_ts: $(SRC_DIR)/%.cpp $(OUT_DIR)/%.o
-       $(exec-tidy)
+_TARG := $(OUT_DIR)/$1.tidy.ts
+_DEP := $(SRC_DIR)/$1
+
+TIDY_DEPS += $(_TARG)
+
+TIDY_ARGS:=$(TIDY_ARGS_$2)
+
+$(_TARG): $(_DEP)
+       mkdir -p $(dir $(_TARG))
+       $(CLANG_TIDY) $(_DEP) $(TIDY_ARGS) -- -x c++ $(CXXARGS)
+       touch $(_TARG)
 
-# TIDY-FINE
-define exec-tidy-fine
-       mkdir -p $(dir $@)
-       $(CLANG_TIDY) $< -- -x c++ $(CXXARGS)
-       touch $@
 endef
 
-$(OUT_DIR)/%.cpp.ft_ts: $(SRC_DIR)/%.cpp $(OUT_DIR)/%.o
-       $(exec-tidy-fine)
+$(foreach pair,$(TIDY_FILES),$(eval $(call process-tidy,$(word 1, $(subst :, ,$(pair))),$(word 2, $(subst :, ,$(pair))))))
+
+#$(warning $(TIDY_DEPS))
 
-$(OUT_DIR)/%.h.ft_ts: $(SRC_DIR)/%.h
-       $(exec-tidy-fine)
+tidy: $(TIDY_DEPS)
 
 ifneq ($(MAKECMDGOALS), clean)
 -include $(DEPS)
index 4bd8ff7..300a2fe 100644 (file)
@@ -6,7 +6,6 @@ Checks: >
     *,
     -fuchsia*,
     -llvm*,
-    -concurrency-mt-unsafe,
     -cppcoreguidelines-pro-type-vararg, -hicpp-vararg,
     -hicpp-signed-bitwise,
 
index 45fb958..ad9c2c2 100644 (file)
@@ -1083,6 +1083,14 @@ HWC2::Error DrmHwcTwo::HwcDisplay::SetColorModeWithIntent(int32_t mode,
 
 #endif /* PLATFORM_SDK_VERSION > 27 */
 
+const Backend *DrmHwcTwo::HwcDisplay::backend() const {
+  return backend_.get();
+}
+
+void DrmHwcTwo::HwcDisplay::set_backend(std::unique_ptr<Backend> backend) {
+  backend_ = std::move(backend);
+}
+
 HWC2::Error DrmHwcTwo::HwcLayer::SetCursorPosition(int32_t /*x*/,
                                                    int32_t /*y*/) {
   return HWC2::Error::None;
index eb74f32..beb2e5f 100644 (file)
@@ -267,12 +267,8 @@ class DrmHwcTwo : public hwc2_device_t {
     int active_config_id_ = 0;
     int preferred_config_id_ = 0;
 
-    const Backend *backend() const {
-      return backend_.get();
-    }
-    void set_backend(std::unique_ptr<Backend> backend) {
-      backend_ = std::move(backend);
-    }
+    const Backend *backend() const;
+    void set_backend(std::unique_ptr<Backend> backend);
 
     const std::vector<DrmPlane *> &primary_planes() const {
       return primary_planes_;
index 35ed45d..8dee817 100644 (file)
@@ -30,6 +30,7 @@
 #include <sstream>
 #include <string>
 
+#include "drm/DrmPlane.h"
 #include "utils/log.h"
 #include "utils/properties.h"
 
index c08c766..4cbbd60 100644 (file)
@@ -26,7 +26,6 @@
 #include "DrmCrtc.h"
 #include "DrmEncoder.h"
 #include "DrmFbImporter.h"
-#include "DrmPlane.h"
 #include "utils/UniqueFd.h"
 
 namespace android {
index 34bba56..7fab2ba 100644 (file)
@@ -29,6 +29,7 @@
 namespace android {
 
 class DrmDevice;
+struct DrmHwcLayer;
 
 class DrmPlane {
  public:
index 8baa4cb..2cd393f 100644 (file)
@@ -24,6 +24,8 @@
 #include <sstream>
 
 #include "bufferinfo/BufferInfoGetter.h"
+#include "drm/DrmDevice.h"
+#include "drm/DrmPlane.h"
 #include "utils/log.h"
 #include "utils/properties.h"
 
@@ -32,6 +34,10 @@ namespace android {
 ResourceManager::ResourceManager() : num_displays_(0) {
 }
 
+ResourceManager::~ResourceManager() {
+  uevent_listener_.Exit();
+}
+
 int ResourceManager::Init() {
   char path_pattern[PROPERTY_VALUE_MAX];
   // Could be a valid path or it can have at the end of it the wildcard %
index 5ffe92c..bb91882 100644 (file)
@@ -20,8 +20,8 @@
 #include <string.h>
 
 #include "DrmDevice.h"
-#include "UEventListener.h"
 #include "DrmFbImporter.h"
+#include "UEventListener.h"
 
 namespace android {
 
@@ -30,9 +30,7 @@ class ResourceManager {
   ResourceManager();
   ResourceManager(const ResourceManager &) = delete;
   ResourceManager &operator=(const ResourceManager &) = delete;
-  ~ResourceManager() {
-    uevent_listener_.Exit();
-  }
+  ~ResourceManager();
 
   int Init();
   DrmDevice *GetDrmDevice(int display);
index 048eb40..0724443 100644 (file)
@@ -27,16 +27,16 @@ namespace android {
 class UEventListener : public Worker {
  public:
   UEventListener();
-  virtual ~UEventListener() = default;
+  ~UEventListener() override = default;
 
   int Init();
 
   void RegisterHotplugHandler(std::function<void()> hotplug_handler) {
-    hotplug_handler_ = hotplug_handler;
+    hotplug_handler_ = std::move(hotplug_handler);
   }
 
  protected:
-  virtual void Routine();
+  void Routine() override;
 
  private:
   UniqueFd uevent_fd_;
index c8ddbae..0b49c61 100644 (file)
@@ -17,6 +17,7 @@ constexpr int PROPERTY_VALUE_MAX = 92;
 // NOLINTNEXTLINE(readability-identifier-naming)
 auto inline property_get(const char *name, char *value,
                          const char *default_value) -> int {
+  // NOLINTNEXTLINE (concurrency-mt-unsafe)
   char *prop = std::getenv(name);
   snprintf(value, PROPERTY_VALUE_MAX, "%s",
            (prop == nullptr) ? default_value : prop);