コード例 #1
0
 def test_merge_three_conditions(self):
   values = {
     ('linux',): {
       'isolate_dependency_tracked': ['file_common', 'file_linux'],
     },
     ('mac',): {
       'isolate_dependency_tracked': ['file_common', 'file_mac'],
     },
     ('win',): {
       'isolate_dependency_tracked': ['file_common', 'file_win'],
     },
   }
   expected = {
     'conditions': [
       ['OS=="linux"', {
         'variables': {
           'isolate_dependency_tracked': [
             'file_linux',
           ],
         },
       }],
       ['OS=="linux" or OS=="mac" or OS=="win"', {
         'variables': {
           'isolate_dependency_tracked': [
             'file_common',
           ],
         },
       }],
       ['OS=="mac"', {
         'variables': {
           'isolate_dependency_tracked': [
             'file_mac',
           ],
         },
       }],
       ['OS=="win"', {
         'variables': {
           'isolate_dependency_tracked': [
             'file_win',
           ],
         },
       }],
     ],
   }
   actual = isolate.convert_map_to_isolate_dict(
       isolate.reduce_inputs(isolate.invert_map(values)), ('OS',))
   self.assertEqual(expected, actual)
コード例 #2
0
def main(args=None):
  parser = run_test_cases.OptionParserWithLogging(
      usage='%prog <options> [file1] [file2] ...')
  parser.add_option(
      '-o', '--output', help='Output to file instead of stdout')
  parser.add_option(
      '--os', default=','.join(DEFAULT_OSES),
      help='Inject the list of OSes, default: %default')

  options, args = parser.parse_args(args)

  configs = load_isolates(args, options.os.split(','))
  data = convert_map_to_isolate_dict(
      *reduce_inputs(*invert_map(configs.flatten())))
  if options.output:
    with open(options.output, 'wb') as f:
      print_all(configs.file_comment, data, f)
  else:
    print_all(configs.file_comment, data, sys.stdout)
  return 0
コード例 #3
0
 def test_merge_empty(self):
   actual = isolate.convert_map_to_isolate_dict(
       isolate.reduce_inputs(isolate.invert_map({})), ('dummy1', 'dummy2'))
   self.assertEqual({'conditions': []}, actual)
コード例 #4
0
 def test_convert_map_to_isolate_dict(self):
   amiga = ('amiga',)
   atari = ('atari',)
   coleco = ('coleco',)
   dendy = ('dendy',)
   values = {
     'command': {
       ('echo', 'Hello World'): (atari,),
       ('echo', 'You should get an Atari'): (amiga, coleco, dendy),
     },
     KEY_TRACKED: {
       'a': (amiga, atari, coleco, dendy),
       'c': (atari,),
       'e': (amiga, coleco, dendy),
       'g': (amiga,),
       'x': (amiga, atari, coleco, dendy),
     },
     KEY_UNTRACKED: {
       'b': (amiga, atari, coleco, dendy),
       'd': (atari,),
       'f': (amiga, coleco, dendy),
       'h': (amiga, atari, dendy),
     },
     KEY_TOUCHED: {
       'touched': (amiga, atari, coleco, dendy),
       'touched_a': (atari,),
       'touched_e': (amiga, coleco, dendy),
     },
     'read_only': {
       False: (amiga,),
       True: (atari,),
     },
   }
   expected_conditions = [
     ['OS=="amiga"', {
       'variables': {
         KEY_TRACKED: ['g'],
         'read_only': False,
       },
     }],
     ['OS=="amiga" or OS=="atari" or OS=="coleco" or OS=="dendy"', {
       'variables': {
         KEY_TRACKED: ['a', 'x'],
         KEY_UNTRACKED: ['b'],
         KEY_TOUCHED: ['touched'],
       },
     }],
     ['OS=="amiga" or OS=="atari" or OS=="dendy"', {
       'variables': {
         KEY_UNTRACKED: ['h'],
       },
     }],
     ['OS=="amiga" or OS=="coleco" or OS=="dendy"', {
       'variables': {
         'command': ['echo', 'You should get an Atari'],
         KEY_TRACKED: ['e'],
         KEY_UNTRACKED: ['f'],
         KEY_TOUCHED: ['touched_e'],
       },
     }],
     ['OS=="atari"', {
       'variables': {
         'command': ['echo', 'Hello World'],
         KEY_TRACKED: ['c'],
         KEY_UNTRACKED: ['d'],
         KEY_TOUCHED: ['touched_a'],
         'read_only': True,
       },
     }],
   ]
   actual = isolate.convert_map_to_isolate_dict(values, ('OS',))
   self.assertEqual(expected_conditions, sorted(actual.pop('conditions')))
   self.assertFalse(actual)
コード例 #5
0
 def test_merge_empty(self):
   actual = isolate.convert_map_to_isolate_dict(
       *isolate.reduce_inputs(*isolate.invert_map({})))
   self.assertEquals({}, actual)
コード例 #6
0
 def test_convert_map_to_isolate_dict(self):
   values = {
     'command': {
       ('echo', 'Hello World'): set(['atari']),
       ('echo', 'You should get an Atari'): set(['!atari']),
     },
     KEY_TRACKED: {
       'a': set([None]),
       'c': set(['atari']),
       'e': set(['!atari']),
       'g': set(['amiga']),
       'x': set([None]),
     },
     KEY_UNTRACKED: {
       'b': set([None]),
       'd': set(['atari']),
       'f': set(['!atari']),
       'h': set(['!coleco']),
     },
     KEY_TOUCHED: {
       'touched': set([None]),
       'touched_a': set(['atari']),
       'touched_e': set(['!atari']),
     },
     'read_only': {
       None: set(['coleco', 'dendy']),
       False: set(['amiga']),
       True: set(['atari']),
     },
   }
   oses = set(['amiga', 'atari', 'coleco', 'dendy'])
   expected = {
     'variables': {
       KEY_TRACKED: ['a', 'x'],
       KEY_UNTRACKED: ['b'],
       KEY_TOUCHED: ['touched'],
     },
     'conditions': [
       ['OS=="amiga"', {
         'variables': {
           KEY_TRACKED: ['g'],
           'read_only': False,
         },
       }],
       ['OS=="atari"', {
         'variables': {
           'command': ['echo', 'Hello World'],
           KEY_TRACKED: ['c'],
           KEY_UNTRACKED: ['d'],
           KEY_TOUCHED: ['touched_a'],
           'read_only': True,
         },
       }, {
         'variables': {
           'command': ['echo', 'You should get an Atari'],
           KEY_TRACKED: ['e'],
           KEY_UNTRACKED: ['f'],
           KEY_TOUCHED: ['touched_e'],
         },
       }],
       ['OS=="coleco"', {
       }, {
         'variables': {
           KEY_UNTRACKED: ['h'],
         },
       }],
     ],
   }
   self.assertEquals(
       expected, isolate.convert_map_to_isolate_dict(values, oses))