From 220be12b373646b06b0a00250a8f2e382893dc17 Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Fri, 14 Aug 2020 21:52:28 +0200 Subject: src/adbd-client.cpp: Fix several type warnings in g_debug calls() by casting to (void*). --- src/adbd-client.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/adbd-client.cpp b/src/adbd-client.cpp index 47914cb..f4f419f 100644 --- a/src/adbd-client.cpp +++ b/src/adbd-client.cpp @@ -107,7 +107,7 @@ private: void on_public_key_response(PKResponse response) { - g_debug("%s thread %p got response %d", G_STRLOC, g_thread_self(), int(response)); + g_debug("%s thread %p got response %d", G_STRLOC, (void*)g_thread_self(), int(response)); // set m_pkresponse and wake up the waiting worker thread m_pkresponse = response; @@ -125,11 +125,11 @@ private: while (!g_cancellable_is_cancelled(m_cancellable)) { - g_debug("%s thread %p creating a client socket to '%s'", G_STRLOC, g_thread_self(), socket_path.c_str()); + g_debug("%s thread %p creating a client socket to '%s'", G_STRLOC, (void*)g_thread_self(), socket_path.c_str()); auto socket = create_client_socket(socket_path); bool got_valid_req = false; - g_debug("%s thread %p calling read_request", g_thread_self(), G_STRLOC); + g_debug("%s thread %p calling read_request", G_STRLOC, (void*)g_thread_self()); std::string reqstr; if (socket != nullptr) reqstr = read_request(socket); @@ -139,7 +139,7 @@ private: if (reqstr.substr(0,2) == "PK") { PKResponse response = PKResponse::DENY; const auto public_key = reqstr.substr(2); - g_debug("%s thread %p got pk [%s]", G_STRLOC, g_thread_self(), public_key.c_str()); + g_debug("%s thread %p got pk [%s]", G_STRLOC, (void*)g_thread_self(), public_key.c_str()); if (!public_key.empty()) { got_valid_req = true; std::unique_lock lk(m_pkresponse_mutex); @@ -151,7 +151,7 @@ private: }); response = m_pkresponse; g_debug("%s thread %p got response '%d', is-cancelled %d", G_STRLOC, - g_thread_self(), + (void*)g_thread_self(), int(response), int(g_cancellable_is_cancelled(m_cancellable))); } -- cgit v1.2.3 From d1f7136481a286e3b363b5cb12631fe7db04ecb4 Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Fri, 14 Aug 2020 20:28:30 +0000 Subject: cppcheck: Add several missing override statements to make cppcheck happy (which is one of our unit tests). --- src/indicator.h | 6 +++--- src/rotation-lock.h | 6 +++--- tests/unit/adbd-client-test.cpp | 2 +- tests/unit/rotation-lock-test.cpp | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/indicator.h b/src/indicator.h index c55be79..b5524d1 100644 --- a/src/indicator.h +++ b/src/indicator.h @@ -64,10 +64,10 @@ public: SimpleProfile(const char* name, const std::shared_ptr& menu): m_name(name), m_menu(menu) {} virtual ~SimpleProfile(); - std::string name() const {return m_name;} + std::string name() const override {return m_name;} core::Property
& header() {return m_header;} - const core::Property
& header() const {return m_header;} - std::shared_ptr menu_model() const {return m_menu;} + const core::Property
& header() const override {return m_header;} + std::shared_ptr menu_model() const override {return m_menu;} protected: const std::string m_name; diff --git a/src/rotation-lock.h b/src/rotation-lock.h index 2354c4a..7bdfb14 100644 --- a/src/rotation-lock.h +++ b/src/rotation-lock.h @@ -30,9 +30,9 @@ public: RotationLockIndicator(); ~RotationLockIndicator(); - const char* name() const; - GSimpleActionGroup* action_group() const; - std::vector> profiles() const; + const char* name() const override; + GSimpleActionGroup* action_group() const override; + std::vector> profiles() const override; protected: class Impl; diff --git a/tests/unit/adbd-client-test.cpp b/tests/unit/adbd-client-test.cpp index d1ce740..9b5f1b3 100644 --- a/tests/unit/adbd-client-test.cpp +++ b/tests/unit/adbd-client-test.cpp @@ -38,7 +38,7 @@ protected: std::shared_ptr m_tmpdir; - void SetUp() + void SetUp() override { super::SetUp(); diff --git a/tests/unit/rotation-lock-test.cpp b/tests/unit/rotation-lock-test.cpp index b9630b5..a5a6f6c 100644 --- a/tests/unit/rotation-lock-test.cpp +++ b/tests/unit/rotation-lock-test.cpp @@ -28,12 +28,12 @@ private: protected: - void SetUp() + void SetUp() override { super::SetUp(); } - void TearDown() + void TearDown() override { super::TearDown(); } -- cgit v1.2.3 From 8286c68710c9a69461bb23fa7e8ba56f727c3a6e Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Fri, 14 Aug 2020 20:28:49 +0000 Subject: tests/unit/adbd-client-test.cpp: white-space fix --- tests/unit/adbd-client-test.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit/adbd-client-test.cpp b/tests/unit/adbd-client-test.cpp index 9b5f1b3..b9e7a49 100644 --- a/tests/unit/adbd-client-test.cpp +++ b/tests/unit/adbd-client-test.cpp @@ -86,7 +86,7 @@ TEST_F(AdbdClientFixture, SocketPlumbing) EXPECT_EQ(test.expected_pk, pk); ASSERT_EQ(1, adbd_server->m_responses.size()); EXPECT_EQ(test.expected_response, adbd_server->m_responses.front()); - + // cleanup connection.disconnect(); adbd_client.reset(); -- cgit v1.2.3 From 65cd340d5770834cb823e18fba23dbd2a90689c0 Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Fri, 14 Aug 2020 20:29:28 +0000 Subject: tests/CMakeLists.txt: Add options --suppress=missingInclude and --suppress=unusedFunction. Be less strict and make the cppcheck pass. --- tests/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index d5fb909..1fcc7fd 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -28,7 +28,7 @@ endif() add_compile_options(${CXX_WARNING_ARGS}) -add_test(cppcheck cppcheck --enable=all -USCHEMA_DIR --error-exitcode=2 --inline-suppr -I${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/tests) +add_test(cppcheck cppcheck --force --enable=all -USCHEMA_DIR --error-exitcode=2 --suppress=missingInclude --suppress=unusedFunction --library=qt --inline-suppr -I${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/tests) add_subdirectory(integration) add_subdirectory(unit) -- cgit v1.2.3 From 0d1d245b2dabdeb98f16ddfff20cec1f4cfa1bce Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Wed, 9 Jun 2021 11:56:40 +0200 Subject: Travis CI: Initial CI build configuration. --- .build.yml | 133 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .travis.yml | 43 ++++++++++++++++++++ 2 files changed, 176 insertions(+) create mode 100644 .build.yml create mode 100644 .travis.yml diff --git a/.build.yml b/.build.yml new file mode 100644 index 0000000..fddd556 --- /dev/null +++ b/.build.yml @@ -0,0 +1,133 @@ +######################################################### +# THE FOLLOWING LINES IS USED BY docker-build +########################################################## +requires: + archlinux: + # Useful URL: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=ayatana-indicator-display + - clang + - gcc + - git + - make + - startup-notification + - which + - cmake + - cmake-extras + - mate-common + - dbus + - intltool + - glib2 + # FIXME: add missing build-dependencies + + debian: + # Useful URL: https://salsa.debian.org/debian-ayatana-team/ayatana-indicator-display + - autopoint + - clang + - clang-tools + - g++ + - cppcheck + - git + - cmake + - cmake-extras + - mate-common + - dbus + - intltool + - libglib2.0-dev + - libgudev-1.0-dev + - libproperties-cpp-dev + - qtbase5-dev + - libqtdbusmock1-dev + - libqtdbustest1-dev + - libgtest-dev + - cppcheck + - googletest + - lcov + - gcovr + - systemd + + ubuntu: + - autopoint + - clang + - clang-tools + - g++ + - git + - cmake + - cmake-extras + - mate-common + - dbus + - intltool + - libglib2.0-dev + - libgudev-1.0-dev + - libproperties-cpp-dev + - qtbase5-dev + - libqtdbusmock1-dev + - libqtdbustest1-dev + - libgtest-dev + - cppcheck + - googletest + - lcov + - gcovr + - systemd + - gsettings-ubuntu-schemas + +variables: + - 'CHECKERS=" + -enable-checker deadcode.DeadStores + -enable-checker alpha.deadcode.UnreachableCode + -enable-checker alpha.core.CastSize + -enable-checker alpha.core.CastToStruct + -enable-checker alpha.core.IdenticalExpr + -enable-checker alpha.core.SizeofPtr + -enable-checker alpha.security.ArrayBoundV2 + -enable-checker alpha.security.MallocOverflow + -enable-checker alpha.security.ReturnPtrRange + -enable-checker alpha.unix.SimpleStream + -enable-checker alpha.unix.cstring.BufferOverlap + -enable-checker alpha.unix.cstring.NotNullTerminated + -enable-checker alpha.unix.cstring.OutOfBounds + -enable-checker alpha.core.FixedAddr + -enable-checker security.insecureAPI.strcpy"' + +build_scripts: + - if [ ${DISTRO_NAME} == "debian" ];then + - export CFLAGS+=" -Wsign-compare -Wunused-parameter" + - cppcheck --enable=warning,style,performance,portability,information,missingInclude . + - fi + - + - if [ -e ./autogen.sh ]; then + - NOCONFIGURE=1 ./autogen.sh + - scan-build $CHECKERS ./configure --prefix=/usr --enable-gtk-doc --enable-compile-warnings=maximum + - elif [ -e ./CMakeLists.txt ]; then + - if [ ${DISTRO_NAME} == "debian" ];then + - scan-build $CHECKERS cmake . -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_VERBOSE_MAKEFILE=ON -DENABLE_TESTS=ON + - else + - scan-build $CHECKERS cmake . -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_VERBOSE_MAKEFILE=ON + - fi + - else + - exit 1 + - fi + - + - if [ $CPU_COUNT -gt 1 ]; then + - if [ ${DISTRO_NAME} == "debian" ];then + - scan-build $CHECKERS --keep-cc --use-cc=clang --use-c++=clang++ -o html-report make -j $CPU_COUNT + - make clean + - fi + - scan-build $CHECKERS --keep-cc -o html-report make -j $CPU_COUNT + - else + - if [ ${DISTRO_NAME} == "debian" ];then + - scan-build $CHECKERS --keep-cc --use-cc=clang --use-c++=clang++ -o html-report make + - make clean + - fi + - scan-build $CHECKERS --keep-cc -o html-report make + - fi + +after_scripts: + - if [ ${BUILD_TYPE} == "scripts" ];then + - XVFB_RUN="$(which xvfb-run || true)" + - if [ ${DISTRO_NAME} == "debian" ];then + - if [ -e ./autogen.sh ]; then + - ${XVFB_RUN} make check + - elif [ -e ./CMakeLists.txt ]; then + - ${XVFB_RUN} make test + - fi + - fi + - fi diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..5382638 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,43 @@ +# vim: set ts=2 sts=2 sw=2 expandtab : +dist: bionic +language: shell +os: linux + +arch: + - amd64 + - ppc64le + +services: + - docker + +addons: + apt: + packages: + - python3-pip + - python3-setuptools + +before_install: + # let's use the MATE project's docker build script... + - curl -Ls -o docker-build https://github.com/AyatanaIndicators/ayatana-dev-scripts/raw/master/travis/docker-build + - chmod +x docker-build + +install: + - pip3 install wheel + - pip3 install PyGithub + - ./docker-build --name ${DISTRO} --config .build.yml --install + +script: + - ./docker-build --name ${DISTRO} --verbose --config .build.yml --build scripts + +env: +# temp disable of archlinux builds, see https://gitlab.archlinux.org/archlinux/archlinux-docker/-/issues/56 +# - DISTRO="archlinux:latest" + - DISTRO="debian:testing" + - DISTRO="debian:stable" +# - DISTRO="ubuntu:rolling" + - DISTRO="ubuntu:focal" + +jobs: + exclude: + - env: DISTRO="archlinux:latest" + arch: ppc64le -- cgit v1.2.3 From 800cc787d343e9a78b9e4f7b146fa5b3effd6dbf Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Wed, 9 Jun 2021 12:11:47 +0200 Subject: tests/test-dbus-fixture.h: Turn TestDBusFixture::TestDBusFixture into an explicitly declared constructor. Resolves issues like these: In file included from /rootdir/tests/unit/rotation-lock-test.cpp:20: In file included from /rootdir/tests/utils/test-dbus-fixture.h:22: In file included from /rootdir/tests/utils/glib-fixture.h:30: In file included from /usr/src/googletest/googletest/include/gtest/gtest.h:62: /usr/src/googletest/googletest/include/gtest/internal/gtest-internal.h:472:44: error: call to implicitly-deleted default constructor of 'RotationLockFixture_CheckIndicator_Test' Test* CreateTest() override { return new TestClass; } ^ /rootdir/tests/unit/rotation-lock-test.cpp:46:1: note: in instantiation of member function 'testing::internal::TestFactoryImpl::CreateTest' requested here TEST_F(RotationLockFixture, CheckIndicator) ^ /usr/src/googletest/googletest/include/gtest/gtest.h:2381:3: note: expanded from macro 'TEST_F' GTEST_TEST_(test_fixture, test_name, test_fixture, \ ^ /usr/src/googletest/googletest/include/gtest/internal/gtest-internal.h:1565:15: note: expanded from macro 'GTEST_TEST_' new ::testing::internal::TestFactoryImpl:198:1: note: expanded from here RotationLockFixture_CheckIndicator_Test ^ /rootdir/tests/unit/rotation-lock-test.cpp:46:1: note: default constructor of 'RotationLockFixture_CheckIndicator_Test' is implicitly deleted because base class 'RotationLockFixture' has a deleted default constructor /usr/src/googletest/googletest/include/gtest/gtest.h:2381:3: note: expanded from macro 'TEST_F' GTEST_TEST_(test_fixture, test_name, test_fixture, \ ^ /usr/src/googletest/googletest/include/gtest/internal/gtest-internal.h:1542:9: note: expanded from macro 'GTEST_TEST_' : public parent_class { \ ^ /rootdir/tests/unit/rotation-lock-test.cpp:24:28: note: default constructor of 'RotationLockFixture' is implicitly deleted because base class 'TestDBusFixture' has a deleted default constructor class RotationLockFixture: public TestDBusFixture ^ /rootdir/tests/utils/test-dbus-fixture.h:32:5: note: explicitly defaulted function was implicitly deleted here TestDBusFixture() =default; ^ /rootdir/tests/utils/test-dbus-fixture.h:69:36: note: default constructor of 'TestDBusFixture' is implicitly deleted because field 'service_dirs' of const-qualified type 'const std::vector' (aka 'const vector>') would not be initialized const std::vector service_dirs; ^ 2 warnings and 1 error generated. --- tests/utils/test-dbus-fixture.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/utils/test-dbus-fixture.h b/tests/utils/test-dbus-fixture.h index 3947e58..b01405a 100644 --- a/tests/utils/test-dbus-fixture.h +++ b/tests/utils/test-dbus-fixture.h @@ -29,7 +29,7 @@ class TestDBusFixture: public GlibFixture { public: - TestDBusFixture() =default; + explicit TestDBusFixture() {}; virtual ~TestDBusFixture() =default; explicit TestDBusFixture(const std::vector& service_dirs_in): service_dirs(service_dirs_in) {} -- cgit v1.2.3 From 95d827e7d535a07f340418094a063854875a1f52 Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Wed, 9 Jun 2021 14:40:36 +0200 Subject: tests/CMakeLists.txt: Build unit tests with -no-pie CXXFLAG if GNU compiler is used. --- tests/CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 1fcc7fd..e2ea0e6 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,4 +1,7 @@ set(CMAKE_AUTOMOC ON) + +SET(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -no-pie") + find_package(GMock REQUIRED) find_package(Qt5Core REQUIRED) find_package(Qt5Test REQUIRED) -- cgit v1.2.3 From 3b76b0dece24700c74c226889bd7600f5814b8ac Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Wed, 4 Aug 2021 12:30:52 +0200 Subject: .build.yml: Enable CTEST_OUTPUT_ON_FAILURE for better cppcheck (et al.) debugging. --- .build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.build.yml b/.build.yml index fddd556..abc7800 100644 --- a/.build.yml +++ b/.build.yml @@ -127,7 +127,7 @@ after_scripts: - if [ -e ./autogen.sh ]; then - ${XVFB_RUN} make check - elif [ -e ./CMakeLists.txt ]; then - - ${XVFB_RUN} make test + - ${XVFB_RUN} env CTEST_OUTPUT_ON_FAILURE=1 make test - fi - fi - fi -- cgit v1.2.3 From 3336228bccde7de599e7f56b4b8b67b8552c6a95 Mon Sep 17 00:00:00 2001 From: Robert Tari Date: Tue, 3 Aug 2021 15:48:26 +0200 Subject: tests/CMakeLists.txt: Adjust cppcheck call so that it succeeds with less --suppress parameters. --- tests/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index e2ea0e6..42e6cb2 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -31,7 +31,7 @@ endif() add_compile_options(${CXX_WARNING_ARGS}) -add_test(cppcheck cppcheck --force --enable=all -USCHEMA_DIR --error-exitcode=2 --suppress=missingInclude --suppress=unusedFunction --library=qt --inline-suppr -I${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/tests) +add_test(cppcheck cppcheck --enable=all -USCHEMA_DIR --error-exitcode=2 --inline-suppr --library=qt -I${CMAKE_SOURCE_DIR} -i${CMAKE_SOURCE_DIR}/tests/utils/qmain.cpp -i${CMAKE_SOURCE_DIR}/tests/gmock ${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/tests --suppress=missingIncludeSystem) add_subdirectory(integration) add_subdirectory(unit) -- cgit v1.2.3