Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(60)

Side by Side Diff: tools/foozzie/v8_foozzie_test.py

Issue 2585193003: [foozzie] Add some system tests. (Closed)
Patch Set: Review Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tools/foozzie/v8_foozzie.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2016 the V8 project authors. All rights reserved. 1 # Copyright 2016 the V8 project authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import os
6 import subprocess
7 import sys
5 import unittest 8 import unittest
6 9
10 import v8_foozzie
7 import v8_suppressions 11 import v8_suppressions
8 12
9 class FuzzerTest(unittest.TestCase): 13 BASE_DIR = os.path.dirname(os.path.abspath(__file__))
14 FOOZZIE = os.path.join(BASE_DIR, 'v8_foozzie.py')
15 TEST_DATA = os.path.join(BASE_DIR, 'testdata')
16
17 class UnitTest(unittest.TestCase):
10 def testDiff(self): 18 def testDiff(self):
11 # TODO(machenbach): Mock out suppression configuration. 19 # TODO(machenbach): Mock out suppression configuration.
12 suppress = v8_suppressions.get_suppression( 20 suppress = v8_suppressions.get_suppression(
13 'x64', 'fullcode', 'x64', 'default') 21 'x64', 'fullcode', 'x64', 'default')
14 one = '' 22 one = ''
15 two = '' 23 two = ''
16 diff = None 24 diff = None
17 self.assertEquals(diff, suppress.diff(one, two)) 25 self.assertEquals(diff, suppress.diff(one, two))
18 26
19 one = 'a \n b\nc();' 27 one = 'a \n b\nc();'
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 undefined 76 undefined
69 somefile.js: TypeError: undefined is not a constructor 77 somefile.js: TypeError: undefined is not a constructor
70 """ 78 """
71 two = """ 79 two = """
72 undefined 80 undefined
73 otherfile.js: TypeError: undefined is not a constructor 81 otherfile.js: TypeError: undefined is not a constructor
74 """ 82 """
75 diff = """- somefile.js: TypeError: undefined is not a constructor 83 diff = """- somefile.js: TypeError: undefined is not a constructor
76 + otherfile.js: TypeError: undefined is not a constructor""" 84 + otherfile.js: TypeError: undefined is not a constructor"""
77 self.assertEquals(diff, suppress.diff(one, two)) 85 self.assertEquals(diff, suppress.diff(one, two))
86
87
88 def run_foozzie(first_d8, second_d8):
89 return subprocess.check_output([
90 sys.executable, FOOZZIE,
91 '--random-seed', '12345',
92 '--first-d8', os.path.join(TEST_DATA, first_d8),
93 '--second-d8', os.path.join(TEST_DATA, second_d8),
94 '--second-config', 'ignition_staging',
95 os.path.join(TEST_DATA, 'fuzz-test1.js'),
96 ])
97
98
99 class SystemTest(unittest.TestCase):
100 def testSyntaxErrorDiffPass(self):
101 stdout = run_foozzie('test_d8_1.py', 'test_d8_2.py')
102 self.assertEquals('# V8 correctness - pass\n', stdout)
103
104 def testDifferentOutputFail(self):
105 with open(os.path.join(TEST_DATA, 'failure_output.txt')) as f:
106 expected_output = f.read()
107 with self.assertRaises(subprocess.CalledProcessError) as ctx:
108 run_foozzie('test_d8_1.py', 'test_d8_3.py')
109 e = ctx.exception
110 self.assertEquals(v8_foozzie.RETURN_FAIL, e.returncode)
111 self.assertEquals(expected_output, e.output)
OLDNEW
« no previous file with comments | « tools/foozzie/v8_foozzie.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698