Feature Request: Tests filters in pipeline
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 28/100
- Type d'issue
- Fonctionnalité
- Clarté
- À clarifier
- Activité
- À l'abandon
- Domaine
- testing
Piste de recherche
Commencez par lire OpenTabletDriver.Plugin/Output/OutputMode.cs autour des lignes 62-90 afin de comprendre comment PipelinePosition contrôle l’insertion des filtres. Définissez d’abord l’approche de test pour 0.6.x, puis couvrez les IDeviceReports non consommés et les valeurs invalides de PipelinePosition sans augmenter significativement la couverture des API de 0.5.x.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
The OpenTabletDriver 0.6.x plugin pipeline has edge cases that can cause filter plugins to incorrectly drop reports.
For plugins with filters targeting the 0.6.x plugin API the following tests should be done.
Plugins targeting earlier API's like 0.5.x should preferably not be covered if it significantly increases the amount of code to maintain.
It is unclear how to implement these tests properly. I currently have 2 ideas:
- Have a separate repository that can be targeted as a GitHub action, that tests the filter in a virtual pipeline, which could be used to test pull requests on this repository in some way.
- Driver gets a "Plugin Developer" mode that would actively check active filters for these issues - this would help plugin developers from making these mistakes unintentionally.
While outside of the scope of this issue, future driver plugin API's should preferably be designed in a way that removes these necessary tests.
Minimum Test Coverage
At the very minimum, the tests should check for the following
Properly passes through IDeviceReports
Some filters incorrectly only pass through ITabletReports. Normal filters should ensure Consume(IDeviceReport) runs Emit?.Invoke(). Async filters should ensure ConsumeState() runs OnEmit() (or Emit?.Invoke()) on unconsumed reports.
Sets a PipelinePosition that isn't PreTransform or PostTransform (or an alias)
Currently, the driver only links filters that have a PipelinePosition with one of the above values as seen here:
https://github.com/OpenTabletDriver/OpenTabletDriver/blob/aa345e5b7365647f25c8651f3e35fb7dd4c13676/OpenTabletDriver.Plugin/Output/OutputMode.cs#L62-L90
This means that a PipelinePosition of e.g. 0 would result in the filter never being inserted into the pipeline.
If you think of anything else that would be worth testing for, please let us know here.
- Langage dominant
- Shell
- Étoiles
- 9
- Forks
- 39
- Merge moyen
- 2 j 13 min
- PR mergées (30 j)
- 4
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de OpenTabletDriver/Plugin-Repository
-
Add simple PR testsOuverteenhancement
Difficulté 3/5 1-2 jours Accessibilité débutants 35/100
OpenTabletDriver/Plugin-Repository#77 · 4 commentaires ·
Toutes les issues de OpenTabletDriver/Plugin-Repository
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
gnosis/gnosis_vpn#540 ·
Les mainteneurs répondent en général sous 1 jour
-
good first issue needs-triage priority: medium
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
melodic-software/claude-code-plugins#6631 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Lid close does not lock the session on Apple Silicon (lid-close bind skips omarchy-system-lid-close)Ouverte
Difficulté 1/5 1-3 heures Accessibilité débutants 90/100
omacom/omarchy-mac#701 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
A 20.x release after 21.0.0 would move `latest` back to 20.x, and `next` stays on the release candidatePeut-être pris @armando-navarro l’a pris aujourd’hui. Ouvertecomp: build/pipeline type: bug version: current (v17+)
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
angular/angularfire#3790 ·
Les mainteneurs répondent en général sous 3 jours