annotate test_pydertron.py @ 35:6ddc83bb61f8 default tip

added another gc test
author Atul Varma <avarma@mozilla.com>
date Mon, 10 May 2010 21:01:58 -0700
parents 739c87de4667
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
31
3897ed8a350d Added NullFileSystem and test for it.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
1 import unittest
33
056025f2c8ae Added GC test
Atul Varma <avarma@mozilla.com>
parents: 32
diff changeset
2 import weakref
056025f2c8ae Added GC test
Atul Varma <avarma@mozilla.com>
parents: 32
diff changeset
3 import gc
31
3897ed8a350d Added NullFileSystem and test for it.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
4 from StringIO import StringIO
3897ed8a350d Added NullFileSystem and test for it.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
5
3897ed8a350d Added NullFileSystem and test for it.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
6 import pydertron
35
6ddc83bb61f8 added another gc test
Atul Varma <avarma@mozilla.com>
parents: 34
diff changeset
7 from pydertron import jsexposed
31
3897ed8a350d Added NullFileSystem and test for it.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
8
3897ed8a350d Added NullFileSystem and test for it.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
9 class PydertronTests(unittest.TestCase):
3897ed8a350d Added NullFileSystem and test for it.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
10 def testNullFilesystem(self):
3897ed8a350d Added NullFileSystem and test for it.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
11 stderr = StringIO()
3897ed8a350d Added NullFileSystem and test for it.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
12 sandbox = pydertron.JsSandbox(pydertron.NullFileSystem())
3897ed8a350d Added NullFileSystem and test for it.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
13 sandbox.set_globals()
3897ed8a350d Added NullFileSystem and test for it.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
14 sandbox.run_script("require('hi');", stderr=stderr)
3897ed8a350d Added NullFileSystem and test for it.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
15 self.assertEqual(stderr.getvalue(),
3897ed8a350d Added NullFileSystem and test for it.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
16 'Traceback (most recent call last):\n'
3897ed8a350d Added NullFileSystem and test for it.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
17 ' File "<string>", line 1, in <module>\n'
3897ed8a350d Added NullFileSystem and test for it.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
18 'Module not found: hi\n')
32
e3fcfa2bf3bc Added sandbox.finish() to end of test.
Atul Varma <avarma@mozilla.com>
parents: 31
diff changeset
19 sandbox.finish()
31
3897ed8a350d Added NullFileSystem and test for it.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
20
33
056025f2c8ae Added GC test
Atul Varma <avarma@mozilla.com>
parents: 32
diff changeset
21 def testGC(self):
056025f2c8ae Added GC test
Atul Varma <avarma@mozilla.com>
parents: 32
diff changeset
22 sandbox = pydertron.JsSandbox(pydertron.NullFileSystem())
056025f2c8ae Added GC test
Atul Varma <avarma@mozilla.com>
parents: 32
diff changeset
23 wrt = weakref.ref(sandbox.rt)
056025f2c8ae Added GC test
Atul Varma <avarma@mozilla.com>
parents: 32
diff changeset
24 del sandbox
056025f2c8ae Added GC test
Atul Varma <avarma@mozilla.com>
parents: 32
diff changeset
25 gc.collect()
056025f2c8ae Added GC test
Atul Varma <avarma@mozilla.com>
parents: 32
diff changeset
26 self.assertEqual(wrt(), None)
056025f2c8ae Added GC test
Atul Varma <avarma@mozilla.com>
parents: 32
diff changeset
27
34
739c87de4667 added another gc test
Atul Varma <avarma@mozilla.com>
parents: 33
diff changeset
28 def testGC2(self):
739c87de4667 added another gc test
Atul Varma <avarma@mozilla.com>
parents: 33
diff changeset
29 sandbox = pydertron.JsSandbox(pydertron.NullFileSystem())
739c87de4667 added another gc test
Atul Varma <avarma@mozilla.com>
parents: 33
diff changeset
30 sandbox.set_globals()
739c87de4667 added another gc test
Atul Varma <avarma@mozilla.com>
parents: 33
diff changeset
31 sandbox.run_script("var a = 1;")
739c87de4667 added another gc test
Atul Varma <avarma@mozilla.com>
parents: 33
diff changeset
32 wrt = weakref.ref(sandbox.rt)
739c87de4667 added another gc test
Atul Varma <avarma@mozilla.com>
parents: 33
diff changeset
33 sandbox.finish()
739c87de4667 added another gc test
Atul Varma <avarma@mozilla.com>
parents: 33
diff changeset
34 del sandbox
739c87de4667 added another gc test
Atul Varma <avarma@mozilla.com>
parents: 33
diff changeset
35 gc.collect()
739c87de4667 added another gc test
Atul Varma <avarma@mozilla.com>
parents: 33
diff changeset
36 self.assertEqual(wrt(), None)
739c87de4667 added another gc test
Atul Varma <avarma@mozilla.com>
parents: 33
diff changeset
37
35
6ddc83bb61f8 added another gc test
Atul Varma <avarma@mozilla.com>
parents: 34
diff changeset
38 def testGC3(self):
6ddc83bb61f8 added another gc test
Atul Varma <avarma@mozilla.com>
parents: 34
diff changeset
39 sandbox = pydertron.JsSandbox(pydertron.NullFileSystem())
6ddc83bb61f8 added another gc test
Atul Varma <avarma@mozilla.com>
parents: 34
diff changeset
40
6ddc83bb61f8 added another gc test
Atul Varma <avarma@mozilla.com>
parents: 34
diff changeset
41 stuff = []
6ddc83bb61f8 added another gc test
Atul Varma <avarma@mozilla.com>
parents: 34
diff changeset
42
6ddc83bb61f8 added another gc test
Atul Varma <avarma@mozilla.com>
parents: 34
diff changeset
43 @jsexposed
6ddc83bb61f8 added another gc test
Atul Varma <avarma@mozilla.com>
parents: 34
diff changeset
44 def bleh(x):
6ddc83bb61f8 added another gc test
Atul Varma <avarma@mozilla.com>
parents: 34
diff changeset
45 stuff.append(x)
6ddc83bb61f8 added another gc test
Atul Varma <avarma@mozilla.com>
parents: 34
diff changeset
46
6ddc83bb61f8 added another gc test
Atul Varma <avarma@mozilla.com>
parents: 34
diff changeset
47 sandbox.set_globals(bleh=bleh)
6ddc83bb61f8 added another gc test
Atul Varma <avarma@mozilla.com>
parents: 34
diff changeset
48 sandbox.run_script("bleh({});")
6ddc83bb61f8 added another gc test
Atul Varma <avarma@mozilla.com>
parents: 34
diff changeset
49 wrt = weakref.ref(sandbox.rt)
6ddc83bb61f8 added another gc test
Atul Varma <avarma@mozilla.com>
parents: 34
diff changeset
50 sandbox.finish()
6ddc83bb61f8 added another gc test
Atul Varma <avarma@mozilla.com>
parents: 34
diff changeset
51 stuff.pop()
6ddc83bb61f8 added another gc test
Atul Varma <avarma@mozilla.com>
parents: 34
diff changeset
52 del sandbox
6ddc83bb61f8 added another gc test
Atul Varma <avarma@mozilla.com>
parents: 34
diff changeset
53 gc.collect()
6ddc83bb61f8 added another gc test
Atul Varma <avarma@mozilla.com>
parents: 34
diff changeset
54 self.assertEqual(wrt(), None)
6ddc83bb61f8 added another gc test
Atul Varma <avarma@mozilla.com>
parents: 34
diff changeset
55
31
3897ed8a350d Added NullFileSystem and test for it.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
56 if __name__ == '__main__':
3897ed8a350d Added NullFileSystem and test for it.
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
57 unittest.main()