[PATCH 2/3] ntdll/tests: Add tests for RtlIpv6StringToAddress (try 3)

Stefan Dösinger stefandoesinger at gmail.com
Mon Feb 23 03:24:22 CST 2015


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Am 2015-02-20 um 16:07 schrieb Mark Jansen:
> Hey,
> 
> I do not have the intention to rewrite the ipv4 tests now, i do have
> another few tests lined up for different ipv6 functions (addr2str),
> i'll look into rewriting the ipv4 then.
> As for now, few tests are better than no tests, right?
That's OK with me. I recommend to move the ipv4 test to the end of the patch series in this case. That way Alexandre can apply the ipv6 patch if he disagrees with the partial ipv4 test.

> Broken means xp pro, 2003, vista and 2008 did not behave correct.
What behaves correctly? Windows 7?

>>> +        if (ipv6_tests[i].ex_fails == 2)    /* testing vs ex doesnt >make sense. */
>>> +            continue;
>> Please document why, it took me a while to come up with the guess above. (And I'm not even sure it's the real reason). You're also not checking the output IP for the IP tests from the non-ex tests here. Is there a reason for that? Are there any cases where -Ex returns a different IP than non-ex?
> Because the function will succeed on ex, it is even in the ex-test table.
> Cases like this are exactly why i didnt want it in one table in the first place.
There's no problem with running a test or two twice in a situation like this. The reason why you need special handling for this test is that it is the only test that fails on base and succeeds on ex. Your way of handling this works reasonably well, it's just that the comment could be better. E.g. something like "Fails on base, succeeds on -Ex. Success case tested by -Ex test table." would be a better explanation why the test is skipped.

Alternatively you can remove the test from the base table and test it with a separate function call in the base tests.

> Probably not, but I was under the impression that windows doesnt run
> on big endian machines.
> If wine does run on big endian this might need an additional check,
> however i do not have a b.e. machine to verify it on.
Yeah, it is a fairly academic question. Even Windows NT on Power was little endian. I vaguely remembered that there were helper functions for manipulating IP addresses that take care of endianess. I didn't find any though, just the hostname resolving string-to-IP ones.

> Ex doesnt write anything if it fails.
This line from the -ex table suggests something else:

> +        { "[3ffe:2a00:100:7031::1].8080",                   STATUS_INVALID_PARAMETER,   0xbadf00d,  0xbeef, { 0xfe3f, 0x2a, 1, 0x3170, 0, 0, 0, 0x100 } },

This has a working address and broken port though. Things may be different if the address parsing fails. Please add an ip == 0xabab comparison in the part of the -ex test that runs the non-ex / IP address checks, and check the returned address in case the function succeeds.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBAgAGBQJU6vHGAAoJEN0/YqbEcdMwKnYP/A7urRWmo4/qu8xtXtXLYCoU
QThhth9J4gMRFQUazH1JaocyeXcLeZ8fXSKSgV+2TM3b7qZIjJVljlNR6ySPJheS
SMZ9dAmrngWZj418SMwqAYjyMeqNWDcn+/zRqr39AIgSh5J6K0YyV1XwzsJRUuV+
C7sEGzlCupiS1N5V0xB5OggE7E2cIFItbHjNhTPmO2YVht8fvf/8Z0CnlVtDPswp
H6o7TgNqhCuZGD5K0sU+XHwMxN/bn8wJkG85OKA20CgS0nJPTPb8BkHaIGClx3dF
zXNxS32fEEa3S1JlsRSb66c/0Whi3GyyrrKhN2aNKZI8t5tS5GzWPG4vwtVyDZnh
7BSzAl5TQDiLWLjFc5skPpNU3rvm8Vg13WYa1ahnw33hL23U52MJZZYQS84CoiVp
rbeUqLWbu4tiTYsUgmfcvnKNfFOXLF1Pzd4fGEW5kI54t5NRvSWmWKqnsvglLYjJ
Tp8juavhqMjv1WjZdz6N2VURKhR5mg44pAL9V0cbFcPsKikSSKXBAEwSAmwu1WN7
XYPPrQhlhmxGk9DUBOzM3V/gwNqm1z9K6ou7MJQrpudTFleWXn6gUOIZkX+lHaPl
eHjMV5wXueIIrVFuGaEKcF+bVBdaziOEzu0XSUHCV2eD1vg5c0bN09YxkahxNm8w
mfzirl4vY77ymgYPrWqb
=wzpF
-----END PGP SIGNATURE-----



More information about the wine-devel mailing list