[2/3] secur32/tests: Add simple tests for GetUserNameExA/W() [try 2]

Ge van Geldorp ge at gse.nl
Sat Apr 11 13:34:30 CDT 2009


Hi Paul,

> From: Paul Vriens [mailto:paul.vriens.wine at gmail.com] 
> Ge van Geldorp wrote:
> > Try 2: Add buffer overflow tests
> > 
> > Changelog:
> >   secur32/tests: Add simple tests for GetUserNameExA/W()
> > 
> > ---
> >  dlls/secur32/tests/secur32.c |   86
> > ++++++++++++++++++++++++++++++++++++++++++
> >  1 files changed, 86 insertions(+), 0 deletions(-)
> > 
> > 
> Hi Ge,
>
> The tests show a big list of possible last errors. Are these for a 
> specific platform? If so, we should probably list that. Is the 
> ERROR_INVALID_PARAMETER for NameUnknown also for a specific platform?

I've now tested on all Windows platforms. Passing NameUnknown returns
ERROR_NONE_MAPPED if the current user is a local (non-domain) account and
ERROR_NO_SUCH_USER if the current user is a domain account.
The ERROR_NONE_MAPPED code is returned for all formats except
NameSamCompatible if the current user is a local account.

> The reason I'm asking is because W2K fails with ERROR_INVALID_PARAMETER 
> for NameDnsDomain and I'm looking for the cleanest way to add that (as 
> broken()).

Based on my new test runs, I came up with the following test:

  ok(rc ||
     (formats[i] == NameUnknown &&
      GetLastError() == ERROR_NO_SUCH_USER) ||
     GetLastError() == ERROR_NONE_MAPPED ||
     broken(formats[i] == NameDnsDomain &&
            GetLastError() == ERROR_INVALID_PARAMETER),
     "GetUserNameExW(%d) failed: %d\n",
     formats[i], GetLastError());

This passes on all my Windows machines. Personally, I probably wouldn't have
used broken() for the W2K case but I'll follow your lead :-)

Ge.




More information about the wine-devel mailing list