DirIteratorTest.cpp revision f33f6de54db174aa679a4b6d1e040d37e95541c0
11ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni//===- DirIteratorTest.cpp ------------------------------------------------===//
21ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni//
31ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni//                     The MCLinker Project
41ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni//
51ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni// This file is distributed under the University of Illinois Open Source
61ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni// License. See LICENSE.TXT for details.
71ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni//
81ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni//===----------------------------------------------------------------------===//
91ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni#include <mcld/Support/Directory.h>
101ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni#include "DirIteratorTest.h"
111ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni#include <errno.h>
121ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni
131ffd86b448d78366190c540f98f8b6d641cdb6cfYang Niusing namespace mcld;
141ffd86b448d78366190c540f98f8b6d641cdb6cfYang Niusing namespace mcld::sys::fs;
151ffd86b448d78366190c540f98f8b6d641cdb6cfYang Niusing namespace mcldtest;
161ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni
171ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni
181ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni// Constructor can do set-up work for all test here.
19ff2bb54ebf593b1d19d3a2e4cfa70a8ea4432c0dYang NiDirIteratorTest::DirIteratorTest()
20ff2bb54ebf593b1d19d3a2e4cfa70a8ea4432c0dYang Ni{
21ff2bb54ebf593b1d19d3a2e4cfa70a8ea4432c0dYang Ni  //FIXME:Some bugs modifies the global value "errno" to non-zero.
22ff2bb54ebf593b1d19d3a2e4cfa70a8ea4432c0dYang Ni  //      This makes readir() failed when daily build system runs unittest
23ff2bb54ebf593b1d19d3a2e4cfa70a8ea4432c0dYang Ni  //      Remove this after fixing those bugs
24ff2bb54ebf593b1d19d3a2e4cfa70a8ea4432c0dYang Ni  errno = 0;
25ff2bb54ebf593b1d19d3a2e4cfa70a8ea4432c0dYang Ni
26ff2bb54ebf593b1d19d3a2e4cfa70a8ea4432c0dYang Ni  // create testee. modify it if need
27ff2bb54ebf593b1d19d3a2e4cfa70a8ea4432c0dYang Ni  m_pDir = new mcld::sys::fs::Directory(".");
281ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni}
291ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni
30eb9aa675754c49f613c6ad71d41472b30f38b007Yang Ni// Destructor can do clean-up work that doesn't throw exceptions here.
31eb9aa675754c49f613c6ad71d41472b30f38b007Yang NiDirIteratorTest::~DirIteratorTest()
32eb9aa675754c49f613c6ad71d41472b30f38b007Yang Ni{
33eb9aa675754c49f613c6ad71d41472b30f38b007Yang Ni  delete m_pDir;
34eb9aa675754c49f613c6ad71d41472b30f38b007Yang Ni}
35eb9aa675754c49f613c6ad71d41472b30f38b007Yang Ni
36eb9aa675754c49f613c6ad71d41472b30f38b007Yang Ni// SetUp() will be called immediately before each test.
37eb9aa675754c49f613c6ad71d41472b30f38b007Yang Nivoid DirIteratorTest::SetUp()
38eb9aa675754c49f613c6ad71d41472b30f38b007Yang Ni{
39eb9aa675754c49f613c6ad71d41472b30f38b007Yang Ni}
40eb9aa675754c49f613c6ad71d41472b30f38b007Yang Ni
41eb9aa675754c49f613c6ad71d41472b30f38b007Yang Ni// TearDown() will be called immediately after each test.
42ff2bb54ebf593b1d19d3a2e4cfa70a8ea4432c0dYang Nivoid DirIteratorTest::TearDown()
431ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni{
44eb9aa675754c49f613c6ad71d41472b30f38b007Yang Ni}
451ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni
46ff2bb54ebf593b1d19d3a2e4cfa70a8ea4432c0dYang Ni//==========================================================================//
471ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni// Testcases
481ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni//
491ffd86b448d78366190c540f98f8b6d641cdb6cfYang NiTEST_F( DirIteratorTest, open_dir ) {
50eb9aa675754c49f613c6ad71d41472b30f38b007Yang Ni	ASSERT_TRUE( m_pDir->isGood() );
511ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni
521ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni  Directory::iterator entry = m_pDir->begin();
531ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni  Directory::iterator enEnd = m_pDir->end();
541ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni
551ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni  size_t size = 0;
56eb9aa675754c49f613c6ad71d41472b30f38b007Yang Ni  while( entry!=enEnd ) {
57eb9aa675754c49f613c6ad71d41472b30f38b007Yang Ni    if (0 != entry.path())
581ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni      size = entry.path()->native().size();
591ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni
601ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni    ++entry;
611ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni  }
621ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni}
631ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni
641ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni
651ffd86b448d78366190c540f98f8b6d641cdb6cfYang Ni