Modify framebuffer and NGA framebuffer to read screen size from board model dtb file. Optimise memory usuage of frame buffer
Add example minigui application with hooks to profiler (which writes results to S:\). Modified NGA framebuffer to run its own dfc queue at high priority
import sys
import unittest
import StringIO
import atexit
from test import test_support
class TestCase(unittest.TestCase):
def setUp(self):
s = StringIO.StringIO()
self.save_stdout = sys.stdout
self.save_stderr = sys.stderr
sys.stdout = sys.stderr = self.subst_io = s
self.save_handlers = atexit._exithandlers
atexit._exithandlers = []
def tearDown(self):
sys.stdout = self.save_stdout
sys.stderr = self.save_stderr
atexit._exithandlers = self.save_handlers
def test_args(self):
atexit.register(self.h1)
atexit.register(self.h4)
atexit.register(self.h4, 4, kw="abc")
atexit._run_exitfuncs()
self.assertEqual(self.subst_io.getvalue(),
"h4 (4,) {'kw': 'abc'}\nh4 () {}\nh1\n")
def test_badargs(self):
atexit.register(lambda: 1, 0, 0, (x for x in (1,2)), 0, 0)
self.assertRaises(TypeError, atexit._run_exitfuncs)
def test_order(self):
atexit.register(self.h1)
atexit.register(self.h2)
atexit.register(self.h3)
atexit._run_exitfuncs()
self.assertEqual(self.subst_io.getvalue(), "h3\nh2\nh1\n")
def test_sys_override(self):
# be sure a preset sys.exitfunc is handled properly
exfunc = sys.exitfunc
sys.exitfunc = self.h1
reload(atexit)
try:
atexit.register(self.h2)
atexit._run_exitfuncs()
finally:
sys.exitfunc = exfunc
self.assertEqual(self.subst_io.getvalue(), "h2\nh1\n")
def test_raise(self):
atexit.register(self.raise1)
atexit.register(self.raise2)
self.assertRaises(TypeError, atexit._run_exitfuncs)
### helpers
def h1(self):
print "h1"
def h2(self):
print "h2"
def h3(self):
print "h3"
def h4(self, *args, **kwargs):
print "h4", args, kwargs
def raise1(self):
raise TypeError
def raise2(self):
raise SystemError
def test_main():
test_support.run_unittest(TestCase)
if __name__ == "__main__":
test_main()