Could you also make test.c into a regression test for inclusion into Wine? That is almost more important than the actual patch to Wine - if we have the conformance test, it ensures changes to Wine in the future does not destroy functionality.
regards, Jakob
Jakob Eriksson wrote:
Could you also make test.c into a regression test for inclusion into Wine? That is almost more important than the actual patch to Wine - if we have the conformance test, it ensures changes to Wine in the future does not destroy functionality.
I agree that this would be a good idea. Dimitrie also had the same suggestion in response to my patch submission. With all the discussion about conformance testing in this forum recently, the idea was already in the back of my mind when I submitted the original patch.
So far I have never tried to run any of the existing tests or looked at how they are implemented so it may take me a bit to write a test for the BuildCommDCB functions.
One question I have is how should the differences in Windows versions be handled? This question applies to both the wine implementation and the tests.
One example is that BuildCommDCB in Windows 95 sets the DCBlength member of DCB but Windows 2000 does not. Should wine account for this difference? Should the regression test? In the patch I submitted I always set the DCBlength member and documented the difference in Windows versions in a comment.
Kevin
On September 9, 2003 08:46 pm, Kevin Groeneveld wrote:
One question I have is how should the differences in Windows versions be handled? This question applies to both the wine implementation and the tests.
One example is that BuildCommDCB in Windows 95 sets the DCBlength member of DCB but Windows 2000 does not. Should wine account for this difference? Should the regression test? In the patch I submitted I always set the DCBlength member and documented the difference in Windows versions in a comment.
These are good questions, and there is no absolute answer. However, as a rule of thumb, we try follow the NT lineage if the behaviors are conflicting. In this case, it seems that the Win95 one is the more "compatible" one, so I'd stick to that in the implementation for now if you have apps that depend on that.
In other words, if a certain thing is implemented differently in various versions of Windows it most likely means that apps don't depend on any one behavior. So we are free to implement any one of them, and as for testing we don't need to test for any one in particular.
On Tue, 9 Sep 2003, Kevin Groeneveld wrote: [..].
One question I have is how should the differences in Windows versions be handled? This question applies to both the wine implementation and the tests.
One example is that BuildCommDCB in Windows 95 sets the DCBlength member of DCB but Windows 2000 does not. Should wine account for this difference? Should the regression test? In the patch I submitted I always set the DCBlength member and documented the difference in Windows versions in a comment.
In the conformance test you must accept both behaviors. This might mean setting the field to some arbitrary value before the system call and then checking its value is either the one you set before (that would be the case on NT) or the one you expect (as on Win9x).