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']])
Esempio n. 4
0
 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'],
         ])
Esempio n. 5
0
 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')