Skip to content

Conversation

@not-napoleon
Copy link
Member

In the course of other work I found a few places where we were creating non-parameterized tests from within the parameterized test drivers for a few ESQL functions. This causes those tests to be run for every parameter combination, even though the tests themselves do not change anything, resulting in a lot of extra test overhead for no additional coverage.

I cleaned up three classes:

  • EndsWithTests ran 832 tests before this, and now runs 640 tests
  • StartsWithTests ran 208 before this, and now runs 160
  • InTests ran 168 before this, and now runs 28

So overall, that's 369 redundant test runs removed (including the fact that the 11 tests I moved still run once in their new classes), and further savings if we later expand those parameterized tests.

@not-napoleon not-napoleon added >test Issues or PRs that are addressing/adding tests auto-backport Automatically create backport pull requests when merged :Analytics/ES|QL AKA ESQL v9.2.0 v9.1.1 v8.19.1 v9.0.5 labels Jul 10, 2025
@elasticsearchmachine elasticsearchmachine added the Team:Analytics Meta label for analytical engine team (ESQL/Aggs/Geo) label Jul 10, 2025
@elasticsearchmachine
Copy link
Collaborator

Pinging @elastic/es-analytical-engine (Team:Analytics)

@not-napoleon not-napoleon enabled auto-merge (squash) July 10, 2025 19:53
@not-napoleon not-napoleon merged commit 5759822 into elastic:main Jul 15, 2025
33 checks passed
not-napoleon added a commit to not-napoleon/elasticsearch that referenced this pull request Jul 15, 2025
In the course of other work I found a few places where we were creating non-parameterized tests from within the parameterized test drivers for a few ESQL functions. This causes those tests to be run for every parameter combination, even though the tests themselves do not change anything, resulting in a lot of extra test overhead for no additional coverage.

I cleaned up three classes:

    EndsWithTests ran 832 tests before this, and now runs 640 tests
    StartsWithTests ran 208 before this, and now runs 160
    InTests ran 168 before this, and now runs 28

So overall, that's 369 redundant test runs removed (including the fact that the 11 tests I moved still run once in their new classes), and further savings if we later expand those parameterized tests.
@elasticsearchmachine
Copy link
Collaborator

💔 Backport failed

Status Branch Result
9.1
8.19 Commit could not be cherrypicked due to conflicts
9.0 Commit could not be cherrypicked due to conflicts

You can use sqren/backport to manually backport by running backport --upstream elastic/elasticsearch --pr 131049

@nik9000
Copy link
Member

nik9000 commented Jul 15, 2025

I'm backporting.

elasticsearchmachine pushed a commit that referenced this pull request Jul 15, 2025
In the course of other work I found a few places where we were creating non-parameterized tests from within the parameterized test drivers for a few ESQL functions. This causes those tests to be run for every parameter combination, even though the tests themselves do not change anything, resulting in a lot of extra test overhead for no additional coverage.

I cleaned up three classes:

    EndsWithTests ran 832 tests before this, and now runs 640 tests
    StartsWithTests ran 208 before this, and now runs 160
    InTests ran 168 before this, and now runs 28

So overall, that's 369 redundant test runs removed (including the fact that the 11 tests I moved still run once in their new classes), and further savings if we later expand those parameterized tests.
nik9000 pushed a commit to nik9000/elasticsearch that referenced this pull request Jul 15, 2025
In the course of other work I found a few places where we were creating non-parameterized tests from within the parameterized test drivers for a few ESQL functions. This causes those tests to be run for every parameter combination, even though the tests themselves do not change anything, resulting in a lot of extra test overhead for no additional coverage.

I cleaned up three classes:

    EndsWithTests ran 832 tests before this, and now runs 640 tests
    StartsWithTests ran 208 before this, and now runs 160
    InTests ran 168 before this, and now runs 28

So overall, that's 369 redundant test runs removed (including the fact that the 11 tests I moved still run once in their new classes), and further savings if we later expand those parameterized tests.
nik9000 pushed a commit to nik9000/elasticsearch that referenced this pull request Jul 15, 2025
In the course of other work I found a few places where we were creating non-parameterized tests from within the parameterized test drivers for a few ESQL functions. This causes those tests to be run for every parameter combination, even though the tests themselves do not change anything, resulting in a lot of extra test overhead for no additional coverage.

I cleaned up three classes:

    EndsWithTests ran 832 tests before this, and now runs 640 tests
    StartsWithTests ran 208 before this, and now runs 160
    InTests ran 168 before this, and now runs 28

So overall, that's 369 redundant test runs removed (including the fact that the 11 tests I moved still run once in their new classes), and further savings if we later expand those parameterized tests.
nik9000 pushed a commit to nik9000/elasticsearch that referenced this pull request Jul 15, 2025
In the course of other work I found a few places where we were creating non-parameterized tests from within the parameterized test drivers for a few ESQL functions. This causes those tests to be run for every parameter combination, even though the tests themselves do not change anything, resulting in a lot of extra test overhead for no additional coverage.

I cleaned up three classes:

    EndsWithTests ran 832 tests before this, and now runs 640 tests
    StartsWithTests ran 208 before this, and now runs 160
    InTests ran 168 before this, and now runs 28

So overall, that's 369 redundant test runs removed (including the fact that the 11 tests I moved still run once in their new classes), and further savings if we later expand those parameterized tests.
nik9000 pushed a commit to nik9000/elasticsearch that referenced this pull request Jul 15, 2025
In the course of other work I found a few places where we were creating non-parameterized tests from within the parameterized test drivers for a few ESQL functions. This causes those tests to be run for every parameter combination, even though the tests themselves do not change anything, resulting in a lot of extra test overhead for no additional coverage.

I cleaned up three classes:

    EndsWithTests ran 832 tests before this, and now runs 640 tests
    StartsWithTests ran 208 before this, and now runs 160
    InTests ran 168 before this, and now runs 28

So overall, that's 369 redundant test runs removed (including the fact that the 11 tests I moved still run once in their new classes), and further savings if we later expand those parameterized tests.
@nik9000
Copy link
Member

nik9000 commented Jul 15, 2025

Backports:
#131327
#131331

nik9000 added a commit that referenced this pull request Jul 16, 2025
In the course of other work I found a few places where we were creating non-parameterized tests from within the parameterized test drivers for a few ESQL functions. This causes those tests to be run for every parameter combination, even though the tests themselves do not change anything, resulting in a lot of extra test overhead for no additional coverage.

I cleaned up three classes:

    EndsWithTests ran 832 tests before this, and now runs 640 tests
    StartsWithTests ran 208 before this, and now runs 160
    InTests ran 168 before this, and now runs 28

So overall, that's 369 redundant test runs removed (including the fact that the 11 tests I moved still run once in their new classes), and further savings if we later expand those parameterized tests.

Co-authored-by: Mark Tozzi <[email protected]>
elasticsearchmachine pushed a commit that referenced this pull request Jul 16, 2025
* Clean up non-parameterized tests in the wrong place (#131049)

In the course of other work I found a few places where we were creating non-parameterized tests from within the parameterized test drivers for a few ESQL functions. This causes those tests to be run for every parameter combination, even though the tests themselves do not change anything, resulting in a lot of extra test overhead for no additional coverage.

I cleaned up three classes:

    EndsWithTests ran 832 tests before this, and now runs 640 tests
    StartsWithTests ran 208 before this, and now runs 160
    InTests ran 168 before this, and now runs 28

So overall, that's 369 redundant test runs removed (including the fact that the 11 tests I moved still run once in their new classes), and further savings if we later expand those parameterized tests.

* Fixup

---------

Co-authored-by: Mark Tozzi <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

:Analytics/ES|QL AKA ESQL auto-backport Automatically create backport pull requests when merged Team:Analytics Meta label for analytical engine team (ESQL/Aggs/Geo) >test Issues or PRs that are addressing/adding tests v8.19.1 v9.0.5 v9.1.1 v9.2.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants