Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement the 10k Test Suite #214

Open
wants to merge 14 commits into
base: master
Choose a base branch
from

Conversation

JCRPaquin
Copy link
Contributor

@JCRPaquin JCRPaquin commented Apr 23, 2024

10k Test Suite - Catching query parsing regressions in development

What?

This PR implements a test suite of ~13k roughly deduplicated user queries to prevent parser regressions. It also includes some bug fixes that were necessary to get this test case working, including a particularly pernicious unicode normalization bug.

Why?

As we change Montysolr's query engine, it's important that users' queries continue to work as expected. This PR ensures there's no gap in functionality between versions.

Completion tracking

  • Initial implementation
  • Sign-off on the release of the query dataset

What next?

  • We'd like to start tracking performance for different query types over time. This involves actually running queries against a fixed instance of Montysolr (which we currently don't do).
  • The 10k test suite may be used in production as a canary to catch broken services before our users do.

I needed to patch an issue in PyUnicode so I made a new fork; will remove if/when it gets upstreamed.
Prior to this the code would error out because it expected at least 1 part. In cases where there are additional parenthesis around the string (it happens), and other miscellaneous inputs, there can be 0 parts instead.
This causes the unparsed author name to pass through the system. In previous versions there would be (incorrect) null characters added to the output of this pass if the author name couldn't be parsed.
This normalization pass helps to consolidate the Unicode code points in the string prior to other passes. Without this step some important parts of certain code points can be eliminated, resulting in mangled output.
@JCRPaquin
Copy link
Contributor Author

Added @ehenneken and @aaccomazzi to double check the unicode normalization fixes.
Added @shinyichen for code review.

cc @kelockhart

Copy link
Member

@aaccomazzi aaccomazzi left a comment

Choose a reason for hiding this comment

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

Looks good to me

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants