15460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//===- DirIteratorTest.cpp ------------------------------------------------===//
25460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//
35460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//                     The MCLinker Project
45460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//
55460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// This file is distributed under the University of Illinois Open Source
65460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// License. See LICENSE.TXT for details.
75460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//
85460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//===----------------------------------------------------------------------===//
95460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#include "mcld/Support/Directory.h"
105460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#include "DirIteratorTest.h"
115460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#include "errno.h"
125460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
135460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaousing namespace mcld;
145460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaousing namespace mcld::sys::fs;
155460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaousing namespace mcldtest;
165460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
175460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
185460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// Constructor can do set-up work for all test here.
195460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei LiaoDirIteratorTest::DirIteratorTest()
205460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao{
215460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  //FIXME:Some bugs modifies the global value "errno" to non-zero.
225460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  //      This makes readir() failed when daily build system runs unittest
235460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  //      Remove this after fixing those bugs
245460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  errno = 0;
255460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
265460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  // create testee. modify it if need
275460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  m_pDir = new mcld::sys::fs::Directory(".");
285460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao}
295460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
305460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// Destructor can do clean-up work that doesn't throw exceptions here.
315460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei LiaoDirIteratorTest::~DirIteratorTest()
325460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao{
335460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  delete m_pDir;
345460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao}
355460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
365460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// SetUp() will be called immediately before each test.
375460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaovoid DirIteratorTest::SetUp()
385460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao{
395460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao}
405460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
415460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// TearDown() will be called immediately after each test.
425460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaovoid DirIteratorTest::TearDown()
435460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao{
445460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao}
455460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
465460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//==========================================================================//
475460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// Testcases
485460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//
495460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei LiaoTEST_F( DirIteratorTest, open_dir ) {
505460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao	ASSERT_TRUE( m_pDir->isGood() );
515460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
525460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  Directory::iterator entry = m_pDir->begin();
535460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  Directory::iterator enEnd = m_pDir->end();
545460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
555460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  size_t size = 0;
565460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  while( entry!=enEnd ) {
575460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    if (0 != entry.path())
585460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao      size = entry.path()->native().size();
595460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
605460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao    ++entry;
615460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao  }
625460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao}
635460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
645460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
65