Switch integration test to qt6 (#1916)

Keep using Qt5 for Cygwin and CodeQL

* CI: upgrade ubuntu
This commit is contained in:
Alexey Sokolov
2024-09-17 15:24:33 +01:00
committed by GitHub
parent 0506e95a74
commit 9e9d75c4b8
9 changed files with 48 additions and 24 deletions
+2 -2
View File
@@ -18,7 +18,7 @@ install:
build_script:
- git submodule update --init
- mkdir build
- c:\cygwin-root\bin\sh -lc "cd $APPVEYOR_BUILD_FOLDER/build; ../configure --enable-charset --enable-zlib --enable-openssl --enable-perl --enable-python --enable-cyrus --enable-argon < /dev/null; result=$?; cmake --system-information > config.log; appveyor PushArtifact config.log; exit $result"
- c:\cygwin-root\bin\sh -lc "cd $APPVEYOR_BUILD_FOLDER/build; env ZNC_QT_VER=5 ../configure --enable-charset --enable-zlib --enable-openssl --enable-perl --enable-python --enable-cyrus --enable-argon < /dev/null; result=$?; cmake --system-information > config.log; appveyor PushArtifact config.log; exit $result"
- c:\cygwin-root\bin\sh -lc "cd $APPVEYOR_BUILD_FOLDER/build; make VERBOSE=1 -j2 < /dev/null"
- c:\cygwin-root\bin\sh -lc "cd $APPVEYOR_BUILD_FOLDER/build; make install < /dev/null"
- c:\cygwin-root\bin\sh -lc "znc --version"
@@ -27,4 +27,4 @@ build_script:
- c:\cygwin-root\bin\sh -lc "rebase -s -v $(cat /tmp/files-to-rebase)"
test_script:
- c:\cygwin-root\bin\sh -lc "cd $APPVEYOR_BUILD_FOLDER/build; make VERBOSE=1 unittest < /dev/null"
- c:\cygwin-root\bin\sh -lc "cd $APPVEYOR_BUILD_FOLDER/build; make VERBOSE=1 inttest < /dev/null"
- c:\cygwin-root\bin\sh -lc "cd $APPVEYOR_BUILD_FOLDER/build; env ZNC_QT_VER=5 make VERBOSE=1 inttest < /dev/null"
+2 -2
View File
@@ -6,7 +6,7 @@ ls -la
cpanm --local-lib=~/perl5 local::lib
eval $(perl -I ~/perl5/lib/perl5/ -Mlocal::lib)
cpanm --notest Devel::Cover::Report::Clover
pip3 install --user coverage
pip3 install --user --break-system-packages coverage
export ZNC_MODPERL_COVERAGE=1
#export ZNC_MODPYTHON_COVERAGE=1
@@ -39,7 +39,7 @@ ls -lRa
case "${CC:-gcc}" in
gcc)
lcov --directory . --capture --output-file lcov-coverage.txt
lcov --directory . --capture --output-file lcov-coverage.txt --ignore-errors mismatch
lcov --list lcov-coverage.txt
;;
clang)
+1 -1
View File
@@ -1,4 +1,4 @@
sudo apt-get update
sudo apt-get install -y tcl-dev libsasl2-dev libicu-dev swig qtbase5-dev libboost-locale-dev libperl-dev libargon2-dev cpanminus gettext clang llvm lcov
sudo apt-get install -y tcl-dev libsasl2-dev libicu-dev swig qt6-base-dev libboost-locale-dev libperl-dev libargon2-dev cpanminus gettext clang llvm lcov
sudo apt-get upgrade -y
+6 -6
View File
@@ -6,7 +6,7 @@ on:
jobs:
gcc:
name: GCC
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
with:
@@ -23,7 +23,7 @@ jobs:
tarball:
name: Tarball
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
with:
@@ -48,7 +48,7 @@ jobs:
# can be removed when asan below is fixed
clang:
name: Clang
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
env:
CXX: clang++
CC: clang
@@ -69,7 +69,7 @@ jobs:
#clang_asan:
#name: Clang ASAN
#runs-on: ubuntu-20.04
#runs-on: ubuntu-24.04
#env:
#CXX: clang++
#CC: clang
@@ -85,7 +85,7 @@ jobs:
#clang_tsan:
#name: Clang TSAN
#runs-on: ubuntu-20.04
#runs-on: ubuntu-24.04
#env:
#CXX: clang++
#CC: clang
@@ -119,7 +119,7 @@ jobs:
submodules: true
- run: |
brew update
brew install icu4c qt5 gettext pkg-config cpanminus boost
brew install icu4c qt6 gettext pkg-config cpanminus boost argon2 swig
- run: source .github/build.sh
- uses: codecov/codecov-action@v3
+8 -3
View File
@@ -2,7 +2,7 @@ name: "CodeQL"
on:
push:
branches: [ 'master', '1.6.x' ]
branches: [ 'master', '1.9.x' ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ 'master' ]
@@ -12,7 +12,7 @@ on:
jobs:
analyze:
name: Analyze
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
permissions:
actions: read
contents: read
@@ -28,7 +28,10 @@ jobs:
uses: actions/checkout@v4
with:
submodules: true
- run: source .github/ubuntu_deps.sh
- run: |
source .github/ubuntu_deps.sh
sudo apt-get remove -y qt6-base-dev
sudo apt-get install -y qtbase5-dev
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
@@ -36,6 +39,8 @@ jobs:
languages: ${{ matrix.language }}
- run: source .github/build.sh
env:
ZNC_QT_VER: "5"
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
+11 -6
View File
@@ -54,12 +54,17 @@ if(brew_python_f EQUAL 0)
"${brew_python}/Frameworks/Python.framework")
endif()
execute_process(COMMAND "${brew}" --prefix qt5
RESULT_VARIABLE brew_qt5_f
OUTPUT_VARIABLE brew_qt5 OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET)
if(brew_qt5_f EQUAL 0)
find_package_message(brew_qt5 "Qt5 via Homebrew: ${brew_qt5}"
"${brew_qt5}")
if(DEFINED ENV{ZNC_QT_VER})
set(ZNC_QT_VER $ENV{ZNC_QT_VER})
else()
set(ZNC_QT_VER 6)
endif()
execute_process(COMMAND "${brew}" --prefix qt${ZNC_QT_VER}
RESULT_VARIABLE brew_qt_f
OUTPUT_VARIABLE brew_qt OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET)
if(brew_qt_f EQUAL 0)
find_package_message(brew_qt "Qt via Homebrew: ${brew_qt}"
"${brew_qt}")
endif()
execute_process(COMMAND "${brew}" --prefix gettext
+1 -1
View File
@@ -90,7 +90,7 @@ externalproject_add(inttest_bin
"-DGTEST_ROOT:path=${GTEST_ROOT}"
"-DGMOCK_ROOT:path=${GMOCK_ROOT}"
"-DZNC_BIN_DIR:path=${CMAKE_INSTALL_FULL_BINDIR}"
"-DQt5_HINTS:path=${brew_qt5}")
"-DQt_HINTS:path=${brew_qt}")
add_custom_target(inttest COMMAND
# MAKEFLAGS:
# Prevent a warning from test of znc-buildmod, when inner make
+8 -2
View File
@@ -24,7 +24,13 @@ set(CMAKE_THREAD_PREFER_PTHREAD true)
set(THREADS_PREFER_PTHREAD_FLAG true)
find_package(Threads REQUIRED)
find_package(Qt5Network 5.4 REQUIRED HINTS ${Qt5_HINTS})
if(DEFINED ENV{ZNC_QT_VER})
set(ZNC_QT_VER $ENV{ZNC_QT_VER})
else()
set(ZNC_QT_VER 6)
endif()
find_package(Qt${ZNC_QT_VER}Network 5.4 REQUIRED HINTS ${Qt_HINTS})
# Force the simple internal regex engine to get consistent behavior on all
# platforms. See
@@ -42,7 +48,7 @@ add_executable(inttest
"${GTEST_ROOT}/src/gtest-all.cc"
"${GMOCK_ROOT}/src/gmock-all.cc")
target_link_libraries(inttest Qt5::Network Threads::Threads)
target_link_libraries(inttest Qt${ZNC_QT_VER}::Network Threads::Threads)
target_include_directories(inttest PUBLIC
"${PROJECT_SOURCE_DIR}/framework"
"${PROJECT_BINARY_DIR}"
+9 -1
View File
@@ -14,6 +14,7 @@
* limitations under the License.
*/
#include <QRegularExpression>
#include "znctest.h"
#ifndef ZNC_BIN_DIR
@@ -119,6 +120,12 @@ std::unique_ptr<QNetworkReply> ZNCTest::HandleHttp(QNetworkReply* reply) {
std::cout << "Got HTTP reply" << std::endl;
loop.quit();
});
#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
QObject::connect(reply, &QNetworkReply::errorOccurred,
[&](QNetworkReply::NetworkError e) {
ADD_FAILURE() << reply->errorString().toStdString();
});
#else
QObject::connect(
reply,
static_cast<void (QNetworkReply::*)(QNetworkReply::NetworkError)>(
@@ -126,6 +133,7 @@ std::unique_ptr<QNetworkReply> ZNCTest::HandleHttp(QNetworkReply* reply) {
[&](QNetworkReply::NetworkError e) {
ADD_FAILURE() << reply->errorString().toStdString();
});
#endif
QTimer::singleShot(30000 /* msec */, &loop, [&]() {
ADD_FAILURE() << "connection timeout";
loop.quit();
@@ -160,7 +168,7 @@ void ZNCTest::InstallModule(QString name, QString content) {
QStringList lines = content.split("\n");
int maxoffset = -1;
for (const QString& line : lines) {
int nonspace = line.indexOf(QRegExp("\\S"));
int nonspace = line.indexOf(QRegularExpression("\\S"));
if (nonspace == -1) continue;
if (nonspace < maxoffset || maxoffset == -1) maxoffset = nonspace;
}