[PATCH] ntdll/tests: Add more tests for RtlIpv6StringToAddress

Alex Henrie alexhenrie24 at gmail.com
Thu Jan 30 23:57:33 CST 2020


Signed-off-by: Alex Henrie <alexhenrie24 at gmail.com>
---
Each of these new tests reveals a flaw in the implementation that I
submitted to Wine Staging.
---
 dlls/ntdll/tests/rtl.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/dlls/ntdll/tests/rtl.c b/dlls/ntdll/tests/rtl.c
index e49888022f..559a7d625c 100644
--- a/dlls/ntdll/tests/rtl.c
+++ b/dlls/ntdll/tests/rtl.c
@@ -1537,6 +1537,8 @@ static const struct
             { 0x1111, 0x2222, 0x3333, 0x4444, 0x5555, 0x6666, 0, 0 } },
     { "1111:2222:3333:4444:5555:6666::8888",            STATUS_SUCCESS,             35,
             { 0x1111, 0x2222, 0x3333, 0x4444, 0x5555, 0x6666, 0, 0x8888 } },
+    { "1111:2222:3333:4444:5555:6666::7777:8888",       STATUS_SUCCESS,             35,
+            { 0x1111, 0x2222, 0x3333, 0x4444, 0x5555, 0x6666, 0, 0x7777 }, ex_fail_6 },
     { "1111:2222:3333:4444:5555::",                     STATUS_SUCCESS,             26,
             { 0x1111, 0x2222, 0x3333, 0x4444, 0x5555, 0, 0, 0 } },
     { "1111:2222:3333:4444:5555::123.123.123.123",      STATUS_SUCCESS,             41,
@@ -1617,6 +1619,8 @@ static const struct
             { 0, 0, 0, 0, 0, 0, 0, 0 } },
     { "::/16",                                          STATUS_SUCCESS,             2,
             { 0, 0, 0, 0, 0, 0, 0, 0 }, ex_fail_6 },
+    { "::01234",                                        STATUS_INVALID_PARAMETER,   7,
+            { 0, 0xabab, 0xabab, 0xabab, 0xabab, 0xabab, 0xabab, 0xabab } },
     { "::0",                                            STATUS_SUCCESS,             3,
             { 0, 0, 0, 0, 0, 0, 0, 0 } },
     { "::0:0",                                          STATUS_SUCCESS,             5,
@@ -1650,6 +1654,12 @@ static const struct
             { 0x120, 0xabab, 0xabab, 0xabab, 0xabab, 0xabab, 0xabab, 0xabab } },
     { "2001:0000:01234:0000:0000:C1C0:ABCD:0876",       STATUS_INVALID_PARAMETER,   -1,
             { 0x120, 0, 0xabab, 0xabab, 0xabab, 0xabab, 0xabab, 0xabab } },
+    { "2001:0000::01234.0",                             STATUS_INVALID_PARAMETER,   -1,
+            { 0x120, 0, 0xabab, 0xabab, 0xabab, 0xabab, 0xabab, 0xabab } },
+    { "2001:0::b.0",                                    STATUS_SUCCESS,             9,
+            { 0x120, 0, 0, 0, 0, 0, 0, 0xb00 }, ex_fail_6 },
+    { "2001::0:b.0",                                    STATUS_SUCCESS,             9,
+            { 0x120, 0, 0, 0, 0, 0, 0, 0xb00 }, ex_fail_6 },
     { "1.2.3.4",                                        STATUS_INVALID_PARAMETER,   7,
             { 0x201, 0xab03, 0xabab, 0xabab, 0xabab, 0xabab, 0xabab, 0xabab } },
     { "1.2.3.4:1111::5555",                             STATUS_INVALID_PARAMETER,   7,
@@ -1720,8 +1730,14 @@ static const struct
             { 0x100, 0x201, 0xabab, 0xabab, 0xabab, 0xabab, 0xabab, 0xabab } },
     { "1::1.256.3.4",                                   STATUS_INVALID_PARAMETER,   -1,
             { 0x100, 0xab01, 0xabab, 0xabab, 0xabab, 0xabab, 0xabab, 0xabab } },
+    { "1::1.256:3.4",                                   STATUS_INVALID_PARAMETER,   8,
+            { 0x100, 0xab01, 0xabab, 0xabab, 0xabab, 0xabab, 0xabab, 0xabab } },
+    { "1::1.2a.3.4",                                    STATUS_INVALID_PARAMETER,   6,
+            { 0x100, 0xab01, 0xabab, 0xabab, 0xabab, 0xabab, 0xabab, 0xabab } },
     { "1::256.2.3.4",                                   STATUS_INVALID_PARAMETER,   -1,
             { 0x100, 0xabab, 0xabab, 0xabab, 0xabab, 0xabab, 0xabab, 0xabab } },
+    { "1::1a.2.3.4",                                    STATUS_SUCCESS,             5,
+            { 0x100, 0, 0, 0, 0, 0, 0, 0x1a00 }, ex_fail_6 },
     { "1::2::3",                                        STATUS_SUCCESS,             4,
             { 0x100, 0, 0, 0, 0, 0, 0, 0x200 }, ex_fail_6 },
     { "2001:0000:1234: 0000:0000:C1C0:ABCD:0876",       STATUS_INVALID_PARAMETER,   15,
-- 
2.25.0




More information about the wine-devel mailing list