Shih-wei Liao | 5460a1f | 2012-03-16 22:41:16 -0700 | [diff] [blame] | 1 | //===- DirIteratorTest.cpp ------------------------------------------------===// |
| 2 | // |
| 3 | // The MCLinker Project |
| 4 | // |
| 5 | // This file is distributed under the University of Illinois Open Source |
| 6 | // License. See LICENSE.TXT for details. |
| 7 | // |
| 8 | //===----------------------------------------------------------------------===// |
Stephen Hines | 37b74a3 | 2014-11-26 18:48:20 -0800 | [diff] [blame] | 9 | #include "mcld/Support/Directory.h" |
Shih-wei Liao | 5460a1f | 2012-03-16 22:41:16 -0700 | [diff] [blame] | 10 | #include "DirIteratorTest.h" |
Stephen Hines | f33f6de | 2014-02-14 18:00:16 -0800 | [diff] [blame] | 11 | #include <errno.h> |
Shih-wei Liao | 5460a1f | 2012-03-16 22:41:16 -0700 | [diff] [blame] | 12 | |
| 13 | using namespace mcld; |
| 14 | using namespace mcld::sys::fs; |
| 15 | using namespace mcldtest; |
| 16 | |
Shih-wei Liao | 5460a1f | 2012-03-16 22:41:16 -0700 | [diff] [blame] | 17 | // Constructor can do set-up work for all test here. |
Stephen Hines | 37b74a3 | 2014-11-26 18:48:20 -0800 | [diff] [blame] | 18 | DirIteratorTest::DirIteratorTest() { |
| 19 | // FIXME:Some bugs modifies the global value "errno" to non-zero. |
Shih-wei Liao | 5460a1f | 2012-03-16 22:41:16 -0700 | [diff] [blame] | 20 | // This makes readir() failed when daily build system runs unittest |
| 21 | // Remove this after fixing those bugs |
| 22 | errno = 0; |
| 23 | |
| 24 | // create testee. modify it if need |
| 25 | m_pDir = new mcld::sys::fs::Directory("."); |
| 26 | } |
| 27 | |
| 28 | // Destructor can do clean-up work that doesn't throw exceptions here. |
Stephen Hines | 37b74a3 | 2014-11-26 18:48:20 -0800 | [diff] [blame] | 29 | DirIteratorTest::~DirIteratorTest() { |
Shih-wei Liao | 5460a1f | 2012-03-16 22:41:16 -0700 | [diff] [blame] | 30 | delete m_pDir; |
| 31 | } |
| 32 | |
| 33 | // SetUp() will be called immediately before each test. |
Stephen Hines | 37b74a3 | 2014-11-26 18:48:20 -0800 | [diff] [blame] | 34 | void DirIteratorTest::SetUp() { |
Shih-wei Liao | 5460a1f | 2012-03-16 22:41:16 -0700 | [diff] [blame] | 35 | } |
| 36 | |
| 37 | // TearDown() will be called immediately after each test. |
Stephen Hines | 37b74a3 | 2014-11-26 18:48:20 -0800 | [diff] [blame] | 38 | void DirIteratorTest::TearDown() { |
Shih-wei Liao | 5460a1f | 2012-03-16 22:41:16 -0700 | [diff] [blame] | 39 | } |
| 40 | |
| 41 | //==========================================================================// |
| 42 | // Testcases |
| 43 | // |
Stephen Hines | 37b74a3 | 2014-11-26 18:48:20 -0800 | [diff] [blame] | 44 | TEST_F(DirIteratorTest, open_dir) { |
| 45 | ASSERT_TRUE(m_pDir->isGood()); |
Shih-wei Liao | 5460a1f | 2012-03-16 22:41:16 -0700 | [diff] [blame] | 46 | |
| 47 | Directory::iterator entry = m_pDir->begin(); |
| 48 | Directory::iterator enEnd = m_pDir->end(); |
| 49 | |
| 50 | size_t size = 0; |
Stephen Hines | 37b74a3 | 2014-11-26 18:48:20 -0800 | [diff] [blame] | 51 | while (entry != enEnd) { |
Pirama Arumuga Nainar | 2bf3f88 | 2015-04-21 10:33:13 -0700 | [diff] [blame] | 52 | if (0 != entry.path()) { |
Shih-wei Liao | 5460a1f | 2012-03-16 22:41:16 -0700 | [diff] [blame] | 53 | size = entry.path()->native().size(); |
Pirama Arumuga Nainar | 2bf3f88 | 2015-04-21 10:33:13 -0700 | [diff] [blame] | 54 | ASSERT_TRUE(size != 0); |
| 55 | } |
Shih-wei Liao | 5460a1f | 2012-03-16 22:41:16 -0700 | [diff] [blame] | 56 | |
| 57 | ++entry; |
| 58 | } |
| 59 | } |