fcmpact addPrototypes

Prueba de Estrés y Compatibilidad entre Plataformas

Scénario de test & Cas d'usage

Contexto empresarial

Un equipo de desarrollo de software está creando un conjunto de funciones que deben funcionar tanto en Windows como en Linux. Necesitan verificar cómo la acción `addPrototypes` maneja parámetros específicos de la plataforma y cómo reacciona ante entradas incorrectas, como intentar cargar una biblioteca FCMP inexistente.
Sobre el conjunto : fcmpact

Ejecución de funciones SAS FCMP en el entorno CAS.

Descubrir todas las acciones de fcmpact
Preparación de datos

Este escenario no necesita datos, se enfoca en la robustez de la acción ante parámetros inválidos o específicos de la plataforma.

¡Copiado!
1/* Escenario de prueba de errores y advertencias. No se requieren datos. */

Étapes de réalisation

1
Intentar usar el parámetro 'stdcall=true', que es específico de Windows, en un entorno Linux. Se espera que la acción lo ignore o emita una advertencia, pero no que falle.
¡Copiado!
1PROC CAS;
2 fcmpact.addPrototypes /
3 routineCode={"proto win_specific_func(int) returns int;"},
4 stdcall=true, /* Esta opción es solo para Windows */
5 funcTable={name="platform_test_protos", caslib="casuser", replace=true};
6QUIT;
2
Verificar que la tabla del paso 1 fue creada a pesar del uso de un parámetro no aplicable.
¡Copiado!
1 
2PROC CAS;
3TABLE.tableInfo / caslib="casuser", name="platform_test_protos";
4QUIT;
5 
3
Intentar cargar prototipos desde una biblioteca FCMP que no existe. Se espera que la acción falle de manera controlada con un mensaje de error claro.
¡Copiado!
1PROC CAS;
2 fcmpact.addPrototypes /
3 library="non_existent_lib",
4 funcTable={name="error_test_protos", caslib="casuser", replace=true};
5QUIT;

Resultado esperado


En el paso 1, la acción debe ejecutarse correctamente, creando la tabla 'platform_test_protos'. El log de SAS debería mostrar una advertencia indicando que 'stdcall' no es aplicable en Linux. En el paso 3, la acción debe fallar, y el log de SAS debe contener un error explícito que indique que la biblioteca 'non_existent_lib' no pudo ser encontrada o cargada. La tabla 'error_test_protos' no debe ser creada.