ESL / Xsight Labs
Parasoft C/C++test · Automation lab demoHome ↗
License preflight → Lab verification

Three containers.
Nine scan
results.

First check available license features. Then use the test project to verify three concurrent scans per container.

3Containers
×
3Scans each
=
9Result sets
Container 1
S1S2S3
Container 2
P1P2P3
Container 3
Q1Q2Q3

Target architecture, not a recorded lab result.
Final scan and license acceptance will take place on your server.

Step 1 / License preflight

Check the license.
Before scanning a project.

cpptest-license-features queries the license configured for a specific C/C++test CLI. No project analysis is performed.

The utility

Know what is available

  • Reports the CLI version and license mode
  • Distinguishes Automation, Desktop CLI, both or neither
  • Lists licensed, not licensed and unrecognized features
  • Text output for review; --json for saved evidence
The decision

Check before the long scan

  • For this demo: Automation, Static Analysis and Flow Analysis
  • For later workloads: check needed MISRA / CERT rule features
  • Resolve missing features or query errors before proceeding
  • Then verify actual execution with the nine-scan test project

A preflight check, not a capacity test. The utility does not prove three available server allocations or nine simultaneous analyses. Use the same container image and approved license settings as the scans.

Step 1 / Run and interpret the utility

Query the lab installation.
Review the feature list.

ESL supplies the utility separately. Run it in each target container environment before the verification scans.

# Set these paths for the actual installation and approved settings
./cpptest-license-features "$CPPTEST_PROBE_CLI" \
  --settings "$CPPTEST_SETTINGS" --json > license-features.json
Features

Confirm the required features are present. Exit 0 means the query succeeded, not that every required feature is licensed.

Not licensed / errors

Resolve required features marked Not licensed. Exit 2 means a query failure, such as license access, timeout or an unexpected response.

Not recognized

The CLI does not expose that feature name through this check. Treat it as inconclusive, not proof that the feature is unlicensed.

Compatibility gate: uses undocumented -check-license, verified on Windows 2025.1 and Linux 2025.2, not Xsight's 2023.1.1 image. Linux 2025.2 needs cpptest/bin/cli/cpptestcli, not its top-level launcher. Confirm the probe path/support with Parasoft for the lab version; keep the existing scan command unchanged.

Step 2 / Verify with the test project

Same workload.
More scans at once.

After license preflight, use the nine-app project to verify the move from one scan per container to three independent scan processes.

3 concurrent scans · 3 waves per container

Scheduling illustration only. Both modes produce nine reports in total. This is a concurrency target, not a measured 3× speedup. The baseline switch limits scheduling; it does not change the installed license edition.

Verification / The target architecture

Three Automation allocations.
Nine independent processes.

Your existing License Server

Three Automation server entitlements, with the required analysis features

Container 1

Sensor applications

cpptestcli → sensor_1
cpptestcli → sensor_2
cpptestcli → sensor_3
Container 2

Packet applications

cpptestcli → packet_1
cpptestcli → packet_2
cpptestcli → packet_3
Container 3

Queue applications

cpptestcli → queue_1
cpptestcli → queue_2
cpptestcli → queue_3
Xsight Linux lab server · 3 containers × 3 processes = 9 result sets

Intended allocation, verified during the run. The License Server grants licenses; the demo does not assign, duplicate or spoof machine IDs.

Verification / A small, controlled workload

Nine C++17 applications.
Nine distinct defect combinations.

Three related variants per family. Small enough to inspect, different enough to distinguish the results.

01 / Sensors
sensor_1

Unchecked index · division by zero

sensor_2

Uninitialized reading · null dereference

sensor_3

Signed overflow · use after free

02 / Packets
packet_1

Buffer overflow · mismatched delete

packet_2

File leak · off-by-one read

packet_3

Double free · excessive shift

03 / Queues
queue_1

Memory leak · negative index

queue_2

Uninitialized slot · allocator mismatch

queue_3

Closed-file use · dangling pointer

The runner builds and analyzes these programs; it never executes their defective paths. These are intended defects, not promised detection counts. Findings depend on the scanner version and enabled rules.

Verification / Fit the existing DevOps environment

Keep your toolchain.
Isolate each scan.

Adapted from the Dockerfile, properties and analysis script supplied by Xsight Labs.

REUSE

Your existing Linux setup

  • Private Xsight C++test container image
  • /opt/parasoft/cpptest/cpptestcli
  • gcc_8-64 and compilation-database input
  • DTP-hosted Flow Analysis Standard
  • Existing License Server and approved settings
ISOLATE

One workspace for every process

  • Separate source tree and CMake build
  • Separate compile_commands.json and cache
  • Separate native report, console log and result JSON
  • Unique run ID and per-application session tag
  • Read-only private settings; no shared-install rewrites

C/C++test Standard is a product name. Automation is a licensed capability. The demo retains the supplied Standard CLI command pattern and requests the approved server edition.

Step 2 / Execute the verification

Prepare. Launch. Observe.

After reviewing the utility's feature list, run the test project on the Xsight lab server in a reserved test window.

PREPARE

Connect the lab

Set the image in .env, mount the same approved settings used for preflight and build the demo image.

LAUNCH

Start all three workers

All nine sample builds finish before scanning starts. Each worker then launches three scan processes.

OBSERVE

Collect evidence

Inspect container processes, resource usage and License Server token details while the scans are active.

# Optional baseline: one scan at a time in each container
python3 lab.py run --mode standard

# Automation target: three scans at a time in each container
python3 lab.py run --mode automation

Tiny-sample defaults: 3 CPUs and 10 GiB limit per container, 2 GiB Java heap per scan. Reserve additional host/native-engine headroom. These are starting values, not production sizing.

Verification / What you will receive

Nine reports.
A traceable run summary.

Keep each preflight JSON alongside the scan evidence. Results stay on your server, not in this public presentation.

summary.mdA nine-row table: application, container, exit code, findings and status.
summary.jsonRecorded process timings, common overlap and technical checks.
report.xml / .htmlNative Parasoft results for each application.
scan.logPer-process console evidence and failure diagnostics.
Output layout, not live results

One directory per application

sensor_1
sensor_2
sensor_3
packet_1
packet_2
packet_3
queue_1
queue_2
queue_3

Every new run uses a fresh timestamp/UUID directory. Earlier reports cannot silently become this run's evidence.

Expected findings are not scanner failures: exit 2 with -fail is accepted. License errors, setup failures, timeouts and missing or empty reports fail the technical check.

Verification / Optional DTP publishing

Choose the DTP view.
Keep all nine result sets.

Group by container for a compact view, or by application for individual project tracking.

Publishing is opt-in
3 projects × 3 distinct scan sessions = 9 result sets

A shared build.id identifies the run; a unique session.tag identifies each scan. Approve the demo projects, then set DTP_PUBLISH=true. Dashboard aggregation does not change the nine local report directories.

Verification / Acceptance criteria

Prove execution.
Confirm the granted licenses.

The utility checks available features first. The test project and live License Server evidence verify the three-by-three configuration.

Automated technical checks

Did the workload run correctly?

  • Three distinct container hostnames
  • Nine completed native XML reports with findings
  • Positive common overlap of all nine CLI processes
  • No licensing, setup or timeout failures
License Server evidence

Were the right features granted?

  • Three concurrent machine/container allocations
  • Granted Automation and required analysis features
  • Analysis-phase logs matched to active processes
  • Administrator confirmation of entitlement coverage

Process overlap alone is not proof of licensed engine overlap. Capture token details while the jobs are active. A requested feature list does not establish what the License Server granted.

Ready for your lab

Check features first.
Verify with the project.

Step 1: run the license utility.
Step 2: verify nine scans across three containers, with License Server evidence.

https://github.com/zuwasi/Xsightlab-automation

Verification project and deployment instructions. Public repository; no open-source license grant. The license utility is supplied separately, not bundled in this repository.

Development checks complete
  • Utility: verified on Windows 2025.1 / Linux 2025.2
  • All nine C++17 applications compile
  • Nine orchestration regression tests pass
  • Compose configuration and Python lint checks pass
Customer acceptance pending

Utility compatibility on the lab's 2023.1.1 image, private-image build, real findings, nine-process overlap and License Server grants.

Project regression tests use a fake scanner. Prior utility checks are not Xsight license evidence.

← Swipe to navigate →   ·   Arrow keys or Space
1 / 12