mirror of
https://github.com/libsdl-org/SDL.git
synced 2025-05-25 05:59:11 +00:00
emscripten: pass --no-sandbox to the chrome web driver
This fixes running the Emscripten tests on Ubuntu 24.04.
This commit is contained in:
parent
df3cfbc797
commit
cb3cc28809
3 changed files with 22 additions and 11 deletions
10
.github/workflows/create-test-plan.py
vendored
10
.github/workflows/create-test-plan.py
vendored
|
@ -129,7 +129,7 @@ JOB_SPECS = {
|
||||||
"android-cmake-lean": JobSpec(name="Android (CMake, lean)", os=JobOs.UbuntuLatest, platform=SdlPlatform.Android, artifact="SDL-lean-android-arm64", android_abi="arm64-v8a", android_arch="aarch64", android_platform=23, lean=True, ),
|
"android-cmake-lean": JobSpec(name="Android (CMake, lean)", os=JobOs.UbuntuLatest, platform=SdlPlatform.Android, artifact="SDL-lean-android-arm64", android_abi="arm64-v8a", android_arch="aarch64", android_platform=23, lean=True, ),
|
||||||
"android-mk": JobSpec(name="Android (Android.mk)", os=JobOs.UbuntuLatest, platform=SdlPlatform.Android, artifact=None, no_cmake=True, android_mk=True, ),
|
"android-mk": JobSpec(name="Android (Android.mk)", os=JobOs.UbuntuLatest, platform=SdlPlatform.Android, artifact=None, no_cmake=True, android_mk=True, ),
|
||||||
"android-gradle": JobSpec(name="Android (Gradle)", os=JobOs.UbuntuLatest, platform=SdlPlatform.Android, artifact=None, no_cmake=True, android_gradle=True, ),
|
"android-gradle": JobSpec(name="Android (Gradle)", os=JobOs.UbuntuLatest, platform=SdlPlatform.Android, artifact=None, no_cmake=True, android_gradle=True, ),
|
||||||
"emscripten": JobSpec(name="Emscripten", os=JobOs.Ubuntu22_04, platform=SdlPlatform.Emscripten, artifact="SDL-emscripten", ),
|
"emscripten": JobSpec(name="Emscripten", os=JobOs.UbuntuLatest, platform=SdlPlatform.Emscripten, artifact="SDL-emscripten", ),
|
||||||
"haiku": JobSpec(name="Haiku", os=JobOs.UbuntuLatest, platform=SdlPlatform.Haiku, artifact="SDL-haiku-x64", container="ghcr.io/haiku/cross-compiler:x86_64-r1beta5", ),
|
"haiku": JobSpec(name="Haiku", os=JobOs.UbuntuLatest, platform=SdlPlatform.Haiku, artifact="SDL-haiku-x64", container="ghcr.io/haiku/cross-compiler:x86_64-r1beta5", ),
|
||||||
"loongarch64": JobSpec(name="LoongArch64", os=JobOs.UbuntuLatest, platform=SdlPlatform.LoongArch64, artifact="SDL-loongarch64", ),
|
"loongarch64": JobSpec(name="LoongArch64", os=JobOs.UbuntuLatest, platform=SdlPlatform.LoongArch64, artifact="SDL-loongarch64", ),
|
||||||
"n3ds": JobSpec(name="Nintendo 3DS", os=JobOs.UbuntuLatest, platform=SdlPlatform.N3ds, artifact="SDL-n3ds", container="devkitpro/devkitarm:latest", ),
|
"n3ds": JobSpec(name="Nintendo 3DS", os=JobOs.UbuntuLatest, platform=SdlPlatform.N3ds, artifact="SDL-n3ds", container="devkitpro/devkitarm:latest", ),
|
||||||
|
@ -223,6 +223,8 @@ class JobDetails:
|
||||||
cpactions_install_cmd: str = ""
|
cpactions_install_cmd: str = ""
|
||||||
setup_vita_gles_type: str = ""
|
setup_vita_gles_type: str = ""
|
||||||
check_sources: bool = False
|
check_sources: bool = False
|
||||||
|
setup_python: bool = False
|
||||||
|
pypi_packages: list[str] = dataclasses.field(default_factory=list)
|
||||||
|
|
||||||
def to_workflow(self, enable_artifacts: bool) -> dict[str, str|bool]:
|
def to_workflow(self, enable_artifacts: bool) -> dict[str, str|bool]:
|
||||||
data = {
|
data = {
|
||||||
|
@ -287,6 +289,8 @@ class JobDetails:
|
||||||
"setup-vita-gles-type": self.setup_vita_gles_type,
|
"setup-vita-gles-type": self.setup_vita_gles_type,
|
||||||
"setup-gdk-folder": self.setup_gdk_folder,
|
"setup-gdk-folder": self.setup_gdk_folder,
|
||||||
"check-sources": self.check_sources,
|
"check-sources": self.check_sources,
|
||||||
|
"setup-python": self.setup_python,
|
||||||
|
"pypi-packages": my_shlex_join(self.pypi_packages),
|
||||||
}
|
}
|
||||||
return {k: v for k, v in data.items() if v != ""}
|
return {k: v for k, v in data.items() if v != ""}
|
||||||
|
|
||||||
|
@ -541,7 +545,6 @@ def spec_to_job(spec: JobSpec, key: str, trackmem_symbol_names: bool) -> JobDeta
|
||||||
job.cmake_config_emulator = "emcmake"
|
job.cmake_config_emulator = "emcmake"
|
||||||
job.cmake_build_type = "Debug"
|
job.cmake_build_type = "Debug"
|
||||||
job.test_pkg_config = False
|
job.test_pkg_config = False
|
||||||
job.apt_packages.append("python3-selenium")
|
|
||||||
job.cmake_arguments.extend((
|
job.cmake_arguments.extend((
|
||||||
"-DSDLTEST_BROWSER=chrome",
|
"-DSDLTEST_BROWSER=chrome",
|
||||||
"-DSDLTEST_TIMEOUT_MULTIPLIER=4",
|
"-DSDLTEST_TIMEOUT_MULTIPLIER=4",
|
||||||
|
@ -561,6 +564,8 @@ def spec_to_job(spec: JobSpec, key: str, trackmem_symbol_names: bool) -> JobDeta
|
||||||
"chromedriver --version",
|
"chromedriver --version",
|
||||||
))
|
))
|
||||||
job.static_lib = StaticLibType.A
|
job.static_lib = StaticLibType.A
|
||||||
|
job.setup_python = True
|
||||||
|
job.pypi_packages.append("selenium")
|
||||||
case SdlPlatform.Ps2:
|
case SdlPlatform.Ps2:
|
||||||
build_parallel = False
|
build_parallel = False
|
||||||
job.shared = False
|
job.shared = False
|
||||||
|
@ -713,6 +718,7 @@ def spec_to_job(spec: JobSpec, key: str, trackmem_symbol_names: bool) -> JobDeta
|
||||||
|
|
||||||
if "ubuntu" in spec.name.lower():
|
if "ubuntu" in spec.name.lower():
|
||||||
job.check_sources = True
|
job.check_sources = True
|
||||||
|
job.setup_python = True
|
||||||
|
|
||||||
if not build_parallel:
|
if not build_parallel:
|
||||||
job.cmake_build_arguments.append("-j1")
|
job.cmake_build_arguments.append("-j1")
|
||||||
|
|
14
.github/workflows/generic.yml
vendored
14
.github/workflows/generic.yml
vendored
|
@ -133,6 +133,15 @@ jobs:
|
||||||
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
|
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
|
||||||
brew update
|
brew update
|
||||||
brew install ${{ matrix.platform.brew-packages }}
|
brew install ${{ matrix.platform.brew-packages }}
|
||||||
|
- name: 'Setup Python'
|
||||||
|
uses: 'actions/setup-python@main'
|
||||||
|
if: ${{ matrix.platform.setup-python }}
|
||||||
|
with:
|
||||||
|
python-version: '3.x'
|
||||||
|
- name: 'Install PyPI packages'
|
||||||
|
if: ${{ matrix.platform.pypi-packages != '' }}
|
||||||
|
run: |
|
||||||
|
python -m pip install --user ${{ matrix.platform.pypi-packages }}
|
||||||
- name: 'Set up GLES for VITA' # Must be after apk
|
- name: 'Set up GLES for VITA' # Must be after apk
|
||||||
if: ${{ matrix.platform.setup-vita-gles-type != '' }}
|
if: ${{ matrix.platform.setup-vita-gles-type != '' }}
|
||||||
uses: ./.github/actions/setup-vita-gles
|
uses: ./.github/actions/setup-vita-gles
|
||||||
|
@ -348,11 +357,6 @@ jobs:
|
||||||
if: ${{ matrix.platform.xcode-sdk != '' }}
|
if: ${{ matrix.platform.xcode-sdk != '' }}
|
||||||
run: |
|
run: |
|
||||||
xcodebuild -project Xcode/SDL/SDL.xcodeproj -target SDL3 -configuration Release -sdk ${{ matrix.platform.xcode-sdk }} clean build
|
xcodebuild -project Xcode/SDL/SDL.xcodeproj -target SDL3 -configuration Release -sdk ${{ matrix.platform.xcode-sdk }} clean build
|
||||||
- name: 'Setup Python'
|
|
||||||
uses: 'actions/setup-python@main'
|
|
||||||
if: ${{ matrix.platform.check-sources }}
|
|
||||||
with:
|
|
||||||
python-version: '3.x'
|
|
||||||
- name: 'Check Sources'
|
- name: 'Check Sources'
|
||||||
if: ${{ matrix.platform.check-sources }}
|
if: ${{ matrix.platform.check-sources }}
|
||||||
run: |
|
run: |
|
||||||
|
|
|
@ -32,6 +32,10 @@ class SDLSeleniumTestDriver:
|
||||||
self.failed_messages: list[str] = []
|
self.failed_messages: list[str] = []
|
||||||
self.return_code = None
|
self.return_code = None
|
||||||
|
|
||||||
|
options = [
|
||||||
|
"--headless",
|
||||||
|
]
|
||||||
|
|
||||||
driver_contructor = None
|
driver_contructor = None
|
||||||
match browser:
|
match browser:
|
||||||
case "firefox":
|
case "firefox":
|
||||||
|
@ -44,12 +48,9 @@ class SDLSeleniumTestDriver:
|
||||||
driver_options = webdriver.ChromeOptions()
|
driver_options = webdriver.ChromeOptions()
|
||||||
if self.chrome_binary:
|
if self.chrome_binary:
|
||||||
driver_options.binary_location = self.chrome_binary
|
driver_options.binary_location = self.chrome_binary
|
||||||
|
options.append("--no-sandbox")
|
||||||
if driver_contructor is None:
|
if driver_contructor is None:
|
||||||
raise ValueError(f"Invalid {browser=}")
|
raise ValueError(f"Invalid {browser=}")
|
||||||
|
|
||||||
options = [
|
|
||||||
"--headless",
|
|
||||||
]
|
|
||||||
for o in options:
|
for o in options:
|
||||||
driver_options.add_argument(o)
|
driver_options.add_argument(o)
|
||||||
logger.debug("About to create driver")
|
logger.debug("About to create driver")
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue