Skip to content

Conversation

@paulmedynski
Copy link
Contributor

Description

Moved existing stress test projects from ADO into GitHub.

Copilot AI review requested due to automatic review settings August 6, 2025 16:45
@paulmedynski paulmedynski requested a review from a team as a code owner August 6, 2025 16:45
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR re-homes stress test projects from Azure DevOps (ADO) into GitHub by adding comprehensive stress testing infrastructure for Microsoft.Data.SqlClient. The purpose is to consolidate testing tools and improve accessibility by moving stress tests to the main repository.

Key changes include:

  • Addition of a complete stress testing framework with test harness and runner
  • Implementation of SqlClient-specific stress tests covering async operations, MARS, and various command types
  • Integration of monitoring and logging capabilities for test execution tracking

Reviewed Changes

Copilot reviewed 55 out of 55 changed files in this pull request and generated no comments.

Show a summary per file
File Description
SqlClientStressTest.sln Solution file defining the stress test project structure
SqlClient.Stress.Tests/* Core SqlClient stress tests including async operations, MARS, and parameter tests
SqlClient.Stress.Runner/* Test execution harness with threading, monitoring, and result logging
SqlClient.Stress.Framework/* Base framework providing data access abstractions and test infrastructure
SqlClient.Stress.Common/* Shared utilities and common test attributes
IMonitorLoader/* Interface for test monitoring and metrics collection
Comments suppressed due to low confidence (1)

Copy link
Contributor

@benrr101 benrr101 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gonna close my eyes and just let this one go in as-is.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file can be avoided, can you include these projects into the main solution under StressTests folder?

This project intends to help finding a certain level of effectiveness under unfavorable conditions, and verifying the mode of failures.
This is a console application with targeting frameworks `.Net Framework 4.8`, `.NET 9.0` under driver's supported operating systems and SQL Servers.

## Purpose of application for developers
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This heading and description can be removed.

Copy link
Member

@cheenamalhotra cheenamalhotra left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved with minor touch-ups needed. Feel free to address them in next PR @benrr101

@benrr101 benrr101 merged commit 5f59681 into main Aug 6, 2025
228 of 236 checks passed
@benrr101 benrr101 deleted the dev/paul/stress branch August 6, 2025 19:12

private XmlReader CreateReader()
{
FileStream configurationStream = new FileStream("SqlClient.Stress.Framework/" + _configFilePath, FileMode.Open);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had to remove the prefix to get this to run:

Suggested change
FileStream configurationStream = new FileStream("SqlClient.Stress.Framework/" + _configFilePath, FileMode.Open);
FileStream configurationStream = new FileStream(_configFilePath, FileMode.Open);

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the bin, the config file isn't nested under that directory.

benrr101 pushed a commit that referenced this pull request Aug 8, 2025
(This code is effectively dead since it is not being referenced anywhere, and there are no other changes to the code. As such, we can bypass the one flaky test failure.)
paulmedynski added a commit that referenced this pull request Aug 14, 2025
(This code is effectively dead since it is not being referenced anywhere, and there are no other changes to the code. As such, we can bypass the one flaky test failure.)
paulmedynski added a commit that referenced this pull request Aug 28, 2025
* Moved existing stress test projects from ADO into GitHub. (#3546)

(This code is effectively dead since it is not being referenced anywhere, and there are no other changes to the code. As such, we can bypass the one flaky test failure.)

* Minimal modifications to stress tests for Linux (#3548)

* Minimal modifications to get the stress tests building and running on Linux.

* Updated sample config to avoid a dummy password.

* User Story 38131: Stress Tests CI

- Added config file path configuration via STRESS_CONFIG_FILE environment variable.
- Added support for JSON config file.
- Fixed process exit code to reflect success vs failure.
- Added emission to console.
- Added emission of data source.
- Added EntraId password-based auth.
- Added CI stage.
- Added NuGet package version to MDS assembly.
- Added dotnet build configuration pararmeter to CI entry points.
- Added MDS package version configurability to stress tests.
- Added all target frameworks that MDS supports.
- Each test run now creates and drops its own database to avoid collisions.
- Moved to 1ES images where possible.
- Using a local SQL Server that we setup as part of CI.

* User Story 38131: Stress Tests CI

- Added top-level pipeline flag to enable stress tests, deafult is false until tests are reliably passing.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants