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)
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)
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)
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)
# 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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
"""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)
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)
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)
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)
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)
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)
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)