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