def testSymlinkInstall(self): """Check it returns dosym commands when symlink is specified.""" self.assertEqual( ebuild_function.generate(['source'], symlinks=['symlink']), [['dosym', 'source', 'symlink']]) self.assertEqual( ebuild_function.generate(['source'], symlinks=['symlink'], install_path='/'), [['dosym', 'source', '/symlink']])
def testStaticLibraryInstall(self): """Check it returns dolib.a commands when command_type is static_library.""" self.assertEqual( ebuild_function.generate(['source'], install_path='lib', command_type='static_library'), [['into', '/usr'], ['dolib.a', 'source']]) self.assertEqual( ebuild_function.generate(['source'], install_path='/lib', command_type='static_library'), [['into', '/'], ['dolib.a', 'source']]) self.assertEqual( ebuild_function.generate(['source'], install_path='lib', outputs=['output'], command_type='static_library'), [['into', '/usr'], ['newlib.a', 'source', 'output']])
def testExecutableInstall(self): """Check it returns do(s)bin commands when command_type is "executable".""" self.assertEqual( ebuild_function.generate(['source'], install_path='bin', command_type='executable'), [['into', '/usr'], ['dobin', 'source']]) self.assertEqual( ebuild_function.generate(['source'], install_path='sbin', command_type='executable'), [['into', '/usr'], ['dosbin', 'source']]) self.assertEqual( ebuild_function.generate(['source'], install_path='/bin', command_type='executable'), [['into', '/'], ['dobin', 'source']]) self.assertEqual( ebuild_function.generate(['source'], install_path='bin', outputs=['output'], command_type='executable'), [['into', '/usr'], ['newbin', 'source', 'output']])
def testInstall(self): """Check it returns doins commands when command_type isn't specified.""" self.assertEqual( ebuild_function.generate(['source']), [['insinto', '/'], ['insopts', '-m0644'], ['doins', 'source']]) self.assertEqual( ebuild_function.generate(['source'], install_path='/usr'), [['insinto', '/usr'], ['insopts', '-m0644'], ['doins', 'source']]) self.assertEqual( ebuild_function.generate(['source'], options='-m0755'), [['insinto', '/'], ['insopts', '-m0755'], ['doins', 'source']]) self.assertEqual(ebuild_function.generate(['source'], recursive=True), [['insinto', '/'], ['insopts', '-m0644'], ['doins', '-r', 'source']]) self.assertEqual( ebuild_function.generate(['source'], outputs=['output']), [ ['insinto', '/'], ['insopts', '-m0644'], ['newins', 'source', 'output'], ])
def configure_install(self): """Generates installation commands of ebuild.""" conf = self.gn_desc('--all') group_all = conf.get('//%s:all' % self.platform_subdir, {}) group_all_deps = group_all.get('deps', []) config_group = collections.defaultdict(list) for target_name in group_all_deps: target_conf = conf.get(target_name, {}) metadata = target_conf.get('metadata', {}) install_config = unwrap_value(metadata, '_install_config') if not install_config: continue sources = install_config.get('sources') if not sources: continue install_path = install_config.get('install_path') outputs = install_config.get('outputs') symlinks = install_config.get('symlinks') recursive = install_config.get('recursive') options = install_config.get('options') command_type = install_config.get('type') config_key = (install_path, recursive, options, command_type) config_group[config_key].append((sources, outputs, symlinks)) cmd_list = [] for install_config, install_args in config_group.items(): args = [] # Commands to install sources without explicit outputs nor symlinks can be # merged into one. Concat all such sources. sources = sum([ sources for sources, outputs, symlinks in install_args if not outputs and not symlinks ], []) if sources: args.append((sources, None, None)) # Append all remaining sources/outputs/symlinks. args += [(sources, outputs, symlinks) for sources, outputs, symlinks in install_args if outputs or symlinks] # Generate the command line. install_path, recursive, options, command_type = install_config for sources, outputs, symlinks in args: cmd_list += ebuild_function.generate(sources=sources, install_path=install_path, outputs=outputs, symlinks=symlinks, recursive=recursive, options=options, command_type=command_type) return cmd_list
def testUnknownTypeInstall(self): """Check it raises error when command_type is specified as unknown type.""" with self.assertRaises(AssertionError): ebuild_function.generate(['source'], command_type='something')