Fixed wayland tests/PGO, enable PGO on Fedora 33+

This commit is contained in:
Martin Stransky 2021-04-04 18:51:01 +02:00
parent bbea15a874
commit 9869746357
3 changed files with 74 additions and 68 deletions

View File

@ -20,8 +20,7 @@
%global system_nss 1 %global system_nss 1
%global build_with_clang 0 %global build_with_clang 0
%global build_with_asan 0 %global build_with_asan 0
%global test_offscreen 1 %global test_on_wayland 1
%global test_on_wayland 0
# There are still build problems on s390x, see # There are still build problems on s390x, see
# https://koji.fedoraproject.org/koji/taskinfo?taskID=55048351 # https://koji.fedoraproject.org/koji/taskinfo?taskID=55048351
@ -79,11 +78,6 @@ ExcludeArch: armv7hl
%global build_with_pgo 1 %global build_with_pgo 1
%endif %endif
%endif %endif
# Disable PGO on Rawhide due to
# https://bugzilla.redhat.com/show_bug.cgi?id=1922600
%if 0%{?fedora} > 33
%global build_with_pgo 0
%endif
%if 0%{?flatpak} %if 0%{?flatpak}
%global build_with_pgo 0 %global build_with_pgo 0
%endif %endif
@ -103,10 +97,10 @@ ExcludeArch: armv7hl
%endif %endif
%global launch_wayland_compositor 0 %global launch_wayland_compositor 0
%if %{build_with_pgo} && %{test_offscreen} && %{test_on_wayland} %if %{build_with_pgo} && %{test_on_wayland}
%global launch_wayland_compositor 1 %global launch_wayland_compositor 1
%endif %endif
%if %{run_firefox_tests} && %{test_offscreen} && %{test_on_wayland} %if %{run_firefox_tests} && %{test_on_wayland}
%global launch_wayland_compositor 1 %global launch_wayland_compositor 1
%endif %endif
@ -160,7 +154,7 @@ ExcludeArch: armv7hl
Summary: Mozilla Firefox Web browser Summary: Mozilla Firefox Web browser
Name: firefox Name: firefox
Version: 87.0 Version: 87.0
Release: 9%{?pre_tag}%{?dist} Release: 10%{?pre_tag}%{?dist}
URL: https://www.mozilla.org/firefox/ URL: https://www.mozilla.org/firefox/
License: MPLv1.1 or GPLv2+ or LGPLv2+ License: MPLv1.1 or GPLv2+ or LGPLv2+
Source0: https://archive.mozilla.org/pub/firefox/releases/%{version}%{?pre_version}/source/firefox-%{version}%{?pre_version}.source.tar.xz Source0: https://archive.mozilla.org/pub/firefox/releases/%{version}%{?pre_version}/source/firefox-%{version}%{?pre_version}.source.tar.xz
@ -193,6 +187,7 @@ Source41: run-tests-wayland
Source42: psummary Source42: psummary
Source43: print_failures Source43: print_failures
Source44: print-error-reftest Source44: print-error-reftest
Source45: run-wayland-compositor
# Build patches # Build patches
Patch3: mozilla-build-arm.patch Patch3: mozilla-build-arm.patch
@ -744,19 +739,13 @@ export MACH_USE_SYSTEM_PYTHON=1
export MACH_NO_WRITE_TIMES=1 export MACH_NO_WRITE_TIMES=1
%if %{launch_wayland_compositor} %if %{launch_wayland_compositor}
if [ -z "$XDG_RUNTIME_DIR" ]; then cp %{SOURCE45} .
export XDG_RUNTIME_DIR=$HOME . ./run-wayland-compositor
fi
xvfb-run mutter --wayland --nested &
if [ -z "$WAYLAND_DISPLAY" ]; then
export WAYLAND_DISPLAY=wayland-0
else
export WAYLAND_DISPLAY=wayland-1
fi
%endif %endif
%if %{build_with_pgo} %if %{build_with_pgo}
%if %{test_on_wayland} %if %{test_on_wayland}
env | grep "WAYLAND"
MOZ_ENABLE_WAYLAND=1 ./mach build 2>&1 | cat - MOZ_ENABLE_WAYLAND=1 ./mach build 2>&1 | cat -
%else %else
xvfb-run ./mach build 2>&1 | cat - xvfb-run ./mach build 2>&1 | cat -
@ -782,7 +771,7 @@ tar xf %{SOURCE37}
cp %{SOURCE40} %{SOURCE41} %{SOURCE42} %{SOURCE38} %{SOURCE39} %{SOURCE43} %{SOURCE44} . cp %{SOURCE40} %{SOURCE41} %{SOURCE42} %{SOURCE38} %{SOURCE39} %{SOURCE43} %{SOURCE44} .
mkdir -p test_results mkdir -p test_results
%if %{test_on_wayland} %if %{test_on_wayland}
./run-tests-wayland %{test_offscreen} || true ./run-tests-wayland || true
%else %else
./run-tests-x11 || true ./run-tests-x11 || true
%endif %endif
@ -1062,6 +1051,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
#--------------------------------------------------------------------- #---------------------------------------------------------------------
%changelog %changelog
* Sat Apr 4 2021 Martin Stransky <stransky@redhat.com> - 87.0-10
- Wayland testing again.
* Thu Apr 1 2021 Martin Stransky <stransky@redhat.com> - 87.0-9 * Thu Apr 1 2021 Martin Stransky <stransky@redhat.com> - 87.0-9
- Added fix for mozbz#1702606 / rhbz#1936071 - Added fix for mozbz#1702606 / rhbz#1936071
- Switched tests back to X11 due to massive failures. - Switched tests back to X11 due to massive failures.

View File

@ -1,38 +1,26 @@
#!/usr/bin/bash #!/usr/bin/bash
# usage: run-tests-wayland offscreen [test flavour] # usage: run-tests-wayland [test flavour]
if ! [ $1 ] ; then
echo "Missing test params!"
echo ""
echo "usage: run-tests-wayland offscreen [test_flavour]"
echo ""
echo " offscreen can be 0 or 1"
echo " test_flavour can be xpc ref moch crash"
exit
fi
set -x set -x
OFFSCREEN_TESTING=$1
RUN_XPCSHELL_TEST=0 RUN_XPCSHELL_TEST=0
RUN_REFTEST=0 RUN_REFTEST=1
RUN_MOCHITEST=0 RUN_MOCHITEST=0
RUN_CRASHTEST=0 RUN_CRASHTEST=0
SELECTED_TEST=$2 while (( "$#" )); do
if [ "$SELECTED_TEST" = "xpc" ] ; then SELECTED_TEST=$1
if [ "$SELECTED_TEST" = "xpcshell" ] ; then
RUN_XPCSHELL_TEST=1 RUN_XPCSHELL_TEST=1
elif [ "$SELECTED_TEST" = "ref" ] ; then elif [ "$SELECTED_TEST" = "reftest" ] ; then
RUN_REFTEST=1 RUN_REFTEST=1
elif [ "$SELECTED_TEST" = "moch" ] ; then elif [ "$SELECTED_TEST" = "mochitest" ] ; then
RUN_MOCHITEST=1 RUN_MOCHITEST=1
elif [ "$SELECTED_TEST" = "crash" ] ; then elif [ "$SELECTED_TEST" = "crashtest" ] ; then
RUN_CRASHTEST=1
else
RUN_XPCSHELL_TEST=1
RUN_REFTEST=1
RUN_MOCHITEST=0
RUN_CRASHTEST=1 RUN_CRASHTEST=1
fi fi
shift
done
MACH_USE_SYSTEM_PYTHON=1 MACH_USE_SYSTEM_PYTHON=1
MOZ_NODE_PATH=/usr/bin/node MOZ_NODE_PATH=/usr/bin/node
@ -48,27 +36,6 @@ NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`"
export MOZ_ENABLE_WAYLAND=1 export MOZ_ENABLE_WAYLAND=1
if [ $OFFSCREEN_TESTING -ne 0 ] ; then
xvfb-run -s "-screen 0 1600x1200x24" -n 80 mutter --wayland --nested &
if [ -z "$WAYLAND_DISPLAY" ] ; then
export WAYLAND_DISPLAY=wayland-0
else
export WAYLAND_DISPLAY=wayland-1
fi
sleep 10
retry_count=0
max_retries=5
until [ $retry_count -gt $max_retries ]; do
if [ -S "$XDG_RUNTIME_DIR/$WAYLAND_DISPLAY" ]; then
retry_count=$(($max_retries + 1))
else
retry_count=$(($retry_count + 1))
echo "Waiting for Mutter, retry: $retry_count"
sleep 2
fi
done
fi
if [ $RUN_XPCSHELL_TEST -ne 0 ] ; then if [ $RUN_XPCSHELL_TEST -ne 0 ] ; then
./mach xpcshell-test 2>&1 | cat - | tee $TEST_DIR/xpcshell ./mach xpcshell-test 2>&1 | cat - | tee $TEST_DIR/xpcshell
./mach xpcshell-test --enable-webrender 2>&1 | cat - | tee $TEST_DIR/xpcshell-wr ./mach xpcshell-test --enable-webrender 2>&1 | cat - | tee $TEST_DIR/xpcshell-wr

47
run-wayland-compositor Executable file
View File

@ -0,0 +1,47 @@
#!/usr/bin/bash
# Run wayland compositor and set WAYLAND_DISPLAY env variable
set -x
echo export DESKTOP_SESSION=gnome > $HOME/.xsessionrc
echo export XDG_CURRENT_DESKTOP=GNOME > $HOME/.xsessionrc
echo export XDG_SESSION_TYPE=wayland >> $HOME/.xsessionrc
# Turn off the screen saver and screen locking
gsettings set org.gnome.desktop.screensaver idle-activation-enabled false
gsettings set org.gnome.desktop.screensaver lock-enabled false
gsettings set org.gnome.desktop.screensaver lock-delay 3600
# Disable the screen saver
# This starts the gnome-keyring-daemon with an unlocked login keyring. libsecret uses this to
# store secrets. Firefox uses libsecret to store a key that protects sensitive information like
# credit card numbers.
if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then
# if not found, launch a new one
eval `dbus-launch --sh-syntax`
fi
eval `echo '' | /usr/bin/gnome-keyring-daemon -r -d --unlock --components=secrets`
if [ -z "$XDG_RUNTIME_DIR" ]; then
export XDG_RUNTIME_DIR=$HOME
fi
xvfb-run -s "-screen 0 1600x1200x24" -n 80 mutter --wayland --nested &
if [ -z "$WAYLAND_DISPLAY" ] ; then
export WAYLAND_DISPLAY=wayland-0
else
export WAYLAND_DISPLAY=wayland-1
fi
sleep 10
retry_count=0
max_retries=5
until [ $retry_count -gt $max_retries ]; do
if [ -S "$XDG_RUNTIME_DIR/$WAYLAND_DISPLAY" ]; then
retry_count=$(($max_retries + 1))
else
retry_count=$(($retry_count + 1))
echo "Waiting for Mutter, retry: $retry_count"
sleep 2
fi
done