def testMultipleDependenciesDefaultValue(self): expected_data = ( '\x00\x00\x00\x74' + 'HAMBURGER' + '\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa' + '\xf3\xfe\xa2g8\xd6\xc1\xc2K\xef\x89\xe3\xd7\xcfh\xbaH\xf8\x83\x08JS\x82\xa5\x86f\x82\x9b\x18\xc5r\xa9' ) uut = Template(name='uut', fields=[ SizeInBytes(sized_field='uut', length=32, name='size'), Pad(name='content', fields=[ String(value='HAMBURGER'), ], pad_length=640, pad_data='\xaa'), Sha256(depends_on='content', name='hash'), ]) self.assertEqual(uut.render().tobytes(), expected_data) uut.mutate() uut.reset() self.assertEqual(uut.render().tobytes(), expected_data)
def testDefaultValueWhenNotMutated(self): ''' Check that the default value, before mutation, is as the expected data ''' expected_data = 'Th3 L33ter ' uut = Template( name='uut', fields=[ String('Th'), BitField(value=3, length=20, encoder=ENC_INT_DEC), Static(' '), Container( name='leeter ', fields=[ Dynamic(key='hmm', default_value='L3'), String('\xde\xd7\xab', encoder=ENC_STR_BASE64_NO_NL), # 3ter RandomBytes(' ', min_length=1, max_length=100) ]) ]) self.assertEqual(uut.render().tobytes(), expected_data) uut.mutate() uut.reset() self.assertEqual(uut.render().tobytes(), expected_data)