As Andreas Mohr pointed out a while back, http://www.winehq.org/pipermail/wine-devel/2005-August/039602.html we really need a win16 test suite to make sure our win16 support doesn't rot. As far as I know, nobody's managed to get win16 tests into the tree, presumably because the build process or maybe stdio for win16 tests hasn't been figured out.
So I've asked intern Jennifer Lai to try to merge all the win16 tests people have posted over the years together, and demonstrate how to build them using openwatcom.
I've only found three submitted 16 bit tests so far: http://www.winehq.org/pipermail/wine-devel/2006-November/052479.html http://www.winehq.org/pipermail/wine-patches/2004-October/013267.html http://www.winehq.org/pipermail/wine-patches/2004-October/013268.html Anyone know of any more?
(e.g. Andreas, could you send us the trove of 16 bit tests you were talking about?)
Thanks, Dan
Dan Kegel wrote:
As Andreas Mohr pointed out a while back, http://www.winehq.org/pipermail/wine-devel/2005-August/039602.html we really need a win16 test suite to make sure our win16 support doesn't rot. As far as I know, nobody's managed to get win16 tests into the tree, presumably because the build process or maybe stdio for win16 tests hasn't been figured out.
So I've asked intern Jennifer Lai to try to merge all the win16 tests people have posted over the years together, and demonstrate how to build them using openwatcom.
I've only found three submitted 16 bit tests so far: http://www.winehq.org/pipermail/wine-devel/2006-November/052479.html http://www.winehq.org/pipermail/wine-patches/2004-October/013267.html http://www.winehq.org/pipermail/wine-patches/2004-October/013268.html
We have to distinguish between win16 and dos tests. dos functions are called with interrupts, win16 with linked functions (please correct me if I'm wrong). IMO it should be possible to run them with make test like any other test. And if openwatcom/turbo c is available it should be possilbe to run make crosstest to build win16/dos binaries.
For dos I had a test (I think I really have lost it) which compiled on linux with gcc and in dos6.2 with turbo C. In linux/wine it emulated an interrupt with DOSVM_EmulateInterruptPM, and in dos it used real interrupts. I'm not sure whether this approach would be acceptable, but I was able to run make test and build dos binaries from the same sources.
For win16 I have no idea what thunking/linking voodoo is required.
Its perhaps also noteworthy that wines win16 implementation differs fundamentally from the windows one. Wine calls win32 functions, while windows calls dos functions (directly or via vdm).
Markus
On 7/9/07, Markus Amsler markus.amsler@oribi.org wrote:
We have to distinguish between win16 and dos tests.
Absolutely. dos .com executables currently don't work, but win16 .exe's with the same contents do work.
I plan to test DOS .com files using very simple pure assembly. (That was the real way to write DOS programs anyway :-)
IMO it should be possible to run them with make test like any other test. And if openwatcom/turbo c is available it should be possilbe to run make crosstest to build win16/dos binaries.
For dos I had a test (I think I really have lost it) which compiled on linux with gcc and in dos6.2 with turbo C. In linux/wine it emulated an interrupt with DOSVM_EmulateInterruptPM, and in dos it used real interrupts. I'm not sure whether this approach would be acceptable, but I was able to run make test and build dos binaries from the same sources.
Sounds like too much magic for me. I would rather simply require openwatcom; it's free software.
For win16 I have no idea what thunking/linking voodoo is required.
No voodoo required; openwatcom Just Works.
Its perhaps also noteworthy that wines win16 implementation differs fundamentally from the windows one. Wine calls win32 functions, while windows calls dos functions (directly or via vdm).
Shouldn't affect our tests, though, should it? - Dan
Dan Kegel wrote:
On 7/9/07, Markus Amsler markus.amsler@oribi.org wrote:
We have to distinguish between win16 and dos tests.
Absolutely. dos .com executables currently don't work, but win16 .exe's with the same contents do work.
I plan to test DOS .com files using very simple pure assembly. (That was the real way to write DOS programs anyway :-)
IMO it should be possible to run them with make test like any other test. And if openwatcom/turbo c is available it should be possilbe to run make crosstest to build win16/dos binaries.
For dos I had a test (I think I really have lost it) which compiled on linux with gcc and in dos6.2 with turbo C. In linux/wine it emulated an interrupt with DOSVM_EmulateInterruptPM, and in dos it used real interrupts. I'm not sure whether this approach would be acceptable, but I was able to run make test and build dos binaries from the same sources.
Sounds like too much magic for me. I would rather simply require openwatcom; it's free software.
License fun. It's OSI approved, but it looks it isn't good enough even for debian non-free (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=376431).
For win16 I have no idea what thunking/linking voodoo is required.
No voodoo required; openwatcom Just Works.
You're right it's a lot simpler. Perhaps we should check for win16 compiler in configure, so if openwatcom is present make test builds/runs also the win16/dos tests.
Its perhaps also noteworthy that wines win16 implementation differs fundamentally from the windows one. Wine calls win32 functions, while windows calls dos functions (directly or via vdm).
Shouldn't affect our tests, though, should it?
I don't think so.