Author: pschweitzer Date: Wed Dec 16 21:11:22 2015 New Revision: 70367
URL: http://svn.reactos.org/svn/reactos?rev=70367&view=rev Log: [IPHLPAPI_APITEST] Rewrite the two existing tests for ICMP and add a third one (for IPv6). Patch by Tim Crawford.
ROSTESTS-212 #resolve #comment Commited in r70367. Thanks!
Modified: trunk/rostests/apitests/iphlpapi/icmp.c
Modified: trunk/rostests/apitests/iphlpapi/icmp.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/iphlpapi/icmp.c?r... ============================================================================== --- trunk/rostests/apitests/iphlpapi/icmp.c [iso-8859-1] (original) +++ trunk/rostests/apitests/iphlpapi/icmp.c [iso-8859-1] Wed Dec 16 21:11:22 2015 @@ -1,21 +1,8 @@ /* - * Unit test suite for Icmp functions - * - * Copyright 2006 Steven Edwards - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * PROJECT: ReactOS API Tests + * LICENSE: LGPLv2.1+ - See COPYING.LIB in the top level directory + * PURPOSE: Tests for ICMP functions + * PROGRAMMERS: Tim Crawford */
#include <apitest.h> @@ -23,23 +10,81 @@ #include <iphlpapi.h> #include <icmpapi.h>
-HANDLE handle; +static +void +test_IcmpCreateFile(void) +{ + HANDLE hIcmp;
-static void test_IcmpCreateFile(void) -{ - handle=IcmpCreateFile(); - ok(handle!=INVALID_HANDLE_VALUE,"Failed to create icmp file handle\n"); + SetLastError(0xDEADBEEF); + hIcmp = IcmpCreateFile(); + ok(hIcmp != INVALID_HANDLE_VALUE, "IcmpCreateFile failed unexpectedly: %lu\n", GetLastError()); + + if (hIcmp != INVALID_HANDLE_VALUE) + IcmpCloseHandle(hIcmp); }
-static void test_IcmpCloseHandle(void) +static +void +test_Icmp6CreateFile(void) { - BOOL result; - result=IcmpCloseHandle(handle); - ok(result!=FALSE,"Failed to close icmp file handle\n"); + HANDLE hIcmp; + + SetLastError(0xDEADBEEF); + hIcmp = Icmp6CreateFile(); + + if (GetLastError() == ERROR_FILE_NOT_FOUND) + { + /* On Windows Server 2003, the IPv6 protocol must be installed. */ + skip("IPv6 is not available.\n"); + return; + } + + ok(hIcmp != INVALID_HANDLE_VALUE, "Icmp6CreateFile failed unexpectedly: %lu\n", GetLastError()); + + if (hIcmp != INVALID_HANDLE_VALUE) + IcmpCloseHandle(hIcmp); +} + +static +void +test_IcmpCloseHandle(void) +{ + HANDLE hIcmp; + BOOL bRet; + + SetLastError(0xDEADBEEF); + hIcmp = IcmpCreateFile(); + if (hIcmp != INVALID_HANDLE_VALUE) + { + bRet = IcmpCloseHandle(hIcmp); + ok(bRet, "IcmpCloseHandle failed unexpectedly: %lu\n", GetLastError()); + } + + SetLastError(0xDEADBEEF); + hIcmp = Icmp6CreateFile(); + if (hIcmp != INVALID_HANDLE_VALUE) + { + bRet = IcmpCloseHandle(hIcmp); + ok(bRet, "IcmpCloseHandle failed unexpectedly: %lu\n", GetLastError()); + } + + hIcmp = INVALID_HANDLE_VALUE; + SetLastError(0xDEADBEEF); + bRet = IcmpCloseHandle(hIcmp); + ok(!bRet, "IcmpCloseHandle succeeded unexpectedly\n"); + ok_err(ERROR_INVALID_HANDLE); + + hIcmp = NULL; + SetLastError(0xDEADBEEF); + bRet = IcmpCloseHandle(hIcmp); + ok(!bRet, "IcmpCloseHandle succeeded unexpectedly\n"); + ok_err(ERROR_INVALID_HANDLE); }
START_TEST(icmp) { test_IcmpCreateFile(); + test_Icmp6CreateFile(); test_IcmpCloseHandle(); }