Skip to main content

Introducing Squish for Java on Linux arm64 Platform

Coming with Squish 8.1, Squish for Java becomes the second edition (after Squish for Qt) to deliver binary packages for Linux arm64-based systems.

Linux Distributions, arm64 CPUs, and Java

In the past decade, Linux distributions on arm64 platform have seen moderate increase in popularity, primarily driven by the growth of arm-based devices such as Raspberry Pi and smartphones. Although arm64 CPUs have advantages such as energy efficiency and performance-per-watt, their adoption on the desktop remained limited due to software compatibility issues and a smaller number of binary packages available compared to the x86 architecture.

Ubuntu, Debian, and Arch Linux have embraced arm64 CPUs, catering to embedded system enthusiasts and developers, but mainstream adoption was rather slow due to lack of both suitable hardware and native support for proprietary applications, making x86-based systems a more straightforward choice for many Linux users.

In contrast to Western markets, Linux on the arm64 platform has seen notable growth in the Asia-Pacific (APAC) region due to specific local factors. Government-backed Linux distributions such as KylinOS have been optimized for arm-based hardware, reflecting push for technological independence and alignment with chip makers such as Huawei. This momentum is also driven by APAC's leadership in embedded systems and consumer electronics, where arm-based devices dominate.

In parallel, Java has become an integral component of Linux distributions on arm64 systems:  its adoption and increased efficiency can be attributed to optimizations introduced by the OpenJDK project. For application developers, arm-native versions of Java (JDK and JRE) ensure seamless deployment without recompilation, leveraging arm's performance advantages.

Squish for Java: first binary packages for Linux arm64

In the previous blog post, we described a well-supported, but complex process of automating Qt applications on the Linux on arm64 (LoA) platform: cross-compiling parts of Squish from source for target arm64-based system, and installing the Squish IDE and tools from binary package on a separate, x86-based system. From this host, users have to remotely access the squishserver and the application under test (AUT) on arm64 device. Before dedicated LoA binary packages were introduced in Squish 8.0 and simplified the process, this was the only way of implementing test automation with Squish for Qt on the platform.

To automate Java applications on arm64-based systems using Squish for Java, we lacked a comparable solution as we do not offer Java wrapper source packages for download in the customer centre. Additionally, comprehensive documentation for building Squish components from source is exclusively focused on Squish for Qt.

In Squish 8.1 , we provide the first Squish for Java binary packages for Linux on arm64, targeting Ubuntu 24.04. These packages enable test automation of Java applications on the LoA platform where is was previously not possible. Full set of tools for test development and script execution (including the Squish IDE & squishrunner) can be used out-of-the-box and streamlines setting up a test environment on LoA desktops and laptops.

Future plans: Squish for Web

As previously announced, the range of Squish editions available as binary packages for arm64-based Linux systems will expand in the future, with Squish for Web edition being the next to be introduced. However, its practical usability for automating web sites depends on stable web browsers (Mozilla Firefox or Google Chrome) that can be installed on the platform outside of self-contained software distribution systems (Flatpak, Snap), which are currently not supported by Squish.

We are monitoring the availability of web browsers in key Linux distributions (Ubuntu, Debian) and will release Squish for Web binary packages for the LoA platform in a Squish feature release as soon as typical web automation scenarios can be accommodated.

Comments