Skip to content

Fase 9.1: tests unitarios en C con Unity - #11

Merged
kapumota merged 1 commit into
mainfrom
fase-9-1-tests-unitarios-unity
Jun 9, 2026
Merged

kapumota merged 1 commit into
mainfrom
fase-9-1-tests-unitarios-unity

Conversation

@kapumota

@kapumota kapumota commented Jun 9, 2026

Copy link
Copy Markdown
Owner

Objetivo

Agregar tests unitarios en C con Unity para fortalecer la validación interna de AgentGuard FastPath antes del release v1.0.0.

Esta fase complementa las pruebas de integración, regresión, streaming, GuardSketch y evaluación experimental con una capa de pruebas pequeñas, rápidas y autocontenidas.

Cambios principales

  • Se agregó third_party/unity/.
  • Se agregó tests/unit/.
  • Se agregó tests/unit/test_probabilistic.c.
  • Se agregó tests/unit/test_graph_model.c.
  • Se agregó tests/unit/test_risk_helpers.c.
  • Se agregó docs/TESTS_UNITARIOS.md.
  • Se agregó el target make test-unit.

Qué se valida

Para estructuras probabilísticas:

  • Bloom Filter: elemento insertado debe encontrarse.
  • Bloom Filter: no debe producir falsos negativos para elementos insertados.
  • Count-Min Sketch: frecuencia estimada no debe ser menor que la frecuencia real.
  • Count-Min Sketch: claves distintas deben seguir siendo consultables.
  • HyperLogLog: conjunto vacío debe estimar cerca de cero.
  • HyperLogLog: elementos repetidos no deben crecer como cardinalidad única.
  • Space-Saving: elementos frecuentes deben conservarse.
  • Odd Sketch: entradas similares deben producir mayor coincidencia que entradas distintas.

Para grafo:

  • Insertar nodo de proceso.
  • Insertar relación proceso-archivo.
  • Insertar relación proceso-destino.
  • Rechazar arista si falta un nodo.
  • Consultar PID inexistente.
  • Respetar límite de recorrido.

Para helpers de riesgo:

  • Score cero sin señales.
  • Score alto con archivo sensible y destino bloqueado.
  • Score máximo limitado a 100.
  • Niveles de riesgo.
  • Incremento por destinos únicos.

Validación ejecutada

make clean
make
make test-fastpath
make test-regression
make test-streaming
make test-guardsketch
make test-unit
make clean

Alcance

Esta fase no modifica src/.

Esta fase no modifica el CLI.

Esta fase no modifica el motor de detección.

Esta fase no modifica eBPF.

Esta fase no cambia GuardSketch.

Esta fase no agrega dependencias externas del sistema, porque Unity queda versionado en third_party/unity/.

Nota técnica

Los tests unitarios agregados son autocontenidos y validan invariantes de diseño.

Todavía no prueban directamente una biblioteca libagfast, porque el proyecto aún no separa formalmente el motor de análisis del CLI. Esa separación queda como mejora posterior para una versión futura.

Estrategia de merge

Para este PR se recomienda usar Merge pull request.

No se recomienda usar Squash and merge, porque esta rama representa una fase completa del proyecto y conviene conservar la trazabilidad técnica.

Criterio de aceptación

La Fase 9.1 se considera correcta si:

  • make compila correctamente.
  • make test-fastpath pasa.
  • make test-regression pasa.
  • make test-streaming pasa.
  • make test-guardsketch pasa.
  • make test-unit pasa.
  • git status --short queda limpio después de make clean.

@kapumota
kapumota merged commit a1dcf13 into main Jun 9, 2026
3 checks passed
@kapumota
kapumota deleted the fase-9-1-tests-unitarios-unity branch June 9, 2026 04:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant