phoronix-test-suite / test-profiles

A read-only Git copy of the OpenBenchmarking.org test profiles.
Other
72 stars 83 forks source link

Fix for csgo (1.7.2) runtime error on Windows clients #264

Open tad4 opened 1 year ago

tad4 commented 1 year ago

Dear @michaellarabel and OpenBenchmarking test profile maintainers:

Summary

I ran into a runtime error when trying to run the CS:GO test profile under Windows. I've developed a solution that will invoke CS:GO via the Steam CLI for running the csgo test profile on Windows systems. Please review and merge.

I appreciate any time & effort given to this pull request. Should you have any questions, please add comments to this pull request.

Sincerely, Tad

Problem & Proposed Solution

The problem that prevents test runs under Windows

When PTS runs CS:GO, a runtime error occurs (see attached screenshot). CSGO 2023-01-05 151051 The problem appears to be caused by the csgo test profile invoking csgo.exe directly on Windows clients.

Proposed solution

Instead of the Windows test profile invoking csgo.exe, CS:GO is invoked via the Steam CLI.

Solution implementation details

This pull request contains the following changes to the csgo test profile for Windows clients:

  1. Commit a4f099e: Find Steam configuration data in the Windows Registry.
  2. Commit 9df5db1: Update existing test logic to use Steam configuration data and the Steam CLI.
  3. Commit 7d57b25: Invoke CS:GO via the Steam CLI, and add logic for the test profile to wait for csgo.exe to quit.

New dependencies introduced by the proposed solution

Windows PowerShell becomes a new dependency to run the csgo test profile on Windows clients. Specifically, the cmdlet Wait-Process is used to control test profile execution on Windows clients, since invoking CS:GO via Steam CLI will return immediately.

Impact on OpenBenchmarking users' ability to quickly and easily run csgo on Windows systems due to the use of PowerShell cmdlets is anticipated to be minuscule. Microsoft has integrated PowerShell into Windows starting with the release of Windows 7 Service Pack 1 (kernel 6.1.7601)[^1] and Microsoft introduced Wait-Process as a cmdlet in PowerShell v2.0. All of the Windows test results containing csgo runs---that are hosted on OpenBenchmarking.org---as of the date of this pull request used Windows 10 or later[^2].

This additional dependency is not expected to require PTS to manually check for and install PowerShell on Windows systems because it is not anticipated that there is interest in using PTS to run the csgo test profile on systems running Windows 7 (kernel 6.1.7600) or earlier.

[^1]: Microsoft states, "Windows PowerShell comes installed by default in every Windows, starting with Windows 7 SP1 and Windows Server 2008 R2 SP1," and PowerShell's Release History indicates that version 2.0 was, "Integrated in Windows 7 and Windows Server 2008 R2". [^2]: No results are returned using OpenBenchmarking.org's integrated search for the queries: 'csgo "Windows 7"' and 'csgo "Windows 8"'---in the absence of any search results it's presumed that the csgo test profile has never been run on a version of Windows prior to Windows 10.

tad4 commented 1 year ago

On 2023 March 28th Valve Software announced that Steam's Windows 7 and Windows 8 Support will be ending:

"As of January 1 2024, Steam will officially stop supporting the Windows 7, Windows 8 and Windows 8.1 operating systems. After that date, the Steam Client will no longer run on those versions of Windows."

My analysis of PowerShell as a dependency for running the CS:GO test profile will become moot after Steam stops supporting Windows 7 and 8.x since Valve's statement indicates that any games that require Steam will not be playable on Windows 7 and 8.x.