¿Hay un método recomendado para establecer las variables de entorno para pruebas unitarias?

StackOverflow https://stackoverflow.com/questions/1492706

  •  18-09-2019
  •  | 
  •  

Pregunta

Queremos usar CUnit para probar una biblioteca compartida que hemos desarrollado.

La biblioteca compartida se carga a través del mecanismo estándar LD_PRELOAD Solaris donde se utiliza una variable de entorno para volver a asignar una cadena que contiene una ruta de acceso a una nueva fecha y hora basado en la ruta del archivo.

Las pruebas iniciales se utilice un único valor para la variable de entorno se utiliza para controlar este de reasignación de las rutas de archivos.

¿Hay una manera sugerida, una receta tal vez ?, pase a nuestra variable de entorno en el entorno CUnit?

Estoy pensando en establecer el valor de prueba en la función de banco de pruebas opcional.

Editar Un poco más de detalle conforme a lo solicitado por @ eaanon01 a continuación. (-:

Nuestra shlib implementa una función que toma una ruta de directorio, por ejemplo

/home/www/my_tld

y luego usando una marca de tiempo Unix época, que convierte a una ruta de directorio dentro de nuestro archivo, por ejemplo

/home/www/my_tld/1088589843

de los contenidos de ese TLD en 20040630 10:04:03 GMT.

Como tenemos ningún control sobre los parámetros de las llamadas al sistema siendo interceptada, debemos usar una variable de entorno para pasar en la marca de tiempo requerido, en este ejemplo un valor de 1088589843.

Queremos pruebas unitarias para todas las llamadas al sistema Unix que estamos interceptando con este shlib y queremos utilizar el marco CUnit para las pruebas unitarias y tienen un valor fijo de la marca de tiempo que se pasa en el medio de la variable de entorno.

¿Hay un método recomendado para establecer la variable ambiental para cada unidad de prueba?

¿Fue útil?

Solución

Tienes la posibilidad de que init instalación y remoción de una función de "suite init" y una función de "suite limpia". No estoy seguro de que puedo comprender plenamente la pregunta, por favor explique un poco más.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top