Feature Request: Tests filters in pipeline
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 28/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Área
- testing
Línea de trabajo
Comienza leyendo OpenTabletDriver.Plugin/Output/OutputMode.cs alrededor de las líneas 62-90 para entender cómo PipelinePosition controla la inserción de filtros. Define primero el enfoque de pruebas para 0.6.x y, después, cubre los IDeviceReports no consumidos y los valores no válidos de PipelinePosition sin ampliar significativamente la cobertura de las APIs de 0.5.x.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- Shell
- Estrellas
- 8
- Forks
- 39
- Merge medio
- 2 d 13 min
- PR fusionados (30 d)
- 4
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de OpenTabletDriver/Plugin-Repository
-
Add simple PR testsAbiertoenhancement
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
OpenTabletDriver/Plugin-Repository#77 · 4 comentarios ·
Todos los issues de OpenTabletDriver/Plugin-Repository
Issues similares
-
electron tech debt
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
alunduil/alunduil-chezmoi#870 ·
Los mantenedores suelen responder en 1 día
-
package-update
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
oSoWoSo/vOid_Community_repOsitory#268 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
feature good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
dsx-ai-factory/infra-controller#7298 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
rebrand-literal-gutter: uhttpd section-vocabulary check trips on a COMMENT (uhttpd.luci in 92-tollgate-admin-setup:178)Posiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
OpenTollGate/tollgate-module-basic-go#723 ·
Los mantenedores suelen responder en 1 día