Squish 7.2.1 Known Issues

Last edited on

Known Issues - Squish 7.2.1 Release

Release Date: Nov 20th, 2023

Recommended Update: 8.0.0

Squish on macOS 14.0 Sonoma

Squish IDE splash screen displays Squish graphic upside down on macOS Sonoma

On macOS 14 (Sonoma), the splash screen displayed on Squish IDE start-up initially shows Squish logo and background graphic normally, but quickly flips to show it upside down. This is a known upstream bug in platform-specific Java (SWT) code and affects Eclipse IDE as well as all applications built upon Eclipse framework, such as Squish. There is no known work-around for this issue.

activateItem() hangs when operating menus

This affects both Squish for Mac and Squish for Qt. The problem was introduced with macOS 14.0 and fixed in macOS 14.3.

When operating macOS's global menu bar from a test script, calls to activateItem() can hang after opening a menu and block further test execution as a result. This happens because a call to the accessibility features of macOS does not return.

Workaround: The part that hangs when invoking menu items is opening the dropdown menu itself. Due to the nature of macOS's accessibility API, it is possible to press menu items while they aren't visible on screen. Given you have this sequence of actions:

activateItem(waitForObject(names.file_NSMenuItem))
activateItem(waitForObject(names.open_NSMenuItem))

...then transforming it like this could work.

activateItem(waitForObjectExists(names.open_NSMenuItem))

The changes are:

  1. Skip traversing the menu
  2. Change the waitForObject call to waitForObjectExists

This way, Squish will try to press even invisible menu items. This will only work if the object name itself doesn't contain visible='1'. Also note that while this makes the test less precise (because human-like menu traversal is missing), it is still not possible to invoke disabled menu items this way.

The AUT starts up unfocused, preventing tests from running

This used to happen occasionally on earlier macOS versions, too, but according to our tests it occurs more frequently on macOS 14.

Workaround: Use nativeMouseClick() to focus the AUT window with a click.

bounds = object.globalBounds(squish.waitForObjectExists("{title='My App' type='NSWindow'}"))
nativeMouseClick(bounds.x + 5, bounds.y + 5, MouseButton.LeftButton)

Squish on iOS 17

The AUT freezes during startup on iOS 17 simulator

When running Squish tests on iOS 17 simulator, the AUT freezes while loading (only the splash screen is displayed).

Workaround: Use an iOS 17 device or an older iOS simulator version (e.g. 16.4).

Squish for Android

The 32-bit package of S/Android for Linux is only available on-demand.

Ruby tests on Windows 11 with 32bit Squish packages

Due to a bug in Ruby all 32bit Squish packages currently fail to execute Ruby test suites on recent versions of Windows 11. The test execution will error out with the message 'unexpected ucrtbase.dll'.

The affected packages are the ones containing the 'win32' specifier in the name or the ones with just 'windows' in the name without 32 or 64 specified.

We will not be able to fix this problem on the Squish side in Squish 8.0.0, but currently expect it be fixed in 8.0.1.

Workaround: Use a 64bit Squish package for obtaining IDE and squishrunner and start the squishserver from the 32bit package. Then configure the manually started squishserver as a remote server in the IDE or pass localhost as host parameter to squishrunner commandline invocations. See the squishrunner documentation and IDE documentation for server configuration for more details on these.