- Notifications
You must be signed in to change notification settings - Fork112
Releases: MozillaSecurity/funfuzz
0.6.0
0.6.x supports Python 3.6+ only.
Features:
- funbind: Experimental integration with binaryen landed (Linux-only) (#219)
- funbind: binaryen version bumped to 68
- jsfunfuzz: Initial support for mark bit and gray root functions,
newGlobal({newCompartment: true}),Object.values,Object.[get|set]PrototypeOfandenableShapeConsistencyChecks() - compare_jit: Ignore
Object.getOwnPropertyNames,dumpScopeChain,addMarkObservers,clearMarkObserversandgetMarks - randorderfuzz: support streams tests
- Use exponential backoff for wasm file execution
- Add a lock using fasteners to prevent
wasm-optfrom tripping over itself - Use exponential backoff for FuzzManager submission (#145)
- ARM64 code improvements (both simulator and native)
- ICU support bumped up to version 63
- Max gczeal value bumped up to 25
- Bump minimum macOS to be 10.13.6
- Shell builds are compiled with
--disable-craneliftonly if onm-c rev 6fcf54117a3b or later, till current m-c tip - Make workaround for compiling further back, on Linux systems with sed >= 4.3 and add tests
- Use GCC for 32-bit builds when bisecting back prior tom-c rev e1cac03485d9
- Support
--more-compartmentsin most places --enable-streamshas been deprecated in favour of--no-streams- (all code relating to Python 2.7 support have been removed)
Bugfixes:
- funbind: Disable on ARM64 Linux due to binaryen GH issue 1615
- Fixed TypeError thrown when
file_contains_stris run after move to Python 3.6+ (#220) - Do not specify function names in
__init__.pysince we are now on Python 3.6+ to fix RuntimeWarning (#208) - Remove weights in build_options for slow devices since we do not deal with those anymore
- Remove
--ion-loop-unrolling=on/offas perbug 1520998 - Remove flags related to
--no-wasmfrom compare_jit testing, replacing with new ones, e.g.--wasm-compiler=[none|baseline|ion|baseline+ion] - Removed some subprocess calls in favour of the more pythonic way, e.g. for gzipping code
- Remove "-backup" file logic as its support was flaky
- Tweak packaging mode to use find_packages from setuptools in setup.py
- Windows Asan binary support fixes
- Library version bumps
- Various other bugfixes
Testing-related:
- code coverage tests added (#202)
- funfuzz now uses
pytestthroughout, oldunittest-related code has been removed - Switch to using
--streamwhen running hg clone, on Travis shellcheckandbashatenow run on Travis for bash scripts- Fast tests run on Travis for macOS and Windows
- AppVeyor integration has been removed from funfuzz
- Support pylint 2.x on Python 3 (#218)
- Add cleanup script to wipe
*.pyc,*.pyofiles and__pycache__dirs, run flake8, fast pytests and pylint - Various other Travis/testing bugfixes
Assets2
Uh oh!
There was an error while loading.Please reload this page.
0.5.0
0.5.x is the final version series with stable dual Python 2/3 support, and the branch will then be put on maintenance mode. Going forward, funfuzz will be on Python 3.6+
Features:
- funfuzz: Numerous Python 3 compatibility fixes
- funfuzz: SpiderMonkey code coverage support added
- funfuzz: The
crashesatinterestingness test has been refactored to use argparse, logging and pathlib (#199) - funfuzz:
flake8-commas,flake8-quotesextensions toflake8linting were added - funfuzz: There is now a
get_hg_repo.shscript in the util directory to clonemozilla-centralormozilla-betausing aria2 instead - funfuzz: Remove
shellify(#184) - funfuzz/compare_jit:
--no-streamsand--enable-wasm-gcare now tested - funfuzz/compare_jit: Removed
--ion-shared-stubs=[on|off],--non-writable-jitcode,--ion-aa=flow-sensitiveand--ion-aa=flow-insensitivesince they are no longer part of SpiderMonkey - jsfunfuzz:
objectEmulatingUndefinedbecamecreateIsHTMLDDA, seebug 1410194 - jsfunfuzz: Generates decreasing for-loops
- jsfunfuzz: Tests the
keepFailing:trueoption for oomTest - jsfunfuzz: Support
recomputeWrappers - jsfunfuzz:
evaluateacceptssaveIncrementalBytecodeas a parameter, seebug 1427860 - jsfunfuzz:
newGlobalacceptssameCompartmentAsas a parameter, seebug 1487238 - jsfunfuzz:
newGlobalacceptsinvisibleToDebuggeras a parameter - jsfunfuzz: Object.prototype no longer have the
__count__and__parent__properties - jsfunfuzz: Stop generating generator expressions
Bugfixes:
- compare_jit:
--no-native-regexpand--no-wasmwere removed from basic_flag_sets - compare_jit: Calling
ShellResultinjs_interestingwould fail due to the absence ofoptions.jsengine - funfuzz: Fix#9 - compileShell fails on Fedora due to autoconf 2.13 binary name discrepancy (#189)
- funfuzz: Fix#33 - Dump the error to
.bustedlog files when configuration fails, but append the info to them if they already exist - funfuzz: Off-by-one error in path concatenation in
jsFilesInfunction fixed - funfuzz: Some Clang/ASan build support fixes
- funfuzz: Rename
spstoos_opsin loop.py (#205) - Various other bugfixes
Assets2
Uh oh!
There was an error while loading.Please reload this page.
0.1.2
Bugfixes:
- On Windows, carriage returns (CR) would be used on Python 2.7 when compareJIT files were created. The issue was fixed by replacing them with line breaks (LF)
.gitignorewas backported from master- Fixate several python linter/test package versions on Travis/AppVeyor
- Fix
wrong-import-orderpylint error messages - Python 3 was never properly supported on the 0.1 legacy branch, so stop running the linters using it
- Move Travis on from the Trusty image to the Xenial one
This is the last point release on 0.1.x and marks the end-of-life of the 0.1 legacy branch.
Assets2
Uh oh!
There was an error while loading.Please reload this page.
0.4.2
Bugfixes:
- Fix#185 -
Commandline argument -t "js" in bot.py is not recognized. But it is mentioned in the readme.md. - Disable tests involving compile_shell on Python 2.7 mode unless Python 3.5+ is installed due to a mozilla-central requirement.
- This temporarily lowers code coverage numbers reported to Codecov via Travis, until Python 3.5+ support is finished.
- Integrated the isort Python checker into flake8 linting process
- More automation / documentation / linting fixes
Notes:
- Windows is still on the 0.1.x legacy branch, until Python 3.5+ support is completed
Assets2
Uh oh!
There was an error while loading.Please reload this page.
0.4.1
Bugfixes:
- Fixed crashes in
grabCrashLogby dealing withstr/unicodetypes better - Made
repos_updatenot update funfuzz anymore, sincepip 10 no longer comes with amainmethod and we should not rely on the internals of pip - Simplified
botoimport code - Inlined platform detection code instead of relying on
subprocesses - Tweaked Travis / AppVeyor CI configurations
Notes:
- Windows is still on the 0.1.x legacy branch, until Python 3.5+ support is completed
Assets2
Uh oh!
There was an error while loading.Please reload this page.
0.4.0
Big release!
Features:
- Hit 40% test coverage! (previously 30%)
- jsfunfuzz updates
async,for-await-of supportthanks to@arai-a- Obsolete functions removed (
E4X for-each,toSource,StopIteration,getPropertyDescriptor,Iterator/__iterator__,validategcetc.)
tooltoolremoved, along with lots of other unused functions now thatDOMFuzzis gone- Removed
download_build- Support for bisection using downloaded builds via
autobisectproject will be added later - In the meantime, the existing support got removed as tinderbox builds are no longer produced by official builds
- Support for bisection using downloaded builds via
- Windows ICU library versions bumped
Fixes
- Entire repository standardised to use double quotes
- Continued work towards Python 3 support, Python 3.5 is now the target
- More fixes for unicode/str confusion when interacting with other libraries, e.g. Lithium
- Standardised name to
autobisectjssince there is now the separateautobisect project - Started using more PyPI libraries
- e.g.
whichcraftinstead of in-house functions without tests
- e.g.
shell_flagsgot rewritten- Added new runtime flags, e.g.
--spectre-mitigations=on - Tests added
- Added new runtime flags, e.g.
- Start moving towards the
subprocess32PyPI library- En route to removing the
captureStdoutfunction
- En route to removing the
Platform support
- Removed support for Mac 32-bit builds as they became obsolete everywhere
- Linux builds now require GCC 6 (official build requirement)
Notes
- Windows is still on the 0.1.x legacy branch, until Python 3.5+ support is completed
Assets2
Uh oh!
There was an error while loading.Please reload this page.
0.3.0
Features:
- Basic pytest infrastructure added! - largely tests
compile_shellfor now - Add
codecov.iosupport - Now with code coverage! evalInCooperativeThreadandoomTestare now ignored when running differential testing.
Bugfixes:
- Ripped out the
versionfunction from being used in jsfunfuzz - Obsolete code removal, e.g. some flag combinations in shell_flags
- Tweaked the algorithm for the number of CPU cores used for compilation
- Miscellaneous fixes for Python stuff, linters, CI etc.
Notes:
- Minimum Mac support is now 10.11.x (El Capitan)
- Windows is still on the 0.1.x legacy branch
Assets2
Uh oh!
There was an error while loading.Please reload this page.
0.1.1
Assets2
Uh oh!
There was an error while loading.Please reload this page.
0.2.1
Bugfixes:
- Fix Xcode 9 builds on macOS
Assets2
Uh oh!
There was an error while loading.Please reload this page.
0.2.0
- First release with proper Python package folder layout structure
- Assuming repository was cloned to
~/funfuzz, can be installed via pip:pip install --upgrade ~/funfuzz
- Assuming repository was cloned to
Assets2
Uh oh!
There was an error while loading.Please reload this page.