Valiemon 0.05 fails boolean, nested-schema, and dynamic-loading tests on both backends

Abierto
#1,419 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
42/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
java, perl

Línea de trabajo

Comienza ejecutando los casos específicos de t/01-attr-primitives.t, t/02-attr-required.t, t/03-attr-format.t y t/03-attr-oneOf.t en ambos backends. Rastrea el manejo compartido en tiempo de ejecución de los valores booleanos de Types::Serialiser, los esquemas sin properties, los esquemas oneOf anidados y la carga de Valiemon::Attributes::Format. Se considera terminado cuando los 25 archivos de tests upstream y los 142 tests pasan en ambos backends, con cobertura de regresión específica para estos fallos.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

area:backend area:cpan-port area:runtime bug

Summary

Valiemon v0.05 fails six upstream subtests under PerlOnJava even though its complete upstream suite passes under system Perl. The failures reproduce on both the JVM and interpreter backends and cover boolean classification, nested schema properties, dynamic attribute loading, and oneOf validation.

Observed in CPAN random tester run 20260916-111623-23683.

Reproduction results

  • System Perl 5.42.2: all 25 test files and 142 tests pass.
  • PerlOnJava JVM backend: the archived run reports 6 failed subtests; focused reruns reproduce the failures.
  • PerlOnJava interpreter backend: the same focused failures reproduce.

The affected upstream tests are:

  • t/01-attr-primitives.t
  • t/02-attr-required.t
  • t/03-attr-format.t
  • t/03-attr-oneOf.t

Most of the remaining suite passes, including context, validator, type, collection, reference, draft, and other attribute tests.

Observed failures

Boolean classification

is_boolean and is_boolean_perl reject boolean values supplied by Types::Serialiser, including the values tested through Types::Serialiser::true and Types::Serialiser::false. The failures are present on both backends. The suite's TODO checks for weak numeric typing are separate from these non-TODO failures.

Required schemas and nested properties

t/02-attr-required.t aborts while validating a schema that has required but no properties member:

`properties` must be an object at /properties

The same error appears in t/03-attr-oneOf.t for a nested schema with properties, reported at /oneOf/properties. This points to incorrect nested-hash dereference/autovivification or schema handling in the shared runtime. The upstream implementation behaves correctly under system Perl.

Dynamic attribute loading and version handling

use Valiemon::Attributes::Format fails with:

Invalid version format

After the import failure, the test falls through to the base Valiemon::Attributes::is_valid method and reports that the method is not implemented. This indicates a PerlOnJava module-loading/version-resolution problem rather than a format-validation result.

Dependency and environment context

Valiemon is pure Perl. The test run used its normal dependencies, including Class::Accessor::Lite 0.08, Data::Validate::URI 0.07, List::MoreUtils 0.430, and Types::Serialiser 1.01. NetAddr::IP 4.079 appears as an XS dependency of the URI validation stack and was handled by the PerlOnJava fallback, but none of the reported failures is an XS-load error or a missing service/platform prerequisite. Reverse-dependency analysis is not applicable to the pure-Perl target distribution.

Acceptance criteria

  • All 25 upstream test files and 142 tests pass on the JVM backend.
  • The same suite passes on the interpreter backend.
  • Types::Serialiser booleans are recognized consistently by is_boolean and is_boolean_perl.
  • Schemas without properties do not acquire an invalid property structure during validation, and nested properties schemas work through oneOf.
  • Valiemon::Attributes::Format loads without an invalid-version error and its date-time tests execute normally.
  • Add focused project-owned regression coverage for the boolean, nested-schema/autovivification, and dynamic module-loading cases.
Lenguaje dominante
Perl
Estrellas
64
Forks
6
Merge medio
5 h 18 min
PR fusionados (30 d)
162

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de fglock/PerlOnJava

Todos los issues de fglock/PerlOnJava

Issues similares

Más issues de Perl

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.