Example #1
0
    def testQueryCorrectly(self):
        """Test query targets dependency relationship correctly. """
        # TODO: rewrite with `blade query`
        return
        self.assertTrue(self.all_targets)
        result_map = {}
        result_map = self.blade.query_helper(self.query_targets)
        all_targets = self.blade.get_build_targets()
        query_key = ('test_query', 'poppy')
        self.assertIn(query_key, result_map.keys())
        deps = result_map.get(query_key, [])[0]
        depended_by = result_map.get(query_key, [])[1]

        self.assertTrue(deps)
        self.assertTrue(depended_by)

        dep_one_key = ('test_query', 'rpc_meta_info_proto')
        dep_second_key = ('test_query', 'static_resource')
        self.assertIn(dep_one_key, deps)
        self.assertIn(dep_second_key, deps)

        depended_one_key = ('test_query', 'poppy_client')
        depended_second_key = ('test_query', 'poppy_mock')
        self.assertIn(depended_one_key, depended_by)
        self.assertIn(depended_second_key, depended_by)


if __name__ == '__main__':
    blade_test.run(TestQuery)
    def setUp(self):
        """setup method. """
        self.doSetUp('test_prebuild_cc_library')

    def testGenerateRules(self):
        """Test that rules are generated correctly.

        Scons can use the rules for dry running.

        """
        self.assertTrue(self.dryRun())

        copy_lower_line = self.findCommand('Copy')
        com_upper_line = self.findCommand('puppercase.cpp.o -c')
        upper_depends_libs = self.findCommand('libuppercase.so')

        self.assertIn('test_prebuild_cc_library/liblowercase.so',
                      copy_lower_line)
        self.assertIn('lib64_release/liblowercase.so', copy_lower_line)

        self.assertIn('-Wall -Wextra', com_upper_line)
        self.assertIn('-Wframe-larger-than=69632', com_upper_line)
        self.assertIn('-Werror=overloaded-virtual', com_upper_line)

        self.assertTrue(upper_depends_libs)
        self.assertIn('libuppercase.so', upper_depends_libs)


if __name__ == '__main__':
    blade_test.run(TestPrebuildCcLibrary)
Example #3
0
import blade_test


class TestCcBinary(blade_test.TargetTest):
    """Test cc_binary."""
    def setUp(self):
        """setup method."""
        self.doSetUp('cc', target='string_main_prog')

    def testGenerateRules(self):
        """Test that rules are generated correctly."""
        self.assertTrue(self.runBlade('run'))

        com_lower_line = self.findCommand(['plowercase.cpp.o', '-c'])
        com_upper_line = self.findCommand(['puppercase.cpp.o', '-c'])
        com_string_line = self.findCommand(['string_main.cpp.o', '-c'])
        string_main_depends_libs = self.findCommand('string_main_prog ')

        self.assertCxxFlags(com_lower_line)
        self.assertCxxFlags(com_upper_line)
        self.assertCxxFlags(com_string_line)

        self.assertLinkFlags(string_main_depends_libs)
        self.assertIn('liblowercase.a', string_main_depends_libs)
        self.assertIn('libuppercase.a', string_main_depends_libs)
        self.assertTrue(self.findCommand(['Hello, world']))


if __name__ == '__main__':
    blade_test.run(TestCcBinary)
        upper_so_index = 0
        index = 0

        for line in open(self.command_file):
            index += 1
            if 'plowercase.cpp.o -c' in line:
                com_lower_line = line
            if 'puppercase.cpp.o -c' in line:
                com_upper_line = line
            if 'echo' in line:
                gen_rule_index = index
            if 'liblowercase.so -m64' in line:
                lower_so_index = index
            if 'libuppercase.so -m64' in line:
                upper_so_index = index

        self.assertTrue('-fPIC -Wall -Wextra' in com_lower_line)
        self.assertTrue('-Wframe-larger-than=69632' in com_lower_line)
        self.assertTrue('-Werror=overloaded-virtual' in com_lower_line)

        self.assertTrue('-fPIC -Wall -Wextra' in com_upper_line)
        self.assertTrue('-Wframe-larger-than=69632' in com_upper_line)
        self.assertTrue('-Werror=overloaded-virtual' in com_upper_line)

        self.assertTrue(gen_rule_index > lower_so_index)
        self.assertTrue(upper_so_index, gen_rule_index)


if __name__ == "__main__":
    blade_test.run(TestGenRule)
        for line in self.scons_output:
            if 'plowercase.cpp.o -c' in line:
                com_lower_line = line
            if 'swig -python' in line:
                com_swig_python = line
            if 'swig -java' in line:
                com_swig_java = line
            if 'poppy_client_pywrap.cxx.o -c' in line:
                com_swig_python_cxx = line
            if 'poppy_client_javawrap.cxx.o -c' in line:
                com_swig_java_cxx = line
            if '_poppy_client.so ' in line:
                swig_python_so = line
            if 'libpoppy_client_java.so ' in line:
                swig_java_so = line

        self.assertCxxFlags(com_lower_line)

        self.assertTrue('poppy_client_pywrap.cxx' in com_swig_python)
        self.assertTrue('poppy_client_javawrap.cxx' in com_swig_java)

        self.assertCxxFlags(com_swig_python_cxx)
        self.assertCxxFlags(com_swig_java_cxx)

        self.assertDynamicLinkFlags(swig_python_so)
        self.assertDynamicLinkFlags(swig_java_so)


if __name__ == '__main__':
    blade_test.run(TestSwigLibrary)
Example #6
0
        com_uses_line = self.findCommand(['use_protos.cpp.o', '-c'])
        com_proto_cpp_option = self.findCommand(['protobuf/bin/protoc', 'cpp_out', 'rpc_option.proto'])
        com_proto_cpp_meta = self.findCommand(['protobuf/bin/protoc', 'cpp_out', 'rpc_meta_info.proto'])
        com_proto_java_option = self.findCommand(['protobuf/bin/protoc', 'java_out', 'rpc_option.proto'])
        com_proto_java_meta = self.findCommand(['protobuf/bin/protoc', 'java_out', 'rpc_meta_info.proto'])

        com_proto_option_cc = self.findCommand(['rpc_option.pb.cc.o', '-c'])
        com_proto_meta_cc = self.findCommand(['rpc_meta_info.pb.cc.o', '-c'])
        meta_depends_libs = self.findCommand(['-shared', 'librpc_meta_info_proto.so'])
        uses_depends_libs = self.findCommand(['-shared', 'libuse_protos.so'])

        self.assertCxxFlags(com_uses_line)

        self.assertTrue(com_proto_cpp_option)
        self.assertTrue(com_proto_cpp_meta)
        self.assertTrue(com_proto_java_option)
        self.assertTrue(com_proto_java_meta)

        self.assertNoWarningCxxFlags(com_proto_option_cc)
        self.assertNoWarningCxxFlags(com_proto_meta_cc)

        self.assertTrue(meta_depends_libs)
        self.assertIn('librpc_option_proto.so', meta_depends_libs)
        self.assertIn('libuse_protos.so', uses_depends_libs)
        self.assertIn('librpc_meta_info_proto.so', uses_depends_libs)
        self.assertIn('librpc_option_proto.so', uses_depends_libs)


if __name__ == '__main__':
    blade_test.run(TestProtoLibrary)
Example #7
0
        for line in self.scons_output:
            if 'plowercase.cpp.o -c' in line:
                com_lower_line = line
            if 'bison -d -o' in line:
                com_bison_line = line
            if 'flex -R -t' in line:
                com_flex_line = line
            if 'line_parser.ll.cc.o -c' in line:
                com_ll_static_line = line
            if 'line_parser.yy.cc.o -c' in line:
                com_yy_static_line = line
            if 'libparser.so' in line:
                lex_yacc_depends_libs = line

        self.assertCxxFlags(com_lower_line)

        self.assertTrue('line_parser.yy.cc' in com_bison_line)
        self.assertTrue('line_parser.ll.cc' in com_flex_line)

        self.assertCxxFlags(com_ll_static_line)
        self.assertCxxFlags(com_yy_static_line)

        self.assertTrue('liblowercase.so' in lex_yacc_depends_libs)
        self.assertTrue('line_parser.ll.cc.o' in lex_yacc_depends_libs)
        self.assertTrue('line_parser.yy.cc.o' in lex_yacc_depends_libs)
        self.assertDynamicLinkFlags(lex_yacc_depends_libs)


if __name__ == '__main__':
    blade_test.run(TestLexYacc)
Example #8
0
# Copyright (c) 2021 Tencent Inc.
# All rights reserved.
#
# Author:  CHEN Feng <*****@*****.**>
# Created: 2021-01-06
"""
 This is the test for extension functionality.
"""

import blade_test


class TestExtension(blade_test.TargetTest):
    """Test cc_binary."""
    def testGood(self):
        """Test that rules are generated correctly."""
        self.doSetUp('test_extension/good', command='build')
        self.assertTrue(self.runBlade())

    def testNonExisted(self):
        self.doSetUp('test_extension/non-existed', command='build')
        self.assertFalse(self.runBlade())


if __name__ == '__main__':
    blade_test.run(TestExtension)
Example #9
0
        self.assertTrue('poppy_client_pywrap.cxx' in com_swig_python)
        self.assertTrue('poppy_client_javawrap.cxx' in com_swig_java)

        self.assertTrue('-fno-omit-frame-pointer' in com_swig_python_cxx)
        self.assertTrue('-mcx16 -pipe -g' in com_swig_python_cxx)
        self.assertTrue('-DNDEBUG -D_FILE_OFFSET_BITS' in com_swig_python_cxx)

        self.assertTrue('-fno-omit-frame-pointer' in com_swig_java_cxx)
        self.assertTrue('-mcx16 -pipe -g' in com_swig_java_cxx)
        self.assertTrue('-DNDEBUG -D_FILE_OFFSET_BITS' in com_swig_java_cxx)

        self.assertTrue(java_com_line)
        self.assertTrue(java_so_line)
        self.assertTrue(jar_line)

        self.assertTrue('test_java_jar/java/lib/junit.jar' in java_com_line)
        self.assertTrue('com/soso/poppy/swig/*.java' in java_com_line)
        self.assertTrue('com/soso/poppy/*.java' in java_com_line)

        whole_archive = ('--whole-archive build64_release/test_java_jar/'
                         'librpc_meta_info_proto.a build64_release/test_java_jar/'
                         'librpc_option_proto.a -Wl,--no-whole-archive')
        self.assertTrue(whole_archive in java_so_line)
        self.assertTrue(jar_idx > java_com_idx)
        self.assertTrue(jar_idx > java_so_idx)


if __name__ == '__main__':
    blade_test.run(TestJavaJar)
Example #10
0
import unittest
import blade_test


class TestLoadBuilds(blade_test.TargetTest):
    """Test load builds."""
    def setUp(self):
        """setup method."""
        self.doSetUp('test_loadbuilds')

    @unittest.skip('TODO: query loaded targets')
    def testAllCommandTargets(self):
        """Test that all targets in the test project BUILD files
           are in the all command targets list.
        """
        proto_library = (self.target_path, 'rpc_meta_info_proto')
        cc_library = (self.target_path, 'poppy')
        static_resource = (self.target_path, 'static_resource')
        cc_test = (self.target_path, 'rpc_channel_test')
        swig_library = (self.target_path, 'poppy_client')
        lex_yacc_library = (self.target_path, 'parser')
        cc_plugin = (self.target_path, 'meter_business')
        gen_rule = (self.target_path, 'search_service_echo')
        java_jar = (self.target_path, 'poppy_java_client')
        cc_binary = (self.target_path, 'echoserver')


if __name__ == '__main__':
    blade_test.run(TestLoadBuilds)
import unittest
import blade_test


class TestLoadBuilds(blade_test.TargetTest):
    """Test load builds. """
    def setUp(self):
        """setup method. """
        self.doSetUp('test_loadbuilds')

    @unittest.skip('TODO: query loaded targets')
    def testAllCommandTargets(self):
        """Test that all targets in the test project BUILD files
           are in the all command targets list.
        """
        proto_library = (self.target_path, 'rpc_meta_info_proto')
        cc_library = (self.target_path, 'poppy')
        static_resource = (self.target_path, 'static_resource')
        cc_test = (self.target_path, 'rpc_channel_test')
        swig_library = (self.target_path, 'poppy_client')
        lex_yacc_library = (self.target_path, 'parser')
        cc_plugin = (self.target_path, 'meter_business')
        gen_rule = (self.target_path, 'search_service_echo')
        java_jar = (self.target_path, 'poppy_java_client')
        cc_binary = (self.target_path, 'echoserver')


if __name__ == '__main__':
    blade_test.run(TestLoadBuilds)
        poppy_deps = self.all_targets.get(cc_library_poppy, {}).get('deps', [])
        poppy_mock_deps = self.all_targets.get(cc_lib_poppy_mock, {}).get('deps', [])
        self.assertTrue(poppy_deps)
        self.assertTrue(poppy_mock_deps)

        self.assertTrue(proto_lib_option in poppy_deps)
        self.assertTrue(proto_lib_meta in poppy_deps)
        self.assertTrue(static_resource in poppy_deps)
        self.assertTrue(system_lib in poppy_deps)
        self.assertTrue(cc_library_poppy in poppy_mock_deps)
        self.assertTrue(proto_lib_meta in poppy_mock_deps)

        poppy_client_deps  = self.all_targets.get(swig_library, {}).get('deps', [])
        self.assertTrue(poppy_client_deps)
        self.assertTrue(cc_library_poppy in poppy_client_deps)
        self.assertTrue(cc_lib_prebuild  in poppy_client_deps)

        self.assertTrue(java_jar in self.all_targets.keys())
        java_jar_deps = self.all_targets.get(java_jar, {}).get('deps', [])
        self.assertTrue(java_jar_deps)

        self.assertTrue(proto_lib_option in java_jar_deps)
        self.assertTrue(proto_lib_meta in java_jar_deps)
        self.assertTrue(java_jar_prebuild in java_jar_deps)
        self.assertTrue(cc_library_poppy not in java_jar_deps)


if __name__ == "__main__":
    blade_test.run(TestDepsAnalyzing)
Example #13
0
        self.assertTrue(cc_library_string in self.all_targets.keys())

        self.assertTrue(self.dryRun())

        com_lower_line = ''
        com_upper_line = ''
        com_string_line = ''
        string_main_depends_libs = ''
        for line in self.scons_output:
            if 'plowercase.cpp.o -c' in line:
                com_lower_line = line
            if 'puppercase.cpp.o -c' in line:
                com_upper_line = line
            if 'string_test.cpp.o -c' in line:
                com_string_line = line
            if 'string_test_main' in line:
                string_main_depends_libs = line

        self.assertCxxFlags(com_lower_line)
        self.assertCxxFlags(com_upper_line)
        self.assertCxxFlags(com_string_line)

        self.assertLinkFlags(string_main_depends_libs)
        self.assertTrue('liblowercase.a' in string_main_depends_libs)
        ret_code = self.blade.test()
        self.assertEqual(ret_code, 1)


if __name__ == '__main__':
    blade_test.run(TestTestRunner)
Example #14
0
class TestTestRunner(blade_test.TargetTest):
    """Test cc_library """
    def setUp(self):
        """setup method. """
        self.doSetUp('test_test_runner',
                     'string_test_main',
                     full_test=False,
                     args='',
                     test_jobs=1,
                     show_details=True)

    def testTestRunnerCorrectly(self):
        """Test query targets dependency relationship correctly. """
        self.assertTrue(self.dryRun())

        com_lower_line = self.findCommand(['plowercase.cpp.o', '-c'])
        com_upper_line = self.findCommand(['puppercase.cpp.o', '-c'])
        com_string_line = self.findCommand(['string_test.cpp.o', '-c'])
        string_main_depends_libs = self.findCommand('string_test_main ')

        self.assertCxxFlags(com_lower_line)
        self.assertCxxFlags(com_upper_line)
        self.assertCxxFlags(com_string_line)

        self.assertLinkFlags(string_main_depends_libs)
        self.assertIn('liblowercase.a', string_main_depends_libs)


if __name__ == '__main__':
    blade_test.run(TestTestRunner)
Example #15
0
        self.query_targets = ['test_query:poppy']
        self.all_targets = self.blade.get_build_targets()

    def testQueryCorrectly(self):
        """Test query targets dependency relationship correctly. """
        self.assertTrue(self.all_targets)
        result_map = {}
        result_map = self.blade.query_helper(self.query_targets)
        all_targets = self.blade.get_build_targets()
        query_key = ('test_query', 'poppy')
        self.assertTrue(query_key in result_map.keys())
        deps = result_map.get(query_key, [])[0]
        depended_by = result_map.get(query_key, [])[1]

        self.assertTrue(deps)
        self.assertTrue(depended_by)

        dep_one_key = ('test_query', 'rpc_meta_info_proto')
        dep_second_key = ('test_query', 'static_resource')
        self.assertTrue(dep_one_key in deps)
        self.assertTrue(dep_second_key in deps)

        depended_one_key = ('test_query', 'poppy_client')
        depended_second_key = ('test_query', 'poppy_mock')
        self.assertTrue(depended_one_key in depended_by)
        self.assertTrue(depended_second_key in depended_by)


if __name__ == '__main__':
    blade_test.run(TestQuery)
                com_upper_line = line
            if 'blade_string.cpp.o -c' in line:
                com_string_line = line
            if 'libblade_string.so' in line:
                string_depends_libs = line

        self.assertTrue('-fPIC -Wall -Wextra' in com_lower_line)
        self.assertTrue('-Wframe-larger-than=69632' in com_lower_line)
        self.assertTrue('-Werror=overloaded-virtual' in com_lower_line)

        self.assertTrue('-fPIC -Wall -Wextra' in com_upper_line)
        self.assertTrue('-Wframe-larger-than=69632' in com_upper_line)
        self.assertTrue('-Werror=overloaded-virtual' in com_upper_line)

        self.assertTrue('-fPIC -Wall -Wextra' not in com_string_line)
        self.assertTrue('-fno-omit-frame-pointer' in com_string_line)
        self.assertTrue('-mcx16 -pipe -g' in com_string_line)
        self.assertTrue('-DNDEBUG -D_FILE_OFFSET_BITS=64' in com_string_line)
        self.assertTrue('-DBLADE_STR_DEF -O2' in com_string_line)
        self.assertTrue('-w' in com_string_line)
        self.assertTrue('-m64' in com_string_line)
        self.assertTrue('-Werror=overloaded-virtual' not in com_string_line)

        self.assertTrue('liblowercase.so' in string_depends_libs)
        self.assertTrue('libuppercase.so' in string_depends_libs)



if __name__ == "__main__":
    blade_test.run(TestCcLibrary)
            if "forms_js_c.o -c" in line:
                com_forms_line = line
            if "poppy_html_c.o -c" in line:
                com_poppy_line = line
            if "libstatic_resource.so -m64" in line:
                static_so_line = line
            if "liblowercase.so -m64" in line:
                lower_depends_libs = line
            if "generate_resource_file" in line:
                if "forms.js" in line:
                    gen_forms_line = line
                elif "poppy.html" in line:
                    gen_poppy_line = line

        self.assertTrue(gen_forms_line)
        self.assertTrue(gen_poppy_line)

        self.assertCxxFlags(com_lower_line)
        self.assertNoWarningCxxFlags(com_forms_line)
        self.assertNoWarningCxxFlags(com_poppy_line)

        self.assertTrue("forms_js_c.o" in static_so_line)
        self.assertTrue("poppy_html_c.o" in static_so_line)

        self.assertDynamicLinkFlags(lower_depends_libs)
        self.assertTrue("libstatic_resource.so" in lower_depends_libs)


if __name__ == "__main__":
    blade_test.run(TestResourceLibrary)
Example #18
0
from blade import target_tags


class TagsTest(unittest.TestCase):
    def setUp(self):
        pass

    def testIsValid(self):
        self.assertTrue(target_tags.is_valid('test:test'))
        self.assertFalse(target_tags.is_valid('test'))

    def testCompile(self):
        self.assertTrue(target_tags.compile_filter('test:test')[0])
        self.assertTrue(target_tags.compile_filter('test:test,test2')[0])
        self.assertTrue(
            target_tags.compile_filter('test:test,test2 and test:test')[0])
        self.assertTrue(
            target_tags.compile_filter('test:test,test2 or test:test')[0])
        self.assertTrue(
            target_tags.compile_filter('test:test,test2 and not test:test')[0])
        self.assertTrue(
            target_tags.compile_filter('(test:test1,test2 and test:test)')[0])

        self.assertFalse(target_tags.compile_filter('test:test,test2 test')[0])
        self.assertFalse(target_tags.compile_filter('(test:test,test2')[0])
        self.assertFalse(target_tags.compile_filter('test:test,test2)')[0])


if __name__ == '__main__':
    blade_test.run(TagsTest)
        """Test that rules are generated correctly. """
        self.assertTrue(self.dryRun())

        com_lower_line = ''
        com_upper_line = ''
        com_string_line = ''
        string_main_depends_libs = ''
        string_plugin_depends_libs = ''
        for line in self.scons_output:
            if 'plowercase.cpp.o -c' in line:
                com_lower_line = line
            if 'puppercase.cpp.o -c' in line:
                com_upper_line = line
            if 'string_plugin.cpp.o -c' in line:
                com_string_line = line
            if 'libstring_plugin.so' in line:
                string_plugin_depends_libs = line

        self.assertCxxFlags(com_lower_line)
        self.assertCxxFlags(com_upper_line)
        self.assertCxxFlags(com_string_line)

        self.assertDynamicLinkFlags(string_plugin_depends_libs)
        self.assertIn('-Wl,-Bsymbolic', string_plugin_depends_libs)
        self.assertIn('liblowercase.a', string_plugin_depends_libs)
        self.assertIn('libuppercase.a', string_plugin_depends_libs)


if __name__ == '__main__':
    blade_test.run(TestCcPlugin)
Example #20
0
        self.assertTrue(cc_library_upper in self.all_targets.keys())
        self.assertTrue(cc_library_string in self.all_targets.keys())

        self.assertTrue(self.dryRun())

        com_lower_line = ''
        com_upper_line = ''
        com_string_line = ''
        string_main_depends_libs = ''
        for line in self.scons_output:
            if 'plowercase.cpp.o -c' in line:
                com_lower_line = line
            if 'puppercase.cpp.o -c' in line:
                com_upper_line = line
            if 'string_main.cpp.o -c' in line:
                com_string_line = line
            if 'string_main_prog' in line:
                string_main_depends_libs = line

        self.assertCxxFlags(com_lower_line)
        self.assertCxxFlags(com_upper_line)
        self.assertCxxFlags(com_string_line)

        self.assertLinkFlags(string_main_depends_libs)
        self.assertTrue('liblowercase.a' in string_main_depends_libs)
        self.assertTrue('libuppercase.a' in string_main_depends_libs)


if __name__ == '__main__':
    blade_test.run(TestCcBinary)
Example #21
0
import blade_test


class TestCcTest(blade_test.TargetTest):
    """Test cc_test """
    def setUp(self):
        """setup method. """
        self.doSetUp('test_cc_test')

    def testGenerateRules(self):
        """Test that rules are generated correctly. """
        self.assertTrue(self.dryRun())

        com_lower_line = self.findCommand('plowercase.cpp.o -c')
        com_upper_line = self.findCommand('puppercase.cpp.o -c')
        com_string_line = self.findCommand('string_test.cpp.o -c')
        string_main_depends_libs = self.findCommand('string_test_main ')

        self.assertCxxFlags(com_lower_line)
        self.assertCxxFlags(com_upper_line)
        self.assertCxxFlags(com_string_line)

        self.assertLinkFlags(string_main_depends_libs)
        self.assertIn('liblowercase.a', string_main_depends_libs)
        self.assertIn('libuppercase.a', string_main_depends_libs)


if __name__ == '__main__':
    blade_test.run(TestCcTest)
        self.assertTrue(cc_library_lower in self.all_targets.keys())
        self.assertTrue(cc_library_upper in self.all_targets.keys())

        self.assertTrue(self.dryRun())

        copy_lower_line = ''
        com_upper_line = ''
        upper_depends_libs = ''
        for line in self.scons_output:
            if 'Copy' in line:
                copy_lower_line = line
            if 'puppercase.cpp.o -c' in line:
                com_upper_line = line
            if 'libuppercase.so -m64' in line:
                upper_depends_libs = line

        self.assertTrue('test_prebuild_cc_library/liblowercase.so' in copy_lower_line)
        self.assertTrue('lib64_release/liblowercase.so' in copy_lower_line)

        self.assertTrue('-Wall -Wextra' in com_upper_line)
        self.assertTrue('-Wframe-larger-than=69632' in com_upper_line)
        self.assertTrue('-Werror=overloaded-virtual' in com_upper_line)

        self.assertTrue(upper_depends_libs)
        self.assertTrue('libuppercase.so -m64' in upper_depends_libs)
        self.assertTrue('liblowercase.so' in upper_depends_libs)


if __name__ == '__main__':
    blade_test.run(TestPrebuildCcLibrary)
            if 'rpc_option.pb.cc.o -c' in line:
                com_proto_option_cc = line
            if 'rpc_meta_info.pb.cc.o -c' in line:
                com_proto_meta_cc = line
            if 'librpc_meta_info_proto.so -m64' in line:
                meta_depends_libs = line
            if 'liblowercase.so -m64' in line:
                lower_depends_libs = line

        self.assertCxxFlags(com_lower_line)

        self.assertTrue(com_proto_cpp_option)
        self.assertTrue(com_proto_cpp_meta)
        self.assertTrue(com_proto_java_option)
        self.assertTrue(com_proto_java_meta)

        self.assertNoWarningCxxFlags(com_proto_option_cc)
        self.assertNoWarningCxxFlags(com_proto_meta_cc)

        self.assertTrue(meta_depends_libs)
        self.assertTrue('librpc_option_proto.so' in meta_depends_libs)

        self.assertTrue('liblowercase.so' in lower_depends_libs)
        self.assertTrue('librpc_meta_info_proto.so' in lower_depends_libs)
        self.assertTrue('librpc_option_proto.so' in lower_depends_libs)


if __name__ == '__main__':
    blade_test.run(TestProtoLibrary)
Example #24
0
class TestJava(blade_test.TargetTest):
    """Test java targets."""
    def setUp(self):
        """setup method."""
        self.doSetUp('java', generate_php=False)
        self.upper_target_path = 'test_java'

    def testLoadBuildsNotNone(self):
        """Test direct targets and all command targets are not none."""
        pass

    def testGenerateRules(self):
        """Test that rules are generated correctly."""
        self.assertTrue(self.dryRun())

        com_proto_java_option = self.findCommand(
            ['protobuf/bin/protoc', 'java_out', 'rpc_option.proto'])
        com_proto_java_meta = self.findCommand(
            ['protobuf/bin/protoc', 'java_out', 'rpc_meta_info.proto'])
        java_com_line, java_com_idx = self.findCommandAndLine(
            ['javac', '-classpath'])
        jar_line, jar_idx = self.findCommandAndLine('jar cf')

        self.assertTrue(com_proto_java_option)
        self.assertTrue(com_proto_java_meta)


if __name__ == '__main__':
    blade_test.run(TestJava)
Example #25
0
    def setUp(self):
        self.doSetUp('cc', target='...')

    def doTearDown(self):
        self.removeFile('blade-bin/dump.config')
        self.removeFile('blade-bin/compdb.json')
        self.removeFile('blade-bin/targets.json')

    def testDumpConfig(self):
        self.assertTrue(self.runBlade('dump', '--config'))
        self.assertTrue(
            self.runBlade('dump', '--config --to-file=blade-bin/dump.config'))
        self.assertTrue(os.path.isfile('blade-bin/dump.config'))

    def testDumpCompdb(self):
        self.assertTrue(self.runBlade('dump', '--compdb'))
        self.assertTrue(
            self.runBlade('dump', '--compdb --to-file=blade-bin/compdb.json'))
        json.load(open('blade-bin/compdb.json'))

    def testDumpTargets(self):
        self.assertTrue(self.runBlade('dump', '--targets'))
        self.assertTrue(
            self.runBlade('dump',
                          '--targets  --to-file=blade-bin/targets.json'))
        json.load(open('blade-bin/targets.json'))


if __name__ == '__main__':
    blade_test.run(TestDump)
Example #26
0
        poppy_deps = self.all_targets[cc_library_poppy].expanded_deps
        poppy_mock_deps = self.all_targets[cc_lib_poppy_mock].expanded_deps
        self.assertTrue(poppy_deps)
        self.assertTrue(poppy_mock_deps)

        self.assertTrue(proto_lib_option in poppy_deps)
        self.assertTrue(proto_lib_meta in poppy_deps)
        self.assertTrue(static_resource in poppy_deps)
        self.assertTrue(system_lib in poppy_deps)
        self.assertTrue(cc_library_poppy in poppy_mock_deps)
        self.assertTrue(proto_lib_meta in poppy_mock_deps)

        poppy_client_deps = self.all_targets[swig_library].expanded_deps
        self.assertTrue(poppy_client_deps)
        self.assertTrue(cc_library_poppy in poppy_client_deps)
        self.assertTrue(cc_lib_prebuild in poppy_client_deps)

        self.assertTrue(java_jar in self.all_targets)
        java_jar_deps = self.all_targets[java_jar].expanded_deps
        self.assertTrue(java_jar_deps)

        self.assertTrue(proto_lib_option in java_jar_deps)
        self.assertTrue(proto_lib_meta in java_jar_deps)
        self.assertTrue(java_jar_prebuild in java_jar_deps)
        self.assertTrue(cc_library_poppy not in java_jar_deps)


if __name__ == '__main__':
    blade_test.run(TestDepsAnalyzing)
Example #27
0
from blade import target_pattern


class TargetPatternTest(blade_test.TargetTest):
    def setUp(self):
        self.doSetUp('cc')

    def testNormalize(self):
        self.assertEqual('foo:*', target_pattern.normalize('//foo', '.'))
        self.assertEqual('foo:...', target_pattern.normalize('foo...', '.'))
        self.assertEqual('foo:*', target_pattern.normalize('foo', '.'))

    def testNormalizeList(self):
        self.assertEqual(['foo:...', 'foo:*'],
                         target_pattern.normalize_list(['foo...', 'foo'], '.'))

    def testIsValidInBuild(self):
        self.assertTrue(target_pattern.is_valid_in_build('//abc'))
        self.assertTrue(target_pattern.is_valid_in_build(':abc'))
        self.assertFalse(target_pattern.is_valid_in_build('abc'))

    def testMatch(self):
        self.assertTrue(target_pattern.match('abc:a', 'abc:a'))
        self.assertTrue(target_pattern.match('abc:a', 'abc:*'))
        self.assertTrue(target_pattern.match('abc/def:a', 'abc:...'))


if __name__ == '__main__':
    blade_test.run(TargetPatternTest)
Example #28
0
        com_lower_line = ''
        com_upper_line = ''

        lower_so_index = 0
        gen_rule_index = 0
        upper_so_index = 0
        index = 0

        for line in self.scons_output:
            index += 1
            if 'plowercase.cpp.o -c' in line:
                com_lower_line = line
            if 'puppercase.cpp.o -c' in line:
                com_upper_line = line
            if 'echo' in line:
                gen_rule_index = index
            if 'liblowercase.so -m64' in line:
                lower_so_index = index
            if 'libuppercase.so -m64' in line:
                upper_so_index = index

        self.assertCxxFlags(com_lower_line)
        self.assertCxxFlags(com_upper_line)

        self.assertGreater(gen_rule_index, lower_so_index)
        self.assertGreater(upper_so_index, gen_rule_index)


if __name__ == '__main__':
    blade_test.run(TestGenRule)
Example #29
0
        self.assertTrue(cc_library_string in self.all_targets.keys())

        self.assertTrue(self.dryRun())

        com_lower_line = ''
        com_upper_line = ''
        com_string_line = ''
        string_main_depends_libs = ''
        for line in self.scons_output:
            if 'plowercase.cpp.o -c' in line:
                com_lower_line = line
            if 'puppercase.cpp.o -c' in line:
                com_upper_line = line
            if 'string_plugin.cpp.o -c' in line:
                com_string_line = line
            if 'libstring_plugin.so' in line:
                string_plugin_depends_libs = line

        self.assertCxxFlags(com_lower_line)
        self.assertCxxFlags(com_upper_line)
        self.assertCxxFlags(com_string_line)

        self.assertDynamicLinkFlags(string_plugin_depends_libs)
        self.assertTrue('-Wl,-Bsymbolic' in string_plugin_depends_libs)
        self.assertTrue('liblowercase.a' in string_plugin_depends_libs)
        self.assertTrue('libuppercase.a' in string_plugin_depends_libs)


if __name__ == '__main__':
    blade_test.run(TestCcPlugin)
Example #30
0
        """setup method. """
        self.doSetUp('test_lex_yacc')

    def testGenerateRules(self):
        """Test that rules are generated correctly. """
        self.assertTrue(self.dryRun())

        com_lower_line = self.findCommand(['plowercase.cpp.o', '-c'])
        com_bison_line = self.findCommand(['bison', '-d', '-o'])
        com_flex_line = self.findCommand(['flex', '-R', '-o'])
        com_ll_static_line = self.findCommand(['line_parser.ll.cc.o', '-c'])
        com_yy_static_line = self.findCommand(['line_parser.yy.cc.o', '-c'])
        lex_yacc_depends_libs = self.findCommand('libparser.so')

        self.assertCxxFlags(com_lower_line)

        self.assertIn('line_parser.yy.cc', com_bison_line)
        self.assertIn('line_parser.ll.cc', com_flex_line)

        self.assertCxxFlags(com_ll_static_line)
        self.assertCxxFlags(com_yy_static_line)

        self.assertIn('liblowercase.so', lex_yacc_depends_libs)
        self.assertIn('line_parser.ll.cc.o', lex_yacc_depends_libs)
        self.assertIn('line_parser.yy.cc.o', lex_yacc_depends_libs)
        self.assertDynamicLinkFlags(lex_yacc_depends_libs)


if __name__ == '__main__':
    blade_test.run(TestLexYacc)
Example #31
0
import blade_test


class TestCcTest(blade_test.TargetTest):
    """Test cc_test """
    def setUp(self):
        """setup method. """
        self.doSetUp('cc', command='test')

    def testGenerateRules(self):
        """Test that rules are generated correctly. """
        self.assertTrue(self.runBlade('--show-details'))

        com_lower_line = self.findCommand(['plowercase.cpp.o', '-c'])
        com_upper_line = self.findCommand(['puppercase.cpp.o', '-c'])
        com_string_line = self.findCommand(['string_test.cpp.o', '-c'])
        string_main_depends_libs = self.findCommand('string_test_main ')
        self.assertTrue(self.findCommand('Test Passed'))

        self.assertCxxFlags(com_lower_line)
        self.assertCxxFlags(com_upper_line)
        self.assertCxxFlags(com_string_line)

        self.assertLinkFlags(string_main_depends_libs)
        self.assertIn('liblowercase.a', string_main_depends_libs)
        self.assertIn('libuppercase.a', string_main_depends_libs)


if __name__ == '__main__':
    blade_test.run(TestCcTest)
Example #32
0
This is the test header dependency check for cc target.
"""

import blade_test


class TestHdrDepCheck(blade_test.TargetTest):
    """Test cc_binary."""
    def setUp(self):
        """setup method."""
        self.doSetUp('hdr_dep_check', target='...')

    def testErrorReport(self):
        """Test that rules are generated correctly."""
        self.assertFalse(self.runBlade('build', print_error=False))
        self.assertTrue(
            self.inBuildOutput(
                '''For "hdr_dep_check/lib1.h", which belongs to ":lib1"'''))
        self.assertTrue(
            self.inBuildOutput(
                '''"hdr_dep_check/lib1_impl.h" is a private header file of ":lib1"'''
            ))
        self.assertTrue(
            self.inBuildOutput(
                '''"hdr_dep_check/undeclared.h" is not declared in any cc target'''
            ))


if __name__ == '__main__':
    blade_test.run(TestHdrDepCheck)
            if 'forms_js_c.o -c' in line:
                com_forms_line = line
            if 'poppy_html_c.o -c' in line:
                com_poppy_line = line
            if 'libstatic_resource.so -m64' in line:
                static_so_line = line
            if 'liblowercase.so -m64' in line:
                lower_depends_libs = line
            if 'generate_resource_file' in line:
                if 'forms.js' in line:
                    gen_forms_line = line
                elif 'poppy.html' in line:
                    gen_poppy_line = line

        self.assertTrue(gen_forms_line)
        self.assertTrue(gen_poppy_line)

        self.assertCxxFlags(com_lower_line)
        self.assertNoWarningCxxFlags(com_forms_line)
        self.assertNoWarningCxxFlags(com_poppy_line)

        self.assertTrue('forms_js_c.o' in static_so_line)
        self.assertTrue('poppy_html_c.o' in static_so_line)

        self.assertDynamicLinkFlags(lower_depends_libs)
        self.assertTrue('libstatic_resource.so' in lower_depends_libs)


if __name__ == '__main__':
    blade_test.run(TestResourceLibrary)
Example #34
0

class TestCcLibrary(blade_test.TargetTest):
    """Test cc_library."""
    def setUp(self):
        """setup method."""
        self.doSetUp('cc')

    def testGenerateRules(self):
        """Test that rules are generated correctly."""
        self.assertTrue(self.runBlade())

        com_lower_line = self.findCommand(['-c', 'plowercase.cpp.o'])
        com_upper_line = self.findCommand(['-c', 'puppercase.cpp.o'])
        com_string_line = self.findCommand(['-c', 'blade_string.cpp.o'])
        string_depends_libs = self.findCommand('libblade_string.so')
        self.assertCxxFlags(com_lower_line)
        self.assertCxxFlags(com_upper_line)
        self.assertNoWarningCxxFlags(com_string_line)
        self.assertIn('-DNDEBUG -D_FILE_OFFSET_BITS=64', com_string_line)
        self.assertIn('-DBLADE_STR_DEF', com_string_line)
        self.assertIn('-O2', com_string_line)
        self.assertIn('-w', com_string_line)
        self.assertIn('-o', com_string_line)

        self.assertDynamicLinkFlags(string_depends_libs)


if __name__ == '__main__':
    blade_test.run(TestCcLibrary)
Example #35
0
        self.assertTrue('poppy_client_pywrap.cxx' in com_swig_python)
        self.assertTrue('poppy_client_javawrap.cxx' in com_swig_java)

        self.assertTrue('-fno-omit-frame-pointer' in com_swig_python_cxx)
        self.assertTrue('-mcx16 -pipe -g' in com_swig_python_cxx)
        self.assertTrue('-DNDEBUG -D_FILE_OFFSET_BITS' in com_swig_python_cxx)

        self.assertTrue('-fno-omit-frame-pointer' in com_swig_java_cxx)
        self.assertTrue('-mcx16 -pipe -g' in com_swig_java_cxx)
        self.assertTrue('-DNDEBUG -D_FILE_OFFSET_BITS' in com_swig_java_cxx)

        self.assertTrue(java_com_line)
        self.assertTrue(java_so_line)
        self.assertTrue(jar_line)

        self.assertTrue('test_java_jar/java/lib/junit.jar' in java_com_line)
        self.assertTrue('com/soso/poppy/swig/*.java' in java_com_line)
        self.assertTrue('com/soso/poppy/*.java' in java_com_line)

        whole_archive = (
            '--whole-archive build64_release/test_java_jar/'
            'librpc_meta_info_proto.a build64_release/test_java_jar/'
            'librpc_option_proto.a -Wl,--no-whole-archive')
        self.assertTrue(whole_archive in java_so_line)
        self.assertTrue(jar_idx > java_com_idx)
        self.assertTrue(jar_idx > java_so_idx)


if __name__ == '__main__':
    blade_test.run(TestJavaJar)
Example #36
0
        for line in self.build_output:
            if 'plowercase.cpp.o -c' in line:
                com_lower_line = line
            if 'swig -python' in line:
                com_swig_python = line
            if 'swig -java' in line:
                com_swig_java = line
            if 'poppy_client_pywrap.cxx.o -c' in line:
                com_swig_python_cxx = line
            if 'poppy_client_javawrap.cxx.o -c' in line:
                com_swig_java_cxx = line
            if '_poppy_client.so ' in line:
                swig_python_so = line
            if 'libpoppy_client_java.so ' in line:
                swig_java_so = line

        self.assertCxxFlags(com_lower_line)

        self.assertTrue('poppy_client_pywrap.cxx' in com_swig_python)
        self.assertTrue('poppy_client_javawrap.cxx' in com_swig_java)

        self.assertCxxFlags(com_swig_python_cxx)
        self.assertCxxFlags(com_swig_java_cxx)

        self.assertDynamicLinkFlags(swig_python_so)
        self.assertDynamicLinkFlags(swig_java_so)


if __name__ == '__main__':
    blade_test.run(TestSwigLibrary)
Example #37
0
        self.assertNotIn('-Wframe-larger-than=', com_proto_option_cc)
        self.assertNotIn('-Werror=overloaded-virtual', com_proto_option_cc)

        self.assertIn('-fPIC', com_proto_meta_cc)

        self.assertIn('poppy_client_pywrap.cxx', com_swig_python)
        self.assertIn('poppy_client_javawrap.cxx', com_swig_java)

        self.assertIn('-fno-omit-frame-pointer', com_swig_python_cxx)
        self.assertIn('-pipe -g', com_swig_python_cxx)
        self.assertIn('-DNDEBUG -D_FILE_OFFSET_BITS', com_swig_python_cxx)

        self.assertIn('-fno-omit-frame-pointer', com_swig_java_cxx)
        self.assertIn('-pipe -g', com_swig_java_cxx)
        self.assertIn('-DNDEBUG -D_FILE_OFFSET_BITS', com_swig_java_cxx)
        # whole_archive = ('--whole-archive build64_release/test_java_jar/'
        #                  'librpc_meta_info_proto.a build64_release/test_java_jar/'
        #                  'librpc_option_proto.a -Wl,--no-whole-archive')
        # self.assertIn(whole_archive, java_so_line)
        # self.assertGreater(jar_idx, java_com_idx)
        # self.assertGreater(jar_idx, java_so_idx)
        # self.assertNotEqual('', java_com_line)
        # self.assertNotEqual('', java_so_line)
        # self.assertNotEqual('', jar_line)
        # self.assertIn('test_java_jar/java/lib/junit.jar', java_com_line)
        # self.assertIn('com/soso/poppy/*.java', java_com_line)


if __name__ == '__main__':
    blade_test.run(TestJava)