[WIP] Add tap-test-gen skill for TAP test generation#5369
[WIP] Add tap-test-gen skill for TAP test generation#5369wazir-ahmed wants to merge 1 commit intov3.0from
tap-test-gen skill for TAP test generation#5369Conversation
Add a new Claude/OpenCode skill for generating ProxySQL TAP tests with supporting documentation covering the test infrastructure, group system and CI integration. - Create `tap-test-gen` skill with workflows for unit and integration tests, including templates and best practices - Add `tap_test_groups.md` documenting the CI group system, hooks and environment variable filtering - Add `tap_test_infra.md` describing available infrastructures, hostgroups and the test runner - Reorganize tap docs into `doc/tap/` directory - Link reference docs to skill via symlinks Signed-off-by: Wazir Ahmed <wazir@proxysql.com>
Summary of ChangesHello @wazir-ahmed, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request introduces a new skill aimed at streamlining the development and understanding of ProxySQL's TAP (Test Anything Protocol) tests. It provides comprehensive documentation on the test group system, infrastructure components, and best practices for creating and integrating both unit and integration tests into the continuous integration pipeline. The changes facilitate easier test generation, clearer CI configuration, and improved debugging capabilities for test failures. Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Changelog
Activity
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
tap-test-gen skill for TAP test generationtap-test-gen skill for TAP test generation
📝 WalkthroughWalkthroughDocumentation files are added to describe the TAP test infrastructure, test grouping system, and test generation workflow for ProxySQL. No code changes are introduced; the additions provide comprehensive reference materials for managing and running TAP-based tests. Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches🧪 Generate unit tests (beta)
No actionable comments were generated in the recent review. 🎉 🧹 Recent nitpick comments
Tip Issue Planner is now in beta. Read the docs and try it out! Share your feedback on Discord. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
There was a problem hiding this comment.
Code Review
This pull request introduces a new tap-test-gen skill and comprehensive documentation for the TAP testing framework in ProxySQL. The changes include detailed guides on test infrastructure, test groups, and best practices for writing both unit and integration tests. The documentation is well-structured and will be a great resource for developers. I've found a few minor issues in the documentation, including a broken link, an inconsistent code example, and an incomplete table of environment variables. My review includes suggestions to address these points to improve the clarity and correctness of the new documentation.
| # test/tap/groups/your-backend/pre-proxysql.bash | ||
| #!/usr/bin/env bash | ||
|
|
||
| INFRA=infra-$(basename $(dirname "$0") | sed 's/-g[0-9]//') |
There was a problem hiding this comment.
The shell command to derive the infrastructure name is inconsistent with the one in the example on line 210 and the rule described in section 4.3. It's missing | sed 's/_.*//' to handle group names with underscore suffixes (like rand10_1). For consistency and robustness, please update the command.
| INFRA=infra-$(basename $(dirname "$0") | sed 's/-g[0-9]//') | |
| INFRA=infra-$(basename $(dirname "$0") | sed 's/-g[0-9]//' | sed 's/_.*//') |
|
|
||
| ## Related Documents | ||
|
|
||
| - [tap_test_agent_skill.md](tap_test_agent_skill.md) - Main skill document |
There was a problem hiding this comment.
The link to [tap_test_agent_skill.md](tap_test_agent_skill.md) appears to be broken, as this file is not part of the repository or this pull request. Based on the context of this PR, did you mean to link to the new tap-test-gen skill documentation? Please correct the link to point to the intended document.
| | Variable | Description | Default | | ||
| |----------|-------------|---------| | ||
| | `TAP_HOST` | ProxySQL host | `127.0.0.1` | | ||
| | `TAP_PORT` | ProxySQL MySQL port | `6033` | | ||
| | `TAP_ADMINHOST` | ProxySQL admin host | `127.0.0.1` | | ||
| | `TAP_ADMINPORT` | ProxySQL admin port | `6032` | | ||
| | `TAP_USERNAME` | Test user username | `testuser` | | ||
| | `TAP_PASSWORD` | Test user password | `testuser` | | ||
| | `TAP_ADMINUSERNAME` | Admin username | `admin` | | ||
| | `TAP_ADMINPASSWORD` | Admin password | `admin` | | ||
| | `TAP_MYSQLHOST` | Backend MySQL host | `127.0.0.1` | | ||
| | `TAP_MYSQLPORT` | Backend MySQL port | `3306` | | ||
|
|
There was a problem hiding this comment.
The table of "Connection Variables" is incomplete. It's missing several variables that are mentioned later in the document in section 5.3 and are available to tests, such as TAP_MYSQLUSERNAME, TAP_MYSQLPASSWORD, and all the TAP_PGSQL* variables. Please update the table to include all available connection-related environment variables for completeness and to avoid confusion.
Here are the missing variables that should be added to the table:
TAP_MYSQLUSERNAMETAP_MYSQLPASSWORDTAP_PGSQLHOSTTAP_PGSQLPORTTAP_PGSQLUSERNAMETAP_PGSQLPASSWORD
|
retest this please |
|
@wazir-ahmed : pull requests that do not need CI run needs |



Add a new Claude/OpenCode skill for generating ProxySQL TAP tests with supporting documentation covering the test infrastructure, group system and CI integration.
tap-test-genskill with workflows for unit and integration tests, including templates and best practicestap_test_groups.mddocumenting the CI group system, hooks and environment variable filteringtap_test_infra.mddescribing available infrastructures, hostgroups and the test runnerdoc/tap/directory[skip-ci]
Summary by CodeRabbit