summaryrefslogtreecommitdiff
path: root/tests/Dirent_Test.cpp
diff options
context:
space:
mode:
authoroci <oci@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2001-01-22 20:09:28 +0000
committeroci <oci@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2001-01-22 20:09:28 +0000
commit10d99b12e2bfb0e7d72d47480482a982b7999f62 (patch)
tree74932988a02d12a25d09015fddf8fe5dd1494404 /tests/Dirent_Test.cpp
parenta85e6ffd7f62af3eab168fc03363d4038ec68f96 (diff)
downloadATCD-10d99b12e2bfb0e7d72d47480482a982b7999f62.tar.gz
ChangeLog tag Mon Jan 22 13:51:11 2001 Phil Mesnier <mesnier_p@ociweb.com>
Diffstat (limited to 'tests/Dirent_Test.cpp')
-rw-r--r--tests/Dirent_Test.cpp65
1 files changed, 65 insertions, 0 deletions
diff --git a/tests/Dirent_Test.cpp b/tests/Dirent_Test.cpp
new file mode 100644
index 00000000000..6bbc387dae5
--- /dev/null
+++ b/tests/Dirent_Test.cpp
@@ -0,0 +1,65 @@
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// tests
+//
+// = FILENAME
+// Dirent_Test.cpp
+//
+// = DESCRIPTION
+// This is a test of the opendir and readdir emulation provided by the
+// class ACE_OS_Dirent. It is used to ensure that the emulation code
+// works properly on win32. As the emulation code is not compiled in other
+// platforms, this test also ensures that there is no impact to platforms
+// that natively support directory scanning operations.
+//
+// = AUTHOR
+// Phil Mesnier <mesnier_p@ociweb.com>
+//
+// ============================================================================
+
+#include "test_config.h"
+#include "ace/OS.h"
+
+ACE_RCSID(tests, Dirent_Test, "$Id$")
+
+int
+main (int argc, ACE_TCHAR *argv[])
+{
+ ACE_START_TEST (ACE_TEXT ("Dirent_Test"));
+ int status = 0;
+ char * testdir = "/tests";
+ char * ace_wrappers = ACE_OS::getenv ("ACE_ROOT");
+
+ char * dirname = new char [ACE_OS::strlen(ace_wrappers) +
+ ACE_OS::strlen(testdir) + 1];
+ ACE_OS::strcat (ACE_OS::strcpy (dirname,ace_wrappers),testdir);
+ DIR *directory = ACE_OS::opendir (dirname);
+
+ int entrycount = 0;
+ for (; ACE_OS::readdir(directory) != 0; entrycount++);
+
+ switch (entrycount) {
+ case 0 :
+ {
+ ACE_ERROR ((LM_ERROR, "readdir failed to read anything\n"));
+ status = -1;
+ break;
+ }
+ case 1 :
+ {
+ ACE_ERROR ((LM_ERROR, "readdir failed, only matched directory name\n"));
+ status = -1;
+ break;
+ }
+ default :
+ {
+ ACE_DEBUG ((LM_DEBUG, "readdir succeeded, read %d entries\n",entrycount));
+ }
+ }
+
+ ACE_END_TEST;
+ return status;
+}