From f05c2f348a36f49a65375aba1b2cd35f932a6c0e Mon Sep 17 00:00:00 2001 From: Mike FABIAN Date: Tue, 10 Oct 2023 17:56:14 +0200 Subject: [PATCH] Use tmt and fix the CI tests Resolves: RHEL-2237 --- .fmf/version | 1 + plans/basic.fmf | 9 ++ tests/main.fmf | 54 ++++++++++ .../defaults/main.yml | 35 ------ .../ibus-desktop-testing-role/meta/main.yml | 4 - .../ibus-desktop-testing-role/tasks/main.yml | 101 ------------------ tests/runtest.sh | 48 +++++++++ tests/tests.yml | 8 -- 8 files changed, 112 insertions(+), 148 deletions(-) create mode 100644 .fmf/version create mode 100644 plans/basic.fmf create mode 100644 tests/main.fmf delete mode 100644 tests/roles/ibus-desktop-testing-role/defaults/main.yml delete mode 100644 tests/roles/ibus-desktop-testing-role/meta/main.yml delete mode 100644 tests/roles/ibus-desktop-testing-role/tasks/main.yml create mode 100755 tests/runtest.sh delete mode 100644 tests/tests.yml diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/plans/basic.fmf b/plans/basic.fmf new file mode 100644 index 0000000..574bc78 --- /dev/null +++ b/plans/basic.fmf @@ -0,0 +1,9 @@ +summary: Basic smoke test +discover: + how: fmf +execute: + how: tmt +prepare: + how: shell + script: + - dnf config-manager --enable rhel-CRB --enable rhel-buildroot diff --git a/tests/main.fmf b/tests/main.fmf new file mode 100644 index 0000000..10c10d7 --- /dev/null +++ b/tests/main.fmf @@ -0,0 +1,54 @@ +test: ./runtest.sh +duration: 50m +framework: beakerlib +require: + # This stuff is only needed if gnome-desktop-testing + # cannot be required as a package and needs to be cloned + # from the git repo and build from source: + - git + - make + - gcc + - diffutils + - autoconf + - automake + - libtool + - glib2-devel + - systemd-devel + # Other requirements: + - gnome-session + - gnome-shell + - dbus-x11 + - xorg-x11-server-Xvfb + - ibus + - ibus-devel + - ibus-desktop-testing + - ibus-typing-booster + - ibus-typing-booster-tests + - rsync + - m17n-lib + - m17n-db-extras + - python3-enchant + - libappstream-glib + - desktop-file-utils + - python3-gobject + - python3-gobject-base + - hunspell-cs + - hunspell-de + - hunspell-en + - hunspell-es + - hunspell-fr + - hunspell-it + - hunspell-ko + - dconf + - python3-devel + - python3-pyxdg + - glibc-langpack-en + - glibc-langpack-cs + - glibc-langpack-km + - glibc-langpack-pt + - glibc-langpack-am + - glibc-langpack-de + - glibc-langpack-ar +recommend: + # this is not available on RHEL9 + - gnome-desktop-testing diff --git a/tests/roles/ibus-desktop-testing-role/defaults/main.yml b/tests/roles/ibus-desktop-testing-role/defaults/main.yml deleted file mode 100644 index d1205f6..0000000 --- a/tests/roles/ibus-desktop-testing-role/defaults/main.yml +++ /dev/null @@ -1,35 +0,0 @@ -role_pkgs_req: - - rsync - - xorg-x11-server-Xvfb - - m17n-lib - - m17n-db-extras - - python3-enchant - - libappstream-glib - - desktop-file-utils - - python3-mock - - python3-gobject - - python3-gobject-base - - hunspell-cs - - hunspell-de - - hunspell-en - - hunspell-es - - hunspell-fr - - hunspell-it - - hunspell-ko - - glib2 - - gtk3 - - dconf - - dbus-x11 - - ibus - - ibus-devel - - gcc - - python3-devel - - python3-pyxdg - - xorg-x11-server-Xvfb - - glibc-langpack-en - - glibc-langpack-cs - - glibc-langpack-km - - glibc-langpack-pt - - glibc-langpack-am - - glibc-langpack-de - - glibc-langpack-ar diff --git a/tests/roles/ibus-desktop-testing-role/meta/main.yml b/tests/roles/ibus-desktop-testing-role/meta/main.yml deleted file mode 100644 index 6626402..0000000 --- a/tests/roles/ibus-desktop-testing-role/meta/main.yml +++ /dev/null @@ -1,4 +0,0 @@ ---- - -dependencies: - - role: str-common-init diff --git a/tests/roles/ibus-desktop-testing-role/tasks/main.yml b/tests/roles/ibus-desktop-testing-role/tasks/main.yml deleted file mode 100644 index 599620b..0000000 --- a/tests/roles/ibus-desktop-testing-role/tasks/main.yml +++ /dev/null @@ -1,101 +0,0 @@ ---- -- name: Check if GNOME installed-tests testing harness is installed - register: gnome_desktop_testing_runner - find: - paths: "{{ ansible_env.PATH.split(':') }}" - pattern: gnome-desktop-testing-runner - -- name: Build and install GNOME installed-tests testing harness - when: gnome_desktop_testing_runner.matched == 0 - block: - - name: Installing build dependencies for IBus and GNOME installed-tests testing harness - package: - name: - - git - - make - - gcc - - diffutils - - autoconf - - automake - - libtool - - glib2-devel - - systemd-devel - - gnome-session - - gnome-shell - - dbus-x11 - - xorg-x11-server-Xvfb - - ibus - - ibus-desktop-testing - - ibus-typing-booster-tests - - - name: Fetching GNOME installed-tests testing harness source from remote repository - git: - repo: 'https://gitlab.gnome.org/GNOME/gnome-desktop-testing.git' - dest: gnome-desktop-testing - force: yes - - - name: Configure GNOME installed-tests testing harness build - command: ./autogen.sh --prefix=/usr --sysconfdir=/etc --localstatedir=/var - args: - chdir: gnome-desktop-testing - - - name: Build GNOME installed-tests testing harness - command: make - args: - chdir: gnome-desktop-testing - - - name: Install GNOME installed-tests testing harness - command: make install - args: - chdir: gnome-desktop-testing - -- name: Start IBus installed-tests testing harness - environment: - ANSIBLE: 1 - TMPDIR: '{{ remote_artifacts }}' - G_MESSAGES_DEBUG: 'all' - block: - - name: Execute IBus typing booster tests - shell: | - set -e - status="FAIL: frame" - ibus-desktop-testing-runner \ - --no-graphics \ - --runner=gnome \ - --timeout=1200 \ - --tests='{{ installed_test_name }}' \ - --output='{{ remote_artifacts }}/{{ installed_test_name }}.log' \ - --result='{{ remote_artifacts }}/test.log' \ - null - if [ $? -eq 0 ]; then - status="PASS: frame" - fi - echo "${status} $TEST" >> {{ remote_artifacts }}/test.log - - - name: Check the results - shell: | - log="{{ remote_artifacts }}/test.log" - if [ ! -f $log ] ; then - echo ERROR - exit 1 - else - FAIL=`grep "^FAIL: " $log | grep -v 'FAIL: 0$'` - if [ x"$FAIL" != x ] ; then - echo ERROR - exit 1 - else - echo PASS - fi - fi - register: test_fails - #failed_when: False - - - name: Set role result - set_fact: - role_result: "{{ test_fails.stdout }}" - role_result_failed: "{{ (test_fails.stdout|d|length > 0) or (test_fails.stderr|d|length > 0) }}" - role_result_msg: "{{ test_fails.stdout|d('tests failed.') }}" - - - include_role: - name: str-common-final - diff --git a/tests/runtest.sh b/tests/runtest.sh new file mode 100755 index 0000000..b8b72bc --- /dev/null +++ b/tests/runtest.sh @@ -0,0 +1,48 @@ +#!/bin/bash +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +NAME=ibus-typing-booster + +rlJournalStart + rlPhaseStartSetup + rlAssertRpm ${NAME} + rlRun "tmp=\$(mktemp -d)" 0 "Create tmp directory" + rlRun "pushd $tmp" + if ! rlCheckRpm gnome-desktop-testing; then + echo "gnome-desktop-testing is not available." + echo "Trying to download and compile it:" + git clone https://gitlab.gnome.org/GNOME/gnome-desktop-testing.git + pushd gnome-desktop-testing + git checkout v2021.1 + ./autogen.sh --prefix=/usr --sysconfdir=/etc --localstatedir=/var + make + make install + popd + fi + rlPhaseEnd + + rlPhaseStartTest + rlRun "ibus-desktop-testing-runner \ + --no-graphics \ + --runner=gnome \ + --timeout=1500 \ + --tests=${NAME} \ + --output=${NAME}.log \ + --result=test.log \ + " 0 "Running ${NAME} tests" + echo "==== ${NAME}.log: ====" + cat ${NAME}.log + echo "==== EOF ${NAME}.log: ====" + echo "==== test.log ====" + cat test.log + echo "==== EOF test.log: ====" + rlAssertNotGrep "FAIL: 1" test.log + rlFileSubmit ${NAME}.log + rlFileSubmit test.log + rlPhaseEnd + + rlPhaseStartCleanup + rlRun "popd" + rlRun "rm -r $tmp" 0 "Remove tmp directory" + rlPhaseEnd +rlJournalEnd diff --git a/tests/tests.yml b/tests/tests.yml deleted file mode 100644 index 4a7fba3..0000000 --- a/tests/tests.yml +++ /dev/null @@ -1,8 +0,0 @@ -- hosts: localhost - roles: - - role: ibus-desktop-testing-role - installed_test_name: ibus-typing-booster - tags: - - classic - - gating -