def test_exclude_except( self ): options = processArgv( [ "-e", "boost", "-x", "thread", "shared_ptr", "-p", "/project", "--", "test.cpp" ] ) inPCH = ShouldBeInPCH( options ) parent = HeaderNode( "root" ) node1 = HeaderNode( "boost/tokenizer" ) node1.addParent( parent ) node1.setCounter( 1 ) self.assertEqual( inPCH( node1 ), False ) node2 = HeaderNode( "/boost/thread" ) node2.addParent( parent ) node2.setCounter( 1 ) self.assertEqual( inPCH( node2 ), True ) node3 = HeaderNode( "/boost/shared_ptr" ) node3.addParent( parent ) self.assertEqual( inPCH( node3 ), True ) node4 = HeaderNode( "/stl/..." ) node4.addParent( parent ) self.assertEqual( inPCH( node4 ), True )
def test_threshold_5( self ): options = processArgv( [ "-t", "80", "-p", "/project", "test.cpp", "test.cpp", "test.cpp" ] ) inPCH = ShouldBeInPCH( options ) parent = HeaderNode( "root" ) node = HeaderNode( "test.hpp" ) node.addParent( parent ) node.setCounter( 2 ) self.assertEqual( inPCH( node ), True )
def test_application_header_2( self ): options = processArgv( [ "-p", "/project", "test.cpp" ] ) inPCH = ShouldBeInPCH( options ) parent = HeaderNode( "root" ) node = HeaderNode( "/project/main.hpp" ) node.addParent( parent ) node.setCounter( 1 ) self.assertEqual( inPCH( node ), False )
def test_application_header_3( self ): options = processArgv( [ "-p", "test", "test.cpp" ] ) inPCH = ShouldBeInPCH( options ) parent = HeaderNode( "root" ) node = HeaderNode( "test.hpp" ) node.addParent( parent ) node.setCounter( 1 ) deepNode = HeaderNode( "test.impl.hpp" ) deepNode.addParent( node ) deepNode.setCounter( 1 ) self.assertEqual( inPCH( deepNode ), False )
def runApplication(): options = processArgv(sys.argv[1:]) dag = generateHeadersDag(options, GCCFacade()) tSorter = TopologicalSorter(dag) predicate = ShouldBeInPCH(options) rFilter = RecursiveFilter(tSorter, predicate, options) dag = updateHeadersDag(dag, rFilter, options, GCCFacade()) tSorter = TopologicalSorter(dag) rFilter = RecursiveFilter(tSorter, predicate, options) generatePCH(rFilter, options) printWatchHeaderInfo(dag, options)
def test_exclude( self ): options = processArgv( [ "-e", "boost", "-p", "/project", "--", "test.cpp" ] ) inPCH = ShouldBeInPCH( options ) parent = HeaderNode( "root" ) node1 = HeaderNode( "boost/..." ) node1.addParent( parent ) node1.setCounter( 1 ) self.assertEqual( inPCH( node1 ), False ) node2 = HeaderNode( ".../boost/..." ) node2.addParent( parent ) node2.setCounter( 1 ) self.assertEqual( inPCH( node2 ), False ) node3 = HeaderNode( "/stl/..." ) node3.addParent( parent ) self.assertEqual( inPCH( node3 ), True )