Skip to content

Test Bench

Neo edited this page Feb 21, 2022 · 7 revisions

Test Bench

The Test Bench serves as a helpful tool for batch testing of patches & extensions across several tester apps.

If your intention is to use the tool to actually patch an application OR run an extension for extracting/generating something using an application, then please use Main GUI instead.

On Windows, the tool is available as WARP_bench.exe inside the win32 folder.

On Linux (Debian-based), the tool is available as WARP_bench inside the deb32 OR deb64 folder (depending on which OS & branch you have).

The timestamp on the title reflects the latest update (i.e. last commit time).

If you remove or mess up the .git folder the timestamp might not appear

Table of Contents


Tabs

Unlike the Main GUI, here we have upto 3 lists of items to cherry pick test inputs from and also a seperate section is needed for sending the test results.

Therefore the interface has been logically divided into 4 tabs as shown.

As you can see, there are 3 ways to switch between these tabs:

  1. Click on the respective tab title.

  2. Swipe left or right (works for adjacent tabs)

  3. Press Ctrl+Tab to move to next tab and Ctrl+Shift+Tab to go backwards.

Just like Main GUI, all the first 3 tabs contains a list from which we need to select items, and they all have a Filter & Sort field to help with the selection process.

Each tab contains a bunch of 'Quick Actions' which are the most frequent tasks to be done in each tab.


Patches

As the name suggests this tab is concerned with loading and selection of patches to be tested.


Quick Actions available:

  • Run Test

  • Get Patches

    Populates the list of patches from the definitions in 'Patches.yml'.

  • Clear Selected

    Clears current selection of patches.

  • Select Visible

    Select all visible patches. Use the filter input to hide unnecessary patches.

  • Select Recommended

    Selects all patches marked as 'Recommended'.

  • Load Scripts

    Load all changed/modified QJS scripts (since last time they were loaded) provided under 'Scripts' folder hierarchy (except for 'Init').


Extensions

This tab is concerned with loading & selection of extensions to be tested.


Quick Actions available:

  • Run Test

  • Get Extensions

    Populates the list of extensions from the definitions in 'Extensions.yml' file . See Extension Guide for more details.

  • Clear Selected

    Clears current selection of extensions.

  • Select Visible

    Select all visible extensions. Use the filter input to hide unnecessary extensions.

  • Load Scripts

    Load all changed/modified QJS scripts (since last time they were loaded) provided under 'Scripts' folder hierarchy (except for 'Init').


Testers

This tabs contains the list of apps on which we will test the Patches/Extensions.

As you can see we need to specify the Test Dir containing the apps to be tested first.

If you have already Run a Test before, then the Test Dir would be saved and setup again automatically.

You can also drag & drop the test directory on the Test Dir box to copy it's path.

One more alternative to specify both Test Dir and selecting the Exes in one go is to load them from a session file.


Quick Actions available:

  • Run Test

  • Get Exes

    Populates the list with exe (app) names from the Test Dir.

  • Clear Selected

    Clears current selection of apps.

  • Select Visible

    Select all visible app names. Use the filter input to hide unnecessary filenames.

  • Load Scripts

    Loads all changed/modified QJS scripts (since last time they were loaded) provided under 'Scripts' folder hierarchy (except for 'Init').


Results

This tab contains the results of a test as well as a section for executing commands manually.

The 2 sections are vertically resizable (essentially same setup as the Script Window).


  1. Output

    • The output frame will contain all the outputs, whether it is the results of the Run Test or the result of the Evaluate button below.

    • For test results, the reports are displayed with proper coloring (setup by the active Style) to distinguish between General Info, Warnings, Errors & any Debug messages.

    • To quickly access a specific line, please make use of the Find bar below the frame.

    • It has 3 Quick Actions available:

      • Run Test

      • Clear

        Cleans up the output frame.

      • Load Scripts

        Loads all changed/modified QJS Scripts.

  2. Script Editor

    • It works exactly the same way as the editor in Script Window and features the same options.

    • Used to interactively Evaluate QJS code manually.

    • One key difference here is that you get an additional function called Warp.LoadExe to load the appropriate tester app first.

    • It has 2 Quick Actions available:

      • Evaluate

        Click to evaluate the code present in the editor. Alternatively you can press Ctrl+R as well.

      • Clear

        Cleans up the editor.


Header

Apart from the tabs there are 2 other parts of the UI to be discussed i.e. the Header & the Footer.

The header contains the button for the Action drawer and the selection count displays:

  • Selected Patches

    Shows the number of patches currently selected for testing.

  • Selected Extensions

    Shows the number of extensions currently selected for testing.

  • Selected Exes

    Shows the number of tester exe currently selected to be tested on.

Action Drawer

Similar to the Main GUI, the Test Bench also has an Action drawer with mostly the same set of actions.

To open it you can either

  • Click the actns button OR

  • Swipe rightwards from the left edge.


The available actions are

  • Scripts

    • Load from 'Patches'

      Load all QJS files provided in the 'Scripts/Patches' folder.

    • Load from 'Extensions'

      Load all QJS files provided in the 'Scripts/Extensions' folder.

    • Load from 'Support'

      Load all QJS files provided in the 'Scripts/Support' folder.

    • Load All Scripts

      Load all QJS files provided in the aforementioned 3 folders.

  • Refresh

    • Refresh Languages

      Refresh the list of languages provided via YAML files in the 'Languages' folder.

    • Refresh Styles

      Refresh the list of styles provided via YAML files in the 'Styles' folder.

  • Session

    • Load Session file

      Load a previously saved session YAML file. See Session file for more details.

      You can also drag & drop the session file on top of the tool to load it directly.

    • Save Session file

      Save the current session to a YAML file. See Session file for more details.

  • Patches

    • Select Previous

      Select Patches used in a previous session (available in 'LastSession.yml').

    • Select Recommended

      Select Patches marked as 'Recommended'.

Footer

The footer is essentially the same as in Main GUI. The only difference is in how the Settings dialog & About dialog look.

It has the following fields (going from left to right).

  • Style selector

    Sets the style i.e. Colors & Font (specified via YAML file) for the tool.

    An inbuilt light style is available as default and a style file for Dark Mode has been provided as well.

    See Style file for more details. Any changes are common to both GUIs and gets saved in 'Settings.yml'.

  • Ko-fi button

    In case you are interested in supporting the project click this and it will open my Ko-fi page :)

  • Discord button

    Opens the invite link for WARP's discord server.

  • Github button

    Opens the Github page for WARP.

  • Settings button

    Opens the Settings dialog for the tool.

  • Info button

    Opens an About dialog with some info about the tool.

  • Language selector

    Sets the language (specified via YAML file) for the tool. English is provided in-built as a default.

    See Language file for more details. Any changes are common to both GUIs and gets saved in 'Settings.yml'.


Settings dialog

There are 2 options and 1 action available in the settings dialog as explained below.


  • Options

    • Keep test inputs

      If ON, then the tool will keep the previously saved inputs for each succeeding test run.

    • Report Patch Modifications

      If ON, then the changes made by each patch will get reported whenever you do a test run.

      The information will be added to both the Output frame as well as the log file if logging has started.

      Keeping it ON can become sluggish after some amount of iterations, so use sparingly.

    • Show only errors & warnings

      If ON, skips reporting successful patches/extensions and only the errors & warnings that comes up gets reported.

    • Stop at first error

      If ON then the tool will stop the test run at the first sight of an error.

    • Show lines with error

      If ON, then whenever the tool encounters an error the line where it occurred will also get reported (unless it is encrypted or messages are blocked)

  • Actions

    • Save Resolution

      Saves the current resolution of the tool as default.


About dialog

Running test

This is the common action across all the tabs (along with Load Scripts ofcourse).

It is used to run the test using the selected Patches and/or Extensions on the selected Tester apps.

If no tester is selected the tab automatically switches to 'Testers' tab.


You can also press Ctrl+T to start a test.
Similarly if you wish to interrupt an ongoing run press Ctrl+Q.


Return to top


Further reading