tstDir-3.cpp revision 4a4a02cc2a09b5e3c55908c6995182c6b038e398
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * IPRT Testcase - Directory listing & filtering (no parameters needed).
c97989161fbe75bc14cea477a5443bbf474dd3advboxsync * Copyright (C) 2006-2008 Oracle Corporation
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * available from http://www.virtualbox.org. This file is free software;
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * you can redistribute it and/or modify it under the terms of the GNU
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * General Public License (GPL) as published by the Free Software
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * The contents of this file may alternatively be used under the terms
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * of the Common Development and Distribution License Version 1.0
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * VirtualBox OSE distribution, in which case the provisions of the
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * CDDL are applicable instead of those of the GPL.
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * You may elect to license modified versions of this file under the
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * terms and conditions of either the GPL or the CDDL or both.
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsyncstatic int tstDirOpenFiltered(const char *pszFilter, unsigned *pcFilesMatch, int *pRc)
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync unsigned cFilesMatch = 0;
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync int rc = RTDirOpenFiltered(&pDir, pszFilter, RTDIRFILTER_WINNT);
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync RTPrintf("tstDir-3: Enumeration '%s' failed! rc=%Rrc\n", pszFilter, rc);
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync /* close up */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync RTPrintf("tstDir-3: Failed to close dir '%s'! rc=%Rrc\n", pszFilter, rc);
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync RTPrintf("tstDir-3: Failed to open '%s', rc=%Rrc\n", pszFilter, rc);
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync char *pszFilter1 = RTPathJoinA(pszTestDir, "xyxzxq*");
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync RTPrintf("tstDir-3: cannot create non-match filter!\n");
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync RTPrintf("tstDir-3: cannot create match filter!\n");
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync rcRet2 = tstDirOpenFiltered(pszFilter1, &cMatch, &rc);
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync RTPrintf("tstDir-3: filter '%s' failed! rc=%Rrc\n", pszFilter1, rc);
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync RTPrintf("tstDir-3: filter '%s' gave wrong result count! cMatch=%u\n", pszFilter1, cMatch);
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync rcRet2 = tstDirOpenFiltered(pszFilter2, &cMatch, &rc);
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync RTPrintf("tstDir-3: filter '%s' failed! rc=%Rrc\n", pszFilter2, rc);
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync RTPrintf("tstDir-3: filter '%s' gave wrong result count! cMatch=%u\n", pszFilter2, cMatch);