Macros, Constantes y Helpers (LTP y Kernel)
Categorización General
En el desarrollo de la suite de pruebas del proyecto foundry, distinguimos dos categorías principales de macros y definiciones auxiliares:
Helpers Seguros de LTP (LTP Safe Macros): Encapsuladores provistos por la API de LTP (
tst_test.h) que ejecutan la función/syscall correspondiente y realizan una comprobación automática de errores. Si la llamada falla, la macro invoca internamentetst_brk(TBROK, ...)abortando la ejecución con una descripción clara.Flags y Constantes de Sistema (POSIX / Kernel Linux): Definiciones mediante directivas
#defineprovenientes de las cabeceras del sistema (<fcntl.h>,<unistd.h>,<sys/mman.h>) que configuran el comportamiento de las llamadas al sistema.
Macros de Seguridad de LTP (LTP Safe Macros)
1. SAFE_OPEN()
Encapsula la llamada al sistema open() o openat().
#define SAFE_OPEN(path, flags, ...)
Uso: Abre el archivo especificado por
path. Si la operación falla (devuelve-1), reporta un fallo de infraestructura en LTP (TBROK) y detiene la prueba.Firma equivalente:
int safe_open(const char *file, int lineno, const char *path, int flags, ...);
2. SAFE_FTRUNCATE()
Encapsula la llamada al sistema ftruncate().
#define SAFE_FTRUNCATE(fd, length)
Uso: Define o modifica el tamaño del archivo referenciado por el descriptor
fda la longitud especificada porlength(en bytes). Si falla, interrumpe la prueba con errorTBROK.
Constantes de Sistema y POSIX
1. Flags de Apertura de Archivos (<fcntl.h>)
Constante |
Origen |
Descripción |
|---|---|---|
|
POSIX |
Solicita acceso de lectura y escritura al archivo. |
|
POSIX |
Si el archivo especificado no existe, el kernel lo creará. Requiere el parámetro de permisos (p. ej. |
|
Linux (Específico) |
Minimiza el uso de caché de página (Page Cache). La E/S se realiza directamente entre espacio de usuario y dispositivo. |
Glosario Comparativo
Elemento |
Tipo / Origen |
Función Principal |
|---|---|---|
|
Macro (LTP) |
Apertura segura de archivo con verificación implícita de error. |
|
Macro (LTP) |
Ajuste seguro de tamaño de archivo mediante FD. |
|
Constante (POSIX) |
Flag de estado: Lectura/Escritura. |
|
Constante (POSIX) |
Flag de creación si el recurso no existe. |
|
Función C (POSIX) |
Consulta del tamaño de página de memoria en bytes (arquitectura/kernel). |