Linuxのarm64プラットフォームにQt用のSquishを導入

このブログは「Introducing Squish for Qt on Linux arm64 platform」を翻訳・一部加筆したものです。

Linux arm64ベースのシステム向けにQt 6.7の最初のビルド済みバイナリが利用可能になったことを受け、次期Squish GUI Tester (Qt版) 8.0の機能リリースでは、この新しいプラットフォーム上でもQtアプリケーションをテストするためのバイナリパッケージが提供されます。

Arm64システムの増加

Squish GUI Testerは、arm64を含む様々なプラットフォームやシステムアーキテクチャをサポートするテストツールであり、特に組み込み分野では長年使用されてきました。しかし近年、デスクトップやラップトップにおいても、x86ベースのアーキテクチャからarm64ベースのアーキテクチャへの移行が顕著に見られるようになっています(Apple M1/M2/M3ベースのシステムは、この傾向の最も顕著な例です)。

Apple Macプラットフォームに加えて、Linuxベースのデスクトップやラップトップで作業するユーザーも増えており、arm64ベースのシステムへの関心が高まっています。しかし、互換性レイヤー(Apple Rosetta2相当)がないため、これまではSquish GUI Testerの主要コンポーネント(Squish IDEやsquishrunnerなど)をそのような環境で実行することは、x86ベースのアーキテクチャ専用のバイナリ形式で提供されている限り、できませんでした。

リモートテストとソースからのビルド

arm64のCPUを内蔵したLinuxシステム上でGUIアプリケーションを自動化する唯一の選択肢は、リモートテストのセットアップでSquishを使用することでした。この場合、IDEとsquishrunnerは別のx86ベースのシステム上で実行され、arm64ベースのシステム上のテスト対象アプリケーション(AUT)にリモートで接続されます。Squishは一般的に良くサポートされていますが、このようなセットアップにはいくつかの欠点があります:

  • 既製のバイナリパッケージがないため、Squishの一部をarm64ベースのシステム用にソースからビルドする必要がある
  • 特定のエディション、特にSquish for JavaとSquish for Webでは、ソースからのビルドが可能ですが、他のエディションと比べるとはるかに複雑です

Squish 8.0: Linux 向け初の arm64 バイナリパッケージ

今度リリースされるSquish GUI Tester 8.0は、Squish for Qtにおけるゲームチェンジャーとなります。このリリースでは、Qt 6.7ライブラリが公式にサポートされているプラットフォームに従い、Debian 11以降をターゲットとした初のLinux用arm64ベースのバイナリパッケージが提供されます。これらのバイナリパッケージには、テスト開発およびスクリプト実行のためのツール一式(Squish IDEおよびsquishrunnerを含む)が含まれており、Linux arm64システム上でビルドされたQt 6.7 AUTのテストにすぐに使用することができます。これにより、arm64ベースのデスクトップやラップトップでのテスト環境のセットアップが大幅に簡素化され、ソースからのビルドやリモートテスト用に2つの別々のシステムを設定する必要がなくなります。

さらに、これらのパッケージは、バイナリパッケージとSquishの一部をソースからビルドして生成されたバイナリを組み合わせるクイックインストール方法に従って、古いバージョンのQtでビルドされたAUTをテストするためにも使用できます。

組み込みシステム上で動作するAUTをお持ちのお客様は、たとえarm64ベースのCPUを搭載している場合でも、Qtの特定のバージョン用の組み込みコンパイラツールチェインを使用して、Squishの一部をソースからビルドする必要があります。

今後の計画: Linux arm64用の次期Squishエディション

今後のリリースでは、Squishのarm64ベースのLinuxシステム向けバイナリパッケージの出荷を、Squish for JavaおよびSquish for Webから開始し、他のエディションにも拡大する予定です(Squish GUI Tester 8.1とともにリリース予定、約2024年第4四半期)。その後、Android、iOS、Tk向けのSquishも順次リリースされる予定です。

Squish for Qtのバイナリパッケージは、Qt 6.8を次にサポートするQtの将来のリリースに密接に追従し、引き続きリリースされる予定です。

公式のQtバイナリパッケージがこれらの古いリリースのQtにも遡及して提供されない限り、6.7より古いバージョンのQtを対象としたQtバイナリパッケージのSquishを提供する予定は今のところありません。


Blog Topics:

Comments