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