MS-XCA Test Suite User Guide

August 29, 2025 · View on GitHub

Table of Contents

1 Test Environment Requirements

1.1 Generic Requirements

The MS-XCA Test Suite requires a test environment including:

  • 1 machine acting as the Driver computer to run the Test Suite
  • XCA protocol implementation as a SUT application
Device TypeRoleDescription
HardwareDriver ComputerDriver computer to run the Test Suite
SoftwareSUTAn implementation of MS-XCA protocols

2 Test Suite Deployment

2.1 How to configure Driver Computer

The following software needs to be installed on the Driver Computer:

Optional software includes:

The MS-XCA Test Suite can be executed using one of two ways:

  1. By extracting the compressed release .zip or .tar.gz to an available path on the Driver Computer, and running the scripts in the Batch folder.
  2. By using the PTM Service. Install the PTM Service, and then install the MS-XCA Test Suite on the PTM Service.

2.2 How to configure the SUT Application

The SUT application needs to be executable on the Driver Computer, and it should be located on a path that can be accessed by the Test Suite. This would enable the Test Suite to call it with the appropriate input and output files for automatic comparison. The Test Suite comes with a sample CLI SUT application (XcaTestApp) to demonstrate using the Test Suite with a configured SUT. The app can be run standalone, with arguments for the input/output files and compression algorithm to use for the operation.

2.3 How to configure the Test Suite

The only file that needs modification to configure the Test Suite is the MS-XCA_TestSuite.deployment.ptfconfig file under the Bin directory in the Test Suite. If you're using the PTM Service, the editable values are shown while setting up for the MS-XCA Test.

On installation, the Test Suite will use the bundled XcaTestApp as the SUT, and all input and output folders will be subfolders in the Test Suite.

All the properties under the SUT group may need to be updated when testing a different SUT from the bundled XcaTestApp, some of which are shown below:

<Group name="SUT">
    <Property name="WorkingDirectory" />
    <Property name="PLAIN_LZ77_COMPRESSION_COMMAND" />
    <Property name="PLAIN_LZ77_COMPRESSION_ARGUMENTS" />
    <Property name="PLAIN_LZ77_DECOMPRESSION_COMMAND" />
    <Property name="PLAIN_LZ77_DECOMPRESSION_ARGUMENTS" />
</Group>

There is a description for each property in the MS-XCA_TestSuite.deployment.ptfconfig, and the values should be modified according to the descriptions and the current test environment.

2.4 How to run the Test Suite

The MS-XCA Test Suite can be run using any of the following:

  • Protocol Test Manager (PTM) Service
  • Scripts

2.4.1 Scripts

The MS-XCA Test Suite includes executable scripts that can be used to run test cases. These files are located in the Batch/ folder, and there are both PowerShell and Bash scripts available.

On how to run these batch files, please refer to this guide.

2.4.2 Protocol Test Manager (PTM) Service

The PTM Service is a user interface-based tool that provides an easy and visual method for configuring and running the Test Suites.

On how to use the PTM Service to run Test Suite tests, please refer to this guide.

3 Debugging Test Cases

You can use the Visual Studio solution (.sln) file included with the MS-XCA Test Suite to debug the test cases that you run against your own protocol implementations. The MS-XCA.sln file is located here.

To debug a test case, perform the steps that follow:

  1. On the Driver computer, use Microsoft® Visual Studio® to open the following solution file: MS-XCA.sln.

  2. In Visual Studio, in the Solution Explorer window, right-click the Solution MS-XCA, and then select Build Solution.

  3. When you build the test project, the tests appear in Test Explorer. If Test Explorer is not visible, choose Test on the Visual Studio menu, select Windows, and then select Test Explorer.

  4. Select your test cases from Test Explorer and run or debug them.