Exemple #1
0
 def _test_sft(self,
               skool,
               exp_sft,
               write_hex=0,
               preserve_base=False,
               min_address=0,
               max_address=65536):
     skoolfile = StringIO(textwrap.dedent(skool).strip())
     writer = SftWriter(skoolfile, write_hex, preserve_base)
     writer.write(min_address, max_address)
     sft = self.out.getvalue()
     self.assertEqual(textwrap.dedent(exp_sft).strip(), sft.rstrip())
Exemple #2
0
 def _test_sft(self,
               skool,
               exp_sft,
               write_hex=0,
               preserve_base=False,
               min_address=0,
               max_address=65536):
     skoolfile = StringIO(skool)
     writer = SftWriter(skoolfile, write_hex, preserve_base)
     writer.write(min_address, max_address)
     sft = self.out.getvalue().split('\n')[:-1]
     self.assertEqual(exp_sft, sft)
Exemple #3
0
def run(skoolfile, options):
    writer = SftWriter(skoolfile, options.write_hex, options.preserve_base)
    writer.write(options.start, options.end)
Exemple #4
0
 def test_invalid_address(self):
     writer = SftWriter(self.write_text_file('c4000f RET'))
     with self.assertRaises(SkoolParsingError) as cm:
         writer.write()
     self.assertEqual(cm.exception.args[0], "Invalid address (4000f):\nc4000f RET")
Exemple #5
0
 def _test_sft(self, skool, exp_sft, write_hex=0, preserve_base=False, min_address=0, max_address=65536):
     skoolfile = self.write_text_file(skool, suffix='.skool')
     writer = SftWriter(skoolfile, write_hex, preserve_base)
     writer.write(min_address, max_address)
     sft = self.out.getvalue().split('\n')[:-1]
     self.assertEqual(exp_sft, sft)
Exemple #6
0
 def test_skool_file_ending_with_blank_line(self):
     skool = "c32768 RET\n\n"
     exp_sft = "cC32768,1\n"
     SftWriter(StringIO(skool)).write()
     self.assertEqual(self.out.getvalue(), exp_sft)
Exemple #7
0
 def test_s_directive_invalid_value(self):
     writer = SftWriter(StringIO('s30000 DEFS 10,y'))
     with self.assertRaisesRegex(SkoolParsingError,
                                 "^Invalid integer 'y': DEFS 10,y$"):
         writer.write()
Exemple #8
0
 def test_invalid_address(self):
     writer = SftWriter(self.write_text_file('c4000f RET'))
     with self.assertRaises(SkoolParsingError) as cm:
         writer.write()
     self.assertEqual(cm.exception.args[0],
                      "Invalid address (4000f):\nc4000f RET")
Exemple #9
0
def run(skoolfile, options):
    writer = SftWriter(skoolfile, options.write_hex, options.preserve_base)
    writer.write(options.start, options.end)