Hello,
before Christmas i did some check on an NT4 system at work that leads to the attached tests. But currently i am not at work and have no windows system available.
Can someone please build and run the attached tests on a windows system (NT4 prefered) and report the results.
Thanks Stefan
Index: configure.ac =================================================================== RCS file: /home/wine/wine/configure.ac,v retrieving revision 1.116 diff -u -r1.116 configure.ac --- configure.ac 4 Jan 2003 02:52:05 -0000 1.116 +++ configure.ac 5 Jan 2003 16:05:33 -0000 @@ -1472,6 +1472,7 @@ dlls/winsock/Makefile dlls/winsock/tests/Makefile dlls/winspool/Makefile +dlls/winspool/tests/Makefile dlls/wintab32/Makefile dlls/wintrust/Makefile dlls/wow32/Makefile Index: dlls/winspool/Makefile.in =================================================================== RCS file: /home/wine/wine/dlls/winspool/Makefile.in,v retrieving revision 1.22 diff -u -r1.22 Makefile.in --- dlls/winspool/Makefile.in 12 Nov 2002 02:22:24 -0000 1.22 +++ dlls/winspool/Makefile.in 5 Jan 2003 16:07:17 -0000 @@ -13,6 +13,8 @@ info.c \ wspool.c
+SUBDIRS = tests + @MAKE_DLL_RULES@
### Dependencies: --- /dev/null Mon Sep 24 03:54:15 2001 +++ dlls/winspool/tests/Makefile.in Sun Jan 5 16:56:25 2003 @@ -0,0 +1,13 @@ +TOPSRCDIR = @top_srcdir@ +TOPOBJDIR = ../../.. +SRCDIR = @srcdir@ +VPATH = @srcdir@ +TESTDLL = winspool.drv +IMPORTS = winspool kernel32 ntdll + +CTESTS = \ + info.c + +@MAKE_TEST_RULES@ + +### Dependencies: --- /dev/null Mon Sep 24 03:54:15 2001 +++ dlls/winspool/tests/info.c Sun Jan 5 18:45:34 2003 @@ -0,0 +1,57 @@ +#include "wine/test.h" +#include "winbase.h" +#include "winerror.h" +#include "winspool.h" + +static void test_printer_directory(ivoid) +{ LPBYTE buffer = NULL; + DWORD cbBuf, pcbNeeded; + BOOL res; + + (void) GetPrinterDriverDirectoryA( NULL, NULL, 1, NULL, 0, &cbBuf); + + buffer = HeapAlloc( GetProcessHeap(), 0, cbBuf*2); + + res = GetPrinterDriverDirectoryA(NULL, NULL, 1, buffer, cbBuf, &pcbNeeded); + ok( res, "expected result != 0, got %d", res); + ok( cbBuf == pcbNeeded, "pcbNeeded set to %ld instead of %ld", + pcbNeeded, cbBuf); + + res = GetPrinterDriverDirectoryA(NULL, NULL, 1, buffer, cbBuf*2, &pcbNeeded); + ok( res, "expected result != 0, got %d", res); + ok( cbBuf == pcbNeeded, "pcbNeeded set to %ld instead of %ld", + pcbNeeded, cbBuf); + + res = GetPrinterDriverDirectoryA( NULL, NULL, 1, buffer, cbBuf-1, &pcbNeeded); + ok( !res , "expected result == 0, got %d", res); + ok( cbBuf == pcbNeeded, "pcbNeeded set to %ld instead of %ld", + pcbNeeded, cbBuf); + ok( ERROR_INSUFFICIENT_BUFFER == GetLastError(), + "last error set to %ld instead of ERROR_INSUFFICIENT_BUFFER", + GetLastError()); + + res = GetPrinterDriverDirectoryA( NULL, NULL, 1, NULL, cbBuf, &pcbNeeded); + ok( !res , "expected result == 0, got %d", res); + ok( ERROR_INVALID_USER_BUFFER == GetLastError(), + "last error set to %ld instead of ERROR_INVALID_USER_BUFFER", + GetLastError()); + + res = GetPrinterDriverDirectoryA( NULL, NULL, 1, buffer, cbBuf, NULL); + ok( !res , "expected result == 0, got %d", res); + ok( RPC_X_NULL_REF_POINTER == GetLastError(), + "last error set to %ld instead of RPC_X_NULL_REF_POINTER", + GetLastError()); + + res = GetPrinterDriverDirectoryA( NULL, NULL, 1, NULL, cbBuf, NULL); + ok( !res , "expected result == 0, got %d", res); + ok( RPC_X_NULL_REF_POINTER == GetLastError(), + "last error set to %ld instead of RPC_X_NULL_REF_POINTER", + GetLastError()); + + HeapFree( GetProcessHeap(), 0, buffer); +} + +START_TEST(info) +{ + test_printer_directory(); +}