def testMarksMostSpecific(self): includes = [ add_header.Include('"cow.h"', 'include', [], None), add_header.Include('"cow_posix.h"', 'include', [], None), ] add_header.MarkPrimaryInclude(includes, 'cow_posix.cc') self.assertEqual(self._extract_primary_name(includes), '"cow_posix.h"')
def testPrimaryAndUserHeaders(self): primary_header = add_header.Include('"cow.h"', 'include', [], None) primary_header.is_primary_header = True source = add_header.SerializeIncludes([ primary_header, add_header.Include('"moo.h"', 'include', [], None), ]) self.assertEqual(source, ['#include "cow.h"', '', '#include "moo.h"'])
def testSystemAndUserHeaders(self): source = add_header.SerializeIncludes([ add_header.Include('<stdlib.h>', 'include', [], None), add_header.Include('<map>', 'include', [], None), add_header.Include('"moo.h"', 'include', [], None), ]) self.assertEqual(source, [ '#include <stdlib.h>', '', '#include <map>', '', '#include "moo.h"' ])
def testPrimaryAndSystemHeaders(self): primary_header = add_header.Include('"cow.h"', 'include', [], None) primary_header.is_primary_header = True source = add_header.SerializeIncludes([ primary_header, add_header.Include('<stdlib.h>', 'include', [], None), add_header.Include('<map>', 'include', [], None), ]) self.assertEqual(source, [ '#include "cow.h"', '', '#include <stdlib.h>', '', '#include <map>' ])
def testFullPathMatch(self): includes = [ add_header.Include('"zfs/impl/cow.h"', 'include', [], None) ] add_header.MarkPrimaryInclude(includes, 'zfs/impl/cow.cc') self.assertEqual(self._extract_primary_name(includes), '"zfs/impl/cow.h"')
def testSubstantiallySimilarPaths(self): includes = [ add_header.Include('"farm/public/animal/cow.h"', 'include', [], None) ] add_header.MarkPrimaryInclude(includes, 'farm/animal/cow.cc') self.assertEqual(self._extract_primary_name(includes), '"farm/public/animal/cow.h"')
def testIncludeWithPreambleAndInlineCommentToSource(self): # Make sure whitespace is vaguely normalized too. self.assertEqual( add_header.Include('"moo.h"', 'include', [ '// preamble with trailing space ', ], ' inline comment with trailing space ').ToSource(), [ '// preamble with trailing space', '#include "moo.h" // inline comment with trailing space' ])
def testFuzzymatchInReverse(self): includes = [add_header.Include('"cow.h"', 'include', [], None)] add_header.MarkPrimaryInclude(includes, 'cow_uitest_aura.cc') self.assertEqual(self._extract_primary_name(includes), '"cow.h"')
def testUserHeaders(self): source = add_header.SerializeIncludes([ add_header.Include('"goat.h"', 'include', [], None), add_header.Include('"moo.h"', 'include', [], None), ]) self.assertEqual(source, ['#include "goat.h"', '#include "moo.h"'])
def testNoMatchingSubdirectories(self): includes = [ add_header.Include('"base/zfs/cow.h"', 'include', [], None) ] add_header.MarkPrimaryInclude(includes, 'base/animal/cow.cc') self.assertIsNone(self._extract_primary_name(includes))
def testTopmostDirectoryDoesNotMatch(self): includes = [ add_header.Include('"animal/impl/cow.h"', 'include', [], None) ] add_header.MarkPrimaryInclude(includes, 'zfs/impl/cow.cc') self.assertIsNone(self._extract_primary_name(includes))
def testIncludeWithInlineCommentToSource(self): self.assertEqual( add_header.Include('"moo.h"', 'include', [], ' inline comment').ToSource(), ['#include "moo.h" // inline comment'])
def testIncludeWithPreambleToSource(self): self.assertEqual( add_header.Include('"moo.h"', 'include', ['// preamble'], None).ToSource(), ['// preamble', '#include "moo.h"'])
def testFuzzyMatch(self): includes = [add_header.Include('"cow.h"', 'include', [], None)] add_header.MarkPrimaryInclude(includes, 'cow_linux_unittest.cc') self.assertEqual(self._extract_primary_name(includes), '"cow.h"')
def testSystemHeaderNotMatched(self): includes = [add_header.Include('<cow.h>', 'include', [], None)] add_header.MarkPrimaryInclude(includes, 'cow.cc') self.assertIsNone(self._extract_primary_name(includes))
def testNoOpOnHeader(self): includes = [add_header.Include('"cow.h"', 'include', [], None)] add_header.MarkPrimaryInclude(includes, 'cow.h') self.assertIsNone(self._extract_primary_name(includes))
def testImportToSource(self): self.assertEqual( add_header.Include('"moo.h"', 'import', [], None).ToSource(), ['#import "moo.h"'])
def testFuzzyMatchDoesntMatchDifferentSuffixes(self): includes = [add_header.Include('"cow_posix.h"', 'include', [], None)] add_header.MarkPrimaryInclude(includes, 'cow_windows.cc') self.assertIsNone(self._extract_primary_name(includes))
def testToSource(self): self.assertEqual( add_header.Include('<moo.h>', 'include', [], None).ToSource(), ['#include <moo.h>'])