Ejemplo n.º 1
0
 def testMultipleKeysets(self):
     """Verify behavior when processing an insn w/multiple keysets"""
     EXPECTED = {
         'canary': [
             ('gs://chromeos-releases/canary-channel/test.board/5126.0.0/'
              'ChromeOS-recovery-R34-5126.0.0-test.board.instructions'),
             ('gs://chromeos-releases/canary-channel/test.board/5126.0.0/'
              'ChromeOS-recovery-R34-5126.0.0-test.board-key2.instructions'
              ),
             ('gs://chromeos-releases/canary-channel/test.board/5126.0.0/'
              'ChromeOS-recovery-R34-5126.0.0-test.board-key3.instructions'
              ),
         ],
         'dev': [
             ('gs://chromeos-releases/dev-channel/test.board/5126.0.0/'
              'ChromeOS-recovery-R34-5126.0.0-test.board.instructions'),
             ('gs://chromeos-releases/dev-channel/test.board/5126.0.0/'
              'ChromeOS-recovery-R34-5126.0.0-test.board-key2.instructions'
              ),
             ('gs://chromeos-releases/dev-channel/test.board/5126.0.0/'
              'ChromeOS-recovery-R34-5126.0.0-test.board-key3.instructions'
              ),
         ],
     }
     with mock.patch.object(gs.GSContext, 'Exists', return_value=True):
         urls = pushimage.PushImage('/src',
                                    'test.board',
                                    'R34-5126.0.0',
                                    force_keysets=('key1', 'key2', 'key3'))
     self.assertEqual(urls, EXPECTED)
Ejemplo n.º 2
0
 def testMultipleAltInsns(self):
     """Verify behavior when processing an insn w/multiple insn overlays"""
     EXPECTED = {
         'canary': [
             ('gs://chromeos-releases/canary-channel/test.multi/1.0.0/'
              'ChromeOS-recovery-R1-1.0.0-test.multi.instructions'),
             ('gs://chromeos-releases/canary-channel/test.multi/1.0.0/'
              'ChromeOS-recovery-R1-1.0.0-test.multi-TwoKeyset.instructions'
              ),
             ('gs://chromeos-releases/canary-channel/test.multi/1.0.0/'
              'ChromeOS-recovery-R1-1.0.0-test.multi-ColdKeyset.instructions'
              ),
         ],
         'dev': [
             ('gs://chromeos-releases/dev-channel/test.multi/1.0.0/'
              'ChromeOS-recovery-R1-1.0.0-test.multi.instructions'),
             ('gs://chromeos-releases/dev-channel/test.multi/1.0.0/'
              'ChromeOS-recovery-R1-1.0.0-test.multi-TwoKeyset.instructions'
              ),
             ('gs://chromeos-releases/dev-channel/test.multi/1.0.0/'
              'ChromeOS-recovery-R1-1.0.0-test.multi-ColdKeyset.instructions'
              ),
         ],
     }
     with mock.patch.object(gs.GSContext, 'Exists', return_value=True):
         urls = pushimage.PushImage('/src', 'test.multi', 'R1-1.0.0')
     self.assertEqual(urls, EXPECTED)
Ejemplo n.º 3
0
 def testBasicMock(self):
     """Simple smoke test in mock mode"""
     with mock.patch.object(gs.GSContext, 'Exists', return_value=True):
         pushimage.PushImage('/src',
                             'test.board',
                             'R34-5126.0.0',
                             dry_run=True,
                             mock=True)
Ejemplo n.º 4
0
 def testSignTypesNone(self):
     """Verify nothing is signed when we request an unavailable type"""
     urls = pushimage.PushImage('/src',
                                'test.board',
                                'R34-5126.0.0',
                                sign_types=['nononononono'])
     self.assertEqual(self.gs_mock.call_count, 24)
     self.assertFalse(self.mark_mock.called)
     self.assertEqual(urls, {})
Ejemplo n.º 5
0
    def testBasic_RealBoardName(self):
        """Runs a simple smoke test using a real board name."""
        EXPECTED = {
            'canary':
            [('gs://chromeos-releases/canary-channel/x86-alex/5126.0.0/'
              'ChromeOS-recovery-R34-5126.0.0-x86-alex.instructions')],
            'dev': [('gs://chromeos-releases/dev-channel/x86-alex/5126.0.0/'
                     'ChromeOS-recovery-R34-5126.0.0-x86-alex.instructions')],
        }
        with mock.patch.object(gs.GSContext, 'Exists', return_value=True):
            urls = pushimage.PushImage('/src', 'x86-alex', 'R34-5126.0.0')

        self.assertEqual(urls, EXPECTED)
Ejemplo n.º 6
0
 def testForceChannel(self):
     """Verify behavior when user has specified custom channel"""
     EXPECTED = {
         'meep': [
             ('gs://chromeos-releases/meep-channel/test.board/5126.0.0/'
              'ChromeOS-recovery-R34-5126.0.0-test.board.instructions'),
         ],
     }
     with mock.patch.object(gs.GSContext, 'Exists', return_value=True):
         urls = pushimage.PushImage('/src',
                                    'test.board',
                                    'R34-5126.0.0',
                                    force_channels=('meep', ))
     self.assertEqual(urls, EXPECTED)
Ejemplo n.º 7
0
    def testBasic(self):
        """Simple smoke test"""
        EXPECTED = {
            'canary':
            [('gs://chromeos-releases/canary-channel/test.board-hi/5126.0.0/'
              'ChromeOS-recovery-R34-5126.0.0-test.board-hi.instructions')],
            'dev':
            [('gs://chromeos-releases/dev-channel/test.board-hi/5126.0.0/'
              'ChromeOS-recovery-R34-5126.0.0-test.board-hi.instructions')],
        }
        with mock.patch.object(gs.GSContext, 'Exists', return_value=True):
            urls = pushimage.PushImage('/src',
                                       'test.board',
                                       'R34-5126.0.0',
                                       profile='hi')

        self.assertEqual(urls, EXPECTED)
Ejemplo n.º 8
0
    def testSignTypesBase(self):
        """Only sign the requested recovery type"""
        EXPECTED = {
            'canary':
            [('gs://chromeos-releases/canary-channel/test.board/5126.0.0/'
              'ChromeOS-base-R34-5126.0.0-test.board.instructions')],
            'dev': [('gs://chromeos-releases/dev-channel/test.board/5126.0.0/'
                     'ChromeOS-base-R34-5126.0.0-test.board.instructions')],
        }

        with mock.patch.object(gs.GSContext, 'Exists', return_value=True):
            urls = pushimage.PushImage('/src',
                                       'test.board',
                                       'R34-5126.0.0',
                                       sign_types=['base'])
        self.assertEqual(self.gs_mock.call_count, 28)
        self.assertTrue(self.mark_mock.called)
        self.assertEqual(urls, EXPECTED)
    def testSignTypesCr50Firmware(self):
        """Only sign the requested type"""
        EXPECTED = {
            'canary':
            [('gs://chromeos-releases/canary-channel/board2/5126.0.0/'
              'ChromeOS-cr50_firmware-R34-5126.0.0-board2.instructions')],
            'dev':
            [('gs://chromeos-releases/dev-channel/board2/5126.0.0/'
              'ChromeOS-cr50_firmware-R34-5126.0.0-board2.instructions')],
        }

        with mock.patch.object(gs.GSContext, 'Exists', return_value=True):
            urls = pushimage.PushImage('/src',
                                       'board2',
                                       'R34-5126.0.0',
                                       sign_types=['cr50_firmware'])
        self.assertEqual(self.gs_mock.call_count, 30)
        self.assertTrue(self.mark_mock.called)
        self.assertEqual(urls, EXPECTED)
Ejemplo n.º 10
0
    def testBasic_SignTypesEmptyList(self):
        """Tests PushImage behavior when |sign_types| is empty instead of None.

    As part of the buildbots, PushImage function always receives a tuple for
    |sign_types| argument.  This test checks the behavior for empty tuple.
    """
        EXPECTED = {
            'canary':
            [('gs://chromeos-releases/canary-channel/test.board-hi/5126.0.0/'
              'ChromeOS-recovery-R34-5126.0.0-test.board-hi.instructions')],
            'dev':
            [('gs://chromeos-releases/dev-channel/test.board-hi/5126.0.0/'
              'ChromeOS-recovery-R34-5126.0.0-test.board-hi.instructions')],
        }
        with mock.patch.object(gs.GSContext, 'Exists', return_value=True):
            urls = pushimage.PushImage('/src',
                                       'test.board',
                                       'R34-5126.0.0',
                                       profile='hi',
                                       sign_types=())

        self.assertEqual(urls, EXPECTED)
Ejemplo n.º 11
0
 def testNoInsns(self):
     """Boards w/out insn files should get skipped"""
     urls = pushimage.PushImage('/src', 'a bad bad board', 'R34-5126.0.0')
     self.assertEqual(self.gs_mock.call_count, 0)
     self.assertEqual(urls, None)