| Index: tools/foozzie/v8_foozzie_test.py
|
| diff --git a/tools/foozzie/v8_foozzie_test.py b/tools/foozzie/v8_foozzie_test.py
|
| index de5516f80685e9fce35dd568c9666a9e3a3881f2..be085035ac2d05cedf5b672d93edbb83afb74f89 100644
|
| --- a/tools/foozzie/v8_foozzie_test.py
|
| +++ b/tools/foozzie/v8_foozzie_test.py
|
| @@ -2,11 +2,19 @@
|
| # Use of this source code is governed by a BSD-style license that can be
|
| # found in the LICENSE file.
|
|
|
| +import os
|
| +import subprocess
|
| +import sys
|
| import unittest
|
|
|
| +import v8_foozzie
|
| import v8_suppressions
|
|
|
| -class FuzzerTest(unittest.TestCase):
|
| +BASE_DIR = os.path.dirname(os.path.abspath(__file__))
|
| +FOOZZIE = os.path.join(BASE_DIR, 'v8_foozzie.py')
|
| +TEST_DATA = os.path.join(BASE_DIR, 'testdata')
|
| +
|
| +class UnitTest(unittest.TestCase):
|
| def testDiff(self):
|
| # TODO(machenbach): Mock out suppression configuration.
|
| suppress = v8_suppressions.get_suppression(
|
| @@ -75,3 +83,29 @@ otherfile.js: TypeError: undefined is not a constructor
|
| diff = """- somefile.js: TypeError: undefined is not a constructor
|
| + otherfile.js: TypeError: undefined is not a constructor"""
|
| self.assertEquals(diff, suppress.diff(one, two))
|
| +
|
| +
|
| +def run_foozzie(first_d8, second_d8):
|
| + return subprocess.check_output([
|
| + sys.executable, FOOZZIE,
|
| + '--random-seed', '12345',
|
| + '--first-d8', os.path.join(TEST_DATA, first_d8),
|
| + '--second-d8', os.path.join(TEST_DATA, second_d8),
|
| + '--second-config', 'ignition_staging',
|
| + os.path.join(TEST_DATA, 'fuzz-test1.js'),
|
| + ])
|
| +
|
| +
|
| +class SystemTest(unittest.TestCase):
|
| + def testSyntaxErrorDiffPass(self):
|
| + stdout = run_foozzie('test_d8_1.py', 'test_d8_2.py')
|
| + self.assertEquals('# V8 correctness - pass\n', stdout)
|
| +
|
| + def testDifferentOutputFail(self):
|
| + with open(os.path.join(TEST_DATA, 'failure_output.txt')) as f:
|
| + expected_output = f.read()
|
| + with self.assertRaises(subprocess.CalledProcessError) as ctx:
|
| + run_foozzie('test_d8_1.py', 'test_d8_3.py')
|
| + e = ctx.exception
|
| + self.assertEquals(v8_foozzie.RETURN_FAIL, e.returncode)
|
| + self.assertEquals(expected_output, e.output)
|
|
|