Metodología LTP

Absorber LTP (Linux Test Project) y la arquitectura del kernel a base de empolvarse manuales sin tocar código es insufrible. La mejor forma de aprender es mediante práctica guiada y análisis de causa raíz.

Para construir esa metodología de aprendizaje mientras se desarrolla, se propone el siguiente marco de trabajo iterativo:


Metodología de Aprendizaje Práctico en LTP

# Tu código aquí
┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│  1. Ejecución   │───>│  2. Anatómicas  │───>│  3. Inmersión   │
│   y Casuística  │    │   del Test (C)  │    │   en Kernel/libc│
└─────────────────┘    └─────────────────┘    └─────────────────┘
         │                                             │
         └─────────────────────────────────────────────┘
                          4. Refactor / Fix

1. Clasificación de resultados (Casuística)

En lugar de ver las pruebas como un simple “pasa/falla”, serań divididas en tres bloques conceptuales al ejecutarlas:

  • TPASS (Lógica POSIX): Entender por qué pasa (qué llamada al sistema valida y qué estructuras de datos de la glibc/kernel están en juego).

  • TCONF (Límites/Soporte): Como vimos con sysconf01, entender la diferencia entre un fallo y una funcionalidad no implementada o deshabilitada en el kernel de Rocky Linux.

  • TFAIL (Investigación): El plato fuerte. Diagnosticar si es un bug de la prueba, una regresión del kernel, o un problema de entorno/permisos.

2. Anatomía de la prueba (Código fuente en C)

Cuando se elija una llamada al sistema o suite (por ejemplo, process, memory, fs):

  • Revisar la API interna de LTP (tst_test.h, TST_EXP_PASS, etc.).

  • Identificar cómo LTP aísla la prueba (namespaces, cgroups, tst_tmpdir).

3. Inmersión en el Kernel (man 2 + Código fuente)

  • Contrastar lo que exige la prueba con la página de manual del syscall.

  • Si hay dudas de comportamiento, usar herramientas del kernel que ya están configuradas en las reglas de sudoers (trace-cmd, perf, bpftool, o un rastreo rápido con strace).