viernes, 2 de septiembre de 2011

Kernel mode test suite: Lo que nos diferencia de Wine

Sabido es que el proyecto ReactOS utiliza en gran medida código de Wine, sobre todo en forma de librerías y bibliotecas DLL. Para testear dichas librerías, el proyecto Wine tiene sus propias suites de pruebas, llamadas Winetests. Y dado que ReactOS utiliza librerías de Wine, desde luego, también debería usar sus programas de prueba. Y lo hace: ReactOS usa los Winetests en sus sistemas de testeo automatizado.

Pero el proyecto Wine tan sólo pretende recrear el comportamiento de un sistema Windows en modo usuario. Es decir, pretende simplemente que las aplicaciones Windows que se ejecuten en modo usuario, funcionen. Desde luego sabemos que no es nada fácil, y la labor que realizan los chicos de Wine es inmesa y extraordinaria.

Entonces, ¿qué pasa con los drivers? Éstos son ejecutados en modo núcleo (kernel mode). No forman parte del proyecto Wine, pero sí de ReactOS. Y si no forman parte del proyecto Wine, Wine no puede proporcionarnos sus Winetests. Y aquí es donde entra en juego Google Summer of Code.

Un estudiante alemán, Thomas Faber (ThFabba), que ya había colaborado anteriormente con ReactOS implemmentando código, presentó una suite de pruebas al estilo Winetests, pero diseñada específicamente para código en modo núcleo. No hace falta decir que, de hecho, ha sido diseñada específicamente para ReactOS.
Esta nueva suite proporcionará a los desarrolladores una herramienta con la que podrán comparar su código con el comportamiento de Windows, y hacerlo más compatible, permitiendo, entre otras cosas, el corregir aquellos defectos que hacen que los drivers sigan fallando en ReactOS.

Dicho de otra forma, se acercan buenos tiempos para nuestro SO... :)