From cf37e826e910e46c72c7f7da4c84f23f4c0bd9b4 Mon Sep 17 00:00:00 2001 From: Markus Gans Date: Mon, 5 Jul 2021 02:19:23 +0200 Subject: [PATCH] Moving the test from Travis CI to GitHub Actions --- .github/workflows/arm.yml | 53 ++++++++ .github/workflows/codeql-analysis.yml | 2 +- .github/workflows/coverage.yml | 57 ++++++++ .github/workflows/coverity-scan.yml | 86 ++++++++++++ .github/workflows/cygwin.yml | 45 +++++++ .github/workflows/freebsd.yml | 36 +++++ .github/workflows/macos.yml | 37 +++++ .github/workflows/openbsd.yml | 38 ++++++ .github/workflows/solaris.yml | 33 +++++ .github/workflows/sonarcloud.yml | 61 +++++++++ .travis.yml | 187 -------------------------- sonar-project.properties | 4 + src/include/final/fmouse.h | 6 + test/ftermlinux-test.cpp | 1 + test/ftermopenbsd-test.cpp | 2 + 15 files changed, 460 insertions(+), 188 deletions(-) create mode 100644 .github/workflows/arm.yml create mode 100644 .github/workflows/coverage.yml create mode 100644 .github/workflows/coverity-scan.yml create mode 100644 .github/workflows/cygwin.yml create mode 100644 .github/workflows/freebsd.yml create mode 100644 .github/workflows/macos.yml create mode 100644 .github/workflows/openbsd.yml create mode 100644 .github/workflows/solaris.yml create mode 100644 .github/workflows/sonarcloud.yml delete mode 100644 .travis.yml diff --git a/.github/workflows/arm.yml b/.github/workflows/arm.yml new file mode 100644 index 00000000..36bc7166 --- /dev/null +++ b/.github/workflows/arm.yml @@ -0,0 +1,53 @@ +name: "ARM build" + +on: + push: + branches: [ main, actions-test ] + pull_request: + branches: [ main, actions-test ] + schedule: + - cron: '0 7 * * 2' + +jobs: + build: + runs-on: ubuntu-latest + name: Build on ${{ matrix.arch }} + + # Run steps on a matrix of 3 arch/distro combinations + strategy: + matrix: + include: + - arch: aarch64 + - arch: armv7 + + steps: + - name: Repository checkout + uses: actions/checkout@v2 + + - name: Before_install + run: | + lsb_release -a + uname -a + whoami + tty || echo + pwd + + - name: Install dependencies via apt-get + run: | + sudo add-apt-repository ppa:ubuntu-toolchain-r/test + sudo apt-get update + sudo apt-get -y install \ + ca-certificates \ + gcc \ + g++ \ + gpm \ + libgpm-dev \ + libcppunit-dev \ + autoconf-archive + + - name: Build + run: | + autoreconf -v --install --force + ./configure --prefix=/usr + make -j10 + diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 975a12d6..efeb1163 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -3,7 +3,7 @@ # # You may wish to alter this file to override the set of languages analyzed, # or to provide custom queries or build logic. -name: "CodeQL" +name: "CodeQL analysis" on: push: diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml new file mode 100644 index 00000000..5670e897 --- /dev/null +++ b/.github/workflows/coverage.yml @@ -0,0 +1,57 @@ +name: "Code coverage" + +on: + push: + branches: [ main, actions-test ] + pull_request: + branches: [ main, actions-test ] + schedule: + - cron: '0 7 * * 2' + +jobs: + analyze: + runs-on: ubuntu-latest + + env: + COVERALLS_REPO_TOKEN: "${{ secrets.COVERALLS_REPO_TOKEN }}" + + steps: + - name: Repository checkout + uses: actions/checkout@v2 + + - name: Before_install + run: | + lsb_release -a + uname -a + whoami + tty || echo + pwd + + - name: Install dependencies via apt-get + run: | + sudo add-apt-repository ppa:ubuntu-toolchain-r/test + sudo apt-get update + sudo apt-get -y install \ + ca-certificates \ + gcc \ + g++ \ + gpm \ + libgpm-dev \ + libcppunit-dev \ + autoconf-archive + + - name: Download coderalls + run: pip install --user cpp-coveralls + + - name: Download codecov + run: sudo pip install codecov + + - name: Build with with gcov + run: script -e -c "./build.sh coverage" + + - name: Coveralls + run: coveralls --gcov-options '\-lp' -e debian -e doc -e icon -e logo -e m4 -e scripts -e examples + + - name: Codecov + run: bash <(curl -s https://codecov.io/bash) + diff --git a/.github/workflows/coverity-scan.yml b/.github/workflows/coverity-scan.yml new file mode 100644 index 00000000..b1cac9ea --- /dev/null +++ b/.github/workflows/coverity-scan.yml @@ -0,0 +1,86 @@ +name: "Coverity Scan" + +on: + push: + branches: [ main, actions-test ] + pull_request: + branches: [ main, actions-test ] + schedule: + - cron: '0 7 * * 2' + +jobs: + analyze: + # Ubuntu 16.04 LTS will be removed on September 20, 2021 + runs-on: ubuntu-16.04 + #runs-on: ubuntu-18.04 + + env: + COVERITY_SCAN_BRANCH_PATTERN: "${{ github.ref}}" + COVERITY_SCAN_NOTIFICATION_EMAIL: "guru.mail@muenster.de" + COVERITY_SCAN_PROJECT_NAME: "${{ github.repository }}" + # Set in repo settings -> secrets -> repository secrets + COVERITY_SCAN_TOKEN: "${{ secrets.COVERITY_SCAN_TOKEN }}" + CURRENT_REF: "${{ github.ref }}" + + steps: + - name: Repository checkout + uses: actions/checkout@v2 + + - name: Before_install + run: | + lsb_release -a + uname -a + whoami + tty || echo + pwd + + - name: Download coverity scan build tool + run: | + wget -q https://scan.coverity.com/download/cxx/linux64 \ + --post-data "token=$COVERITY_SCAN_TOKEN&project=gansm%2Ffinalcut" \ + -O cov-analysis-linux64.tar.gz + mkdir cov-analysis-linux64 + tar xzf cov-analysis-linux64.tar.gz --strip 1 -C cov-analysis-linux64 + + - name: Install dependencies via apt-get + run: | + sudo add-apt-repository ppa:ubuntu-toolchain-r/test + sudo apt-get update + sudo apt-get -y install \ + ca-certificates \ + gcc \ + g++ \ + gpm \ + libgpm-dev \ + libcppunit-dev \ + autoconf-archive + + - name: Build with cov-build + run: | + export PATH=`pwd`/cov-analysis-linux64/bin:$PATH + cat cov-int/scm_log.txt || echo + autoreconf -v --install --force + ./configure --prefix=/usr \ + CPPFLAGS="-DDEBUG" \ + CXXFLAGS="-g -O0 -DDEBUG -DUNIT_TEST" \ + --with-unit-test + cov-build --dir cov-int make V=1 -j10 + + - name: Submit the result to Coverity Scan + run: | + tar czvf finalcut.tgz cov-int + curl \ + --form token=$COVERITY_SCAN_TOKEN \ + --form email=$COVERITY_SCAN_NOTIFICATION_EMAIL \ + --form file=@finalcut.tgz \ + --form version="main" \ + --form description="Build submitted via github action" \ + https://scan.coverity.com/builds?project=gansm%2Ffinalcut + + - name: Make unit test + run: | + script -e -c "make check" && RET=$? || RET=$? + cat test/*.log || echo + echo "Exit status: $RET" + exit "$RET" + diff --git a/.github/workflows/cygwin.yml b/.github/workflows/cygwin.yml new file mode 100644 index 00000000..38c0db65 --- /dev/null +++ b/.github/workflows/cygwin.yml @@ -0,0 +1,45 @@ +name: "Cygwin build" + +on: + push: + branches: [ main, actions-test ] + pull_request: + branches: [ main, actions-test ] + schedule: + - cron: '0 7 * * 2' + +jobs: + build: + runs-on: windows-latest + name: Build on ${{ matrix.platform }} + + strategy: + matrix: + platform: [x86, x64] + + steps: + - name: Install Cygwin + uses: egor-tensin/setup-cygwin@v3 + with: + platform: ${{ matrix.platform }} + install-dir: C:\cygwin + packages: git grep make libncurses-devel gcc-core gcc-g++ automake autoconf autoconf-archive libtool pkgconf cppunit + + - name: Test on Cygwin environment + run: | + uname -a + whoami + pwd + cygcheck -c -d # Show installed Cygwin packages + g++ --version + mkdir src && cd src + git clone git://github.com/gansm/finalcut.git + cd finalcut || echo "The source code directory was not found!" + autoreconf --force --install --verbose --warnings=all + automake --add-missing --copy + ./configure --prefix=/usr + make -j10 + shell: C:\cygwin\bin\bash.exe --login '{0}' + env: + SHELLOPTS: igncr + diff --git a/.github/workflows/freebsd.yml b/.github/workflows/freebsd.yml new file mode 100644 index 00000000..3b2b683f --- /dev/null +++ b/.github/workflows/freebsd.yml @@ -0,0 +1,36 @@ +name: "FreeBSD build" + +on: + push: + branches: [ main, actions-test ] + pull_request: + branches: [ main, actions-test ] + schedule: + - cron: '0 7 * * 2' + +jobs: + build: + runs-on: macos-10.15 + + steps: + - name: Repository checkout + uses: actions/checkout@v2 + + - name: Test on FreeBSD 12.2 + uses: cross-platform-actions/action@v0.0.1 + with: + operating_system: freebsd + version: 12.2 + shell: bash + run: | + uname -a + freebsd-version + whoami + pwd + sudo pkg update + sudo pkg install -y lang/gcc devel/autotools autotools automake autoconf autoconf-archive libtool pkgconf devel/ncurses devel/cppunit cppunit + g++ --version + autoreconf -v --install --force + ./configure --prefix=/usr + make -j10 + diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml new file mode 100644 index 00000000..d7d6525f --- /dev/null +++ b/.github/workflows/macos.yml @@ -0,0 +1,37 @@ +name: "macOS build" + +on: + push: + branches: [ main, actions-test ] + pull_request: + branches: [ main, actions-test ] + schedule: + - cron: '0 7 * * 2' + +jobs: + build: + runs-on: macos-latest + + steps: + - name: Repository checkout + uses: actions/checkout@v2 + + - name: Before_install + run: | + uname -a + g++ --version + whoami + pwd + + - name: Install dependencies via homebrew + run: | + brew update + brew install automake + brew install autoconf-archive + + - name: Build + run: | + autoreconf -v --install --force + ./configure --prefix=/usr + make -j10 + diff --git a/.github/workflows/openbsd.yml b/.github/workflows/openbsd.yml new file mode 100644 index 00000000..e8692889 --- /dev/null +++ b/.github/workflows/openbsd.yml @@ -0,0 +1,38 @@ +name: "OpenBSD build" + +on: + push: + branches: [ main, actions-test ] + pull_request: + branches: [ main, actions-test ] + schedule: + - cron: '0 7 * * 2' + +jobs: + build: + runs-on: macos-10.15 + + steps: + - name: Repository checkout + uses: actions/checkout@v2 + + - name: Test on OpenBSD 6.8 + uses: cross-platform-actions/action@v0.0.1 + with: + operating_system: openbsd + version: 6.8 + shell: bash + run: | + uname -a + whoami + pwd + # http://ftp.openbsd.org/pub/OpenBSD/6.8/packages/amd64/ + sudo pkg_add gcc-8.4.0 g++-8.4.0 automake-1.16.2 autoconf-2.69p3 autoconf-archive libtool pkgconf cppunit + export CXX=eg++ + export AUTOCONF_VERSION=2.69 + export AUTOMAKE_VERSION=1.16 + eg++ --version + autoreconf -v --install --force + ./configure --prefix=/usr + make -j10 + diff --git a/.github/workflows/solaris.yml b/.github/workflows/solaris.yml new file mode 100644 index 00000000..e7da57ce --- /dev/null +++ b/.github/workflows/solaris.yml @@ -0,0 +1,33 @@ +name: "Solaris build" + +on: + push: + branches: [ main, actions-test ] + pull_request: + branches: [ main, actions-test ] + schedule: + - cron: '0 7 * * 2' + +jobs: + build: + runs-on: macos-latest + + steps: + - name: Repository checkout + uses: actions/checkout@v2 + + - name: Test on Solaris 11.4 + uses: vmactions/solaris-vm@v0.0.3 + with: + prepare: pkgutil -y -i gcc5g++ automake autoconf autoconf_archive libtool pkgconfig libcppunit1_12_1 libcppunit_dev + run: | + uname -a + whoami + pwd + cat /etc/release + PATH=/opt/csw/bin:$PATH + export PATH + autoreconf -v --install --force + ./configure --prefix=/usr + make + diff --git a/.github/workflows/sonarcloud.yml b/.github/workflows/sonarcloud.yml new file mode 100644 index 00000000..3bee6be3 --- /dev/null +++ b/.github/workflows/sonarcloud.yml @@ -0,0 +1,61 @@ +name: "SonarCloud analysis" + +on: + push: + branches: [ main, actions-test ] + pull_request: + branches: [ main, actions-test ] + schedule: + - cron: '0 7 * * 2' + +jobs: + build: + runs-on: ubuntu-latest + + env: + GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" + SONAR_TOKEN: "${{ secrets.SONAR_TOKEN }}" + + steps: + - name: Repository checkout + uses: actions/checkout@v2 + with: + fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis + + - name: Before_install + run: | + lsb_release -a + uname -a + whoami + tty || echo + pwd + + - name: Install dependencies via apt-get + run: | + sudo add-apt-repository ppa:ubuntu-toolchain-r/test + sudo apt-get update + sudo apt-get -y install \ + ca-certificates \ + gcc \ + g++ \ + gpm \ + wget \ + unzip \ + libgpm-dev \ + libcppunit-dev \ + autoconf-archive + + - name: Build with SonarCloud + run: | + wget -q "https://sonarcloud.io/static/cpp/build-wrapper-linux-x86.zip" + unzip -q "build-wrapper-linux-x86.zip" -d "/tmp" || echo + LATEST_VERSION=$(wget -O- https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/ 2>/dev/null | grep 'linux.zip"' | cut -d\" -f2 | tail -n1) + wget -q "https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/$LATEST_VERSION" + unzip -q "$LATEST_VERSION" -d "/tmp" || echo + echo "sonar.host.url=https://sonarcloud.io" >> /tmp/sonar-scanner-*/conf/sonar-scanner.properties + mkdir /tmp/sonar-cache + autoreconf -v --install --force + ./configure --prefix=/usr + /tmp/build-wrapper-linux-x86/build-wrapper-linux-x86-64 --out-dir bw-output make all + /tmp/sonar-scanner-4.6.2.2472-linux/bin/sonar-scanner + diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index eebbc2d4..00000000 --- a/.travis.yml +++ /dev/null @@ -1,187 +0,0 @@ -language: cpp -dist: xenial -compiler: - - gcc - -addons: - apt: - packages: - - g++ - - autotools-dev - - automake - - autoconf - - autoconf-archive - - libtool - - pkg-config - - libglib2.0-dev - - libncurses5-dev - - gpm - - libgpm-dev - - gperf - - libcppunit-dev - homebrew: - packages: - - autoconf-archive - update: true - -env: - global: - # The next declaration is the encrypted COVERITY_SCAN_TOKEN, created - # via the "travis encrypt" command using the project repo's public key - - secure: |- - wvCvMaIm7LoSyWHmpRXvJIetdMnJKsLLxuon6r6BSfpyimoz5FIMEhNhfSt2psv8tJHZgN - /FcMcLhnTuTMIjvtlEtb3syfHDaNs7S2q3rm6LCmuIUU4ECAwAorkMQbXcyh5rgPlDMDiw - CyBE8O1yFQebAFxRoP181+0uI2IiIP/8EW3P5PDSQzds+9fnnwrFS+OeBoUZfxT0F2kj2f - kMXZN4+KmeVIrkqtj8hlRcicLgBPm4hrK5IEUcFLtAbzPj72wkV1duiYG6kqDsATmzMK0m - 5EuMhQ/nL/rbSjhrcRZzPFQ7P31ToSwg1I6cyhMjyXSbpwdppZ/RSwTpqDCdq9l4bDDmvI - qizdwYZKcDtyHxm4Zl/LZKwWDsGEelcmuJKfdu+QuTgInGNlqulmDykvbsrk9jTimIzHTb - F8TOn9IpANlTWmvunGeOarvR9qJReZcwSMq41hdMbsUdHiC1arZjKvINcPVuwikzaNq4iA - te6mtSdrfdx1wLxQ6ZYNgKd9hz+uUTlBYl80hkATmq0NPnPQw2KzyG9E6nLrKOy2M0ozO8 - bL/epiiMBKJ37X1UcRU4WZYq+peLME8EefcPcXOSWNLwJtR7mtON8uMBrLL9CWmRMFD5Hy - lQYALW2DhCnDBROKB3gxB/VkBGFNE0IPGeDtBGbLqDtKWPQoL125I= - -jobs: - include: - # - # Coverity Scan - # - - os: linux - env: - - TEST="Coverity Scan" - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - ca-certificates - - gcc - - g++ - - gpm - - libgpm-dev - - libcppunit-dev - - autoconf-archive - coverity_scan: - project: - name: gansm/finalcut - description: Build submitted via Travis CI - notification_email: guru.mail@muenster.de - build_command_prepend: "autoreconf -v --install --force && ./configure --prefix=/usr CPPFLAGS='-DDEBUG' CXXFLAGS='-g -O0 -DDEBUG -DUNIT_TEST' --with-unit-test && make clean" - build_command: "make V=1 -j10" - branch_pattern: main - before_install: - - lsb_release -a - - uname -a - - whoami - - echo -n | openssl s_client -CApath /etc/ssl/certs/ -connect scan.coverity.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | sudo tee -a /etc/ssl/certs/ca-certificates.crt - script: - - cat /home/travis/build/gansm/finalcut/cov-int/scm_log.txt || echo - - autoreconf -v --install --force - - ./configure --prefix=/usr CPPFLAGS="-DDEBUG" CXXFLAGS="-g -O0 -DDEBUG -DUNIT_TEST" --with-unit-test - - make V=1 -j10 - - make check - - cat test/*.log || echo - - # - # Coveralls + Codecov - # - - os: linux - env: - - TEST="Coveralls" - before_install: - - lsb_release -a - - uname -a - - pip install --user cpp-coveralls - - sudo pip install codecov - script: - - ./build.sh coverage - after_success: - - coveralls --gcov-options '\-lp' -e debian -e doc -e icon -e logo -e m4 -e scripts -e examples - - bash <(curl -s https://codecov.io/bash) - - # - # SonarCloud - # - - os: linux - env: - - TEST="sonarcloud" - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - ca-certificates - - gcc - - g++ - - gpm - - libgpm-dev - - libcppunit-dev - - autoconf-archive - sonarcloud: - organization: "gansm" - token: - secure: |- - Vai4Z9BoLsCdrtra5bP/xM8uZnMLKXWS3AH0Z6NnP6bBIa7o9i44Hg5b80P5yL3w - 22NgZcX5BrPNhTFbbsulw+F8OdnDETV1bxrDkAVaLGlw+pVjBFNhwXZzyHTx7rsX - GQ/5ry1gIclRlyUO6atW5zQsImAPkTuMv6fFzjgiN1z5vheOTjOKpKqVZNWOURJT - kKgSqiPgHMlR8JLqlHJ/322YVjOOwTLNPrHV6/TrWFrIHI3nChYYX60394sTzKrv - XkU0uvoiJts0cEk97AWcWEfq5TkF1X9604UOZRifNps9kfNZOHjgUuFUvvo3WE8W - ek9LU/0Ec9kViJEASsSE6VzNXWDqu+VkqisJwchUkn6OxoDILSkJpceco/Rx4dAO - phMSgXjCCsvz5igniVyFUixoBvGo4D1bLO6zZPDVxXMDMhpzQKqwqkJo6FYcl109 - rni9IuLvMFDAwUuzCbXlbjSPvdOoDiq+8NY1A0TOtTp4z4q9NCPr6TlCcKrazqnN - Xz4Nxo8xZCHxaH7CaXjBmh91Wp5aIzbwJS9fg6A7e2Is1HJm9YW1j3akBjzT//kE - GhOEiXesrPvH5c9XxyO8ZgnkYjNBAES/9aUn8NZBPgQqcUhWAAe1r9fH4iy3Zj+/ - 26IUvLfJ05uf1yEAzR9/xDIJFF7Heg1FRtzd6IiAdQ4= - script: - - autoreconf -v --install --force - - ./configure --prefix=/usr - - build-wrapper-linux-x86-64 --out-dir bw-output make all - - sonar-scanner - cache: - directories: - - '$HOME/.sonar/cache' - - # - # macOS - # - - os: osx - osx_image: xcode11 - env: - - TEST="macOS" - before_install: - - uname -a - - g++ --version - script: - - autoreconf -v --install --force - - ./configure --prefix=/usr - - make -j10 - - # - # FreeBSD - # - - os: freebsd - env: - - TEST="FreeBSD" - before_install: - - uname -a - - g++ --version - - sudo pkg install -y autoconf-archive - script: - - autoreconf -v --install --force - - ./configure --prefix=/usr - - make -j10 - - # - # Linux ARM64 build - # - - arch: arm64 - os: linux - env: - - TEST="ARM64" - before_install: - - uname -a - - g++ --version - script: - - autoreconf -v --install --force - - ./configure --prefix=/usr - - make -j10 - diff --git a/sonar-project.properties b/sonar-project.properties index f2fa6976..9e1000c9 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -1,3 +1,4 @@ +sonar.organization=gansm sonar.projectKey=gansm_finalcut sonar.projectName=finalcut sonar.projectVersion=0.7.2 @@ -16,6 +17,9 @@ sonar.links.issue=https://github.com/gansm/finalcut/issues #---------------------------------------------------------------------- sonar.sources=. sonar.cfamily.build-wrapper-output=bw-output +sonar.cfamily.threads=2 +sonar.cfamily.cache.enabled=true +sonar.cfamily.cache.path=/tmp/sonar-cache sonar.exclusions=src/include/final/fconfig.h sonar.coverage.exclusions=**/** diff --git a/src/include/final/fmouse.h b/src/include/final/fmouse.h index af15f1ac..34d46acd 100644 --- a/src/include/final/fmouse.h +++ b/src/include/final/fmouse.h @@ -98,12 +98,18 @@ class FMouseData // Copy constructor FMouseData (const FMouseData&) = default; + // Move constructor + FMouseData (FMouseData&&) noexcept = default; + // Destructor virtual ~FMouseData() noexcept; // copy assignment operator (=) FMouseData& operator = (const FMouseData&) = default; + // Move assignment operator (=) + FMouseData& operator = (FMouseData&&) noexcept = default; + // Accessors virtual FString getClassName() const; const FPoint& getPos() const; diff --git a/test/ftermlinux-test.cpp b/test/ftermlinux-test.cpp index e5b5ef12..954e199a 100644 --- a/test/ftermlinux-test.cpp +++ b/test/ftermlinux-test.cpp @@ -2097,6 +2097,7 @@ void FTermLinuxTest::linuxConsoleTest() data.setVGAFont (false); data.setMonochron (false); data.setTermResized (false); + setenv ("TERM", "linux", 1); auto& term_detection = finalcut::FTermDetection::getInstance(); finalcut::FTermLinux linux; diff --git a/test/ftermopenbsd-test.cpp b/test/ftermopenbsd-test.cpp index c2546d9c..8d711dbb 100644 --- a/test/ftermopenbsd-test.cpp +++ b/test/ftermopenbsd-test.cpp @@ -371,6 +371,7 @@ void ftermopenbsdTest::netbsdConsoleTest() data.setVGAFont (false); data.setMonochron (false); data.setTermResized (false); + setenv ("TERM", "wsvt25", 1); // setupterm is needed for tputs in ncurses >= 6.1 setupterm (static_cast(0), 1, static_cast(0)); @@ -476,6 +477,7 @@ void ftermopenbsdTest::openbsdConsoleTest() data.setVGAFont (false); data.setMonochron (false); data.setTermResized (false); + setenv ("TERM", "vt220", 1); // setupterm is needed for tputs in ncurses >= 6.1 setupterm (static_cast(0), 1, static_cast(0));