view test/testsamples.py @ 355:c2ddc8a36f5e

Enabled optimization
author Windel Bouwman
date Fri, 14 Mar 2014 10:30:13 +0100
parents
children 5ef1cb1bb54f
line wrap: on
line source

import unittest
from testemulation import runQemu
from ppci.recipe import RecipeLoader
from ppci.tasks import TaskRunner


class TestSamples:
    def testPrint(self):
        snippet = """
         module testsample;
         import io;
         function void start()
         {
            io.print("Hello world");
         }
        """
        self.do(snippet, "Hello world")

    def testForLoopPrint(self):
        snippet = """
         module testsample;
         import io;
         function void start()
         {
            var int i;
            for (i=0;i<10;i++)
            {
              io.print("A");
            }
         }
        """
        self.do(snippet, "AAAAAAAAAA")


class TestSamplesOnVexpress(unittest.TestCase, TestSamples):
    def do(self, src, expected_output):
        runner = TaskRunner()
        recipe_loader = RecipeLoader(runner)
        return
        # TODO: improve recipe loading??
        recipe_loader.load_dict({
             'link': {
               'inputs': [
               ],
               'layout': {
                 'code': 0x60010000,
                 'data': 0x60020000
               },
               'output': 'tst.bin'
             }
            })
        runner.add_task(Compile())
        runner.run_tasks()
        res = runQemu()
        self.assertEqual(expected_output, res)