reactos/rostests/apitests/localspl/localspl_apitest.h
Colin Finck f2a66788f8 [LOCALSPL_APITEST]
Write an API-Test for localspl.dll. As the original localspl.dll from Windows Server 2003 relies on proper initialization inside spoolsv.exe, we cannot test it standalone as usual.
To make testing possible anyway, this program basically does four things:

  - Injecting our testing code into spoolsv.exe.
  - Registering and running us as a service in the SYSTEM security context like spoolsv.exe, so that injection is possible at all.
  - Sending the test name and receiving the console output over named pipes.
  - Redirecting the received console output to stdout again, so it looks and feels like a standard API-Test.

Nevertheless, the testing code in fpEnumPrinters.c is still written like a usual test. The known ok(), skip(), etc. macros can be used as usual, their output is just redirected through the named pipes.
Thanks to Thomas for giving me the tip about injecting code into spoolsv! :)

svn path=/branches/colins-printing-for-freedom/; revision=68080
2015-06-08 17:15:44 +00:00

17 lines
No EOL
645 B
C

/*
* PROJECT: ReactOS Local Spooler API Tests
* LICENSE: GNU GPLv2 or any later version as published by the Free Software Foundation
* PURPOSE: Shared definitions for the test program and the test DLL
* COPYRIGHT: Copyright 2015 Colin Finck <colin@reactos.org>
*/
#ifndef _LOCALSPL_APITEST_H
#define _LOCALSPL_APITEST_H
#define COMMAND_PIPE_NAME L"\\\\.\\pipe\\localspl_apitest_command_pipe"
#define OUTPUT_PIPE_NAME L"\\\\.\\pipe\\localspl_apitest_output_pipe"
#define SERVICE_NAME L"localspl_apitest_service"
typedef BOOL (WINAPI *PInitializePrintProvidor)(LPPRINTPROVIDOR, DWORD, LPWSTR);
#endif