autobisect


Nameautobisect JSON
Version 7.8.0 PyPI version JSON
download
home_pagehttps://github.com/MozillaSecurity/autobisect
SummaryAutomatic bisection utility for Mozilla Firefox and SpiderMonkey
upload_time2024-07-24 19:31:00
maintainerMozilla Fuzzing Team
docs_urlNone
authorJason Kratzer
requires_python<4.0.0,>=3.8.1
licenseMPL-2.0
keywords bisection fuzz fuzzing security test testing
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            Autobisect
==========
[![Task Status](https://community-tc.services.mozilla.com/api/github/v1/repository/MozillaSecurity/autobisect/master/badge.svg)](https://community-tc.services.mozilla.com/api/github/v1/repository/MozillaSecurity/autobisect/master/latest)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![codecov](https://codecov.io/gh/MozillaSecurity/autobisect/branch/master/graph/badge.svg)](https://codecov.io/gh/MozillaSecurity/autobisect)

Autobisect is a python module that automates bisection of Mozilla Firefox and SpiderMonkey bugs.

Installation
------------

```bash
git clone git@github.com:MozillaSecurity/autobisect.git
cd autobisect
poetry install
```

Usage
-----
Firefox bug bisection supports the following arguments:

```
python -m autobisect firefox --help
usage: __main__.py firefox [-h] [--log-level LOG_LEVEL] [--start START] [--end END] [--timeout TIMEOUT] [--repeat REPEAT] [--config CONFIG] [--find-fix] [--os {Android,Darwin,Linux,Windows}]
                           [--cpu {AMD64,ARM64,aarch64,arm,arm64,i686,x64,x86,x86_64}] [--central | --release | --beta | --esr-stable | --esr-next | --try | --autoland] [-d] [-a] [-t] [--fuzzing]
                           [--fuzzilli] [--coverage] [--valgrind] [--no-opt] [--launch-timeout LAUNCH_TIMEOUT] [-p PREFS] [--xvfb] [--ignore [IGNORE [IGNORE ...]]]
                           testcase

positional arguments:
  testcase              Path to testcase

optional arguments:
  -h, --help            show this help message and exit
  --log-level LOG_LEVEL
                        Configure console logging. Options: DEBUG, INFO, WARN, ERROR, CRIT (default: INFO)

Boundary Arguments:
  Accepts revision or build date in YYYY-MM-DD format)

  --start START         Start build id (default: earliest available build)
  --end END             End build id (default: latest available build)

Bisection Arguments:
  --timeout TIMEOUT     Maximum iteration time in seconds (default: 60)
  --repeat REPEAT       Number of times to evaluate testcase (per build)
  --config CONFIG       Path to optional config file
  --find-fix            Identify fix date

Target Arguments:
  --os {Android,Darwin,Linux,Windows}
                        Specify the target system. (default: Linux)
  --cpu {AMD64,ARM64,aarch64,arm,arm64,i686,x64,x86,x86_64}
                        Specify the target CPU. (default: x86_64)

Branch Arguments:
  --central             Download from mozilla-central (default)
  --release             Download from mozilla-release
  --beta                Download from mozilla-beta
  --esr-stable          Download from esr-stable
  --esr-next            Download from esr-next
  --try                 Download from try
  --autoland            Download from autoland

Build Arguments:
  -d, --debug           Get debug builds w/ symbols (default=optimized).
  -a, --asan            Download AddressSanitizer builds.
  -t, --tsan            Download ThreadSanitizer builds.
  --fuzzing             Download --enable-fuzzing builds.
  --fuzzilli            Download --enable-js-fuzzilli builds.
  --coverage            Download --coverage builds.
  --valgrind            Download Valgrind builds.
  --no-opt              Download non-optimized builds.

Launcher Arguments:
  --launch-timeout LAUNCH_TIMEOUT
                        Number of seconds to wait before LaunchError is raised (default: 300)
  -p PREFS, --prefs PREFS
                        Optional prefs.js file to use
  --xvfb                Use Xvfb (Linux only)

Reporter Arguments:
  --ignore [IGNORE [IGNORE ...]]
                        Space separated list of issue types to ignore. Valid options: log-limit memory timeout (default: log-limit memory timeout)
```

Simple Bisection
----------------
```
python -m autobisect firefox trigger.html --prefs prefs.js --asan --end 2017-11-14
```

By default, Autobisect will cache downloaded builds (up to 30GBs) to reduce bisection time.  This behavior can be modified by supplying a custom configuration file in the following format:
```
[autobisect]
storage-path: /home/ubuntu/cached
persist: true
; size in MBs
persist-limit: 30000
```

Development
-----------
Autobisect includes a pre-commit hook for [black](https://github.com/psf/black) and [flake8](https://flake8.pycqa.org/en/latest/).  To install the pre-commit hook, run the following.  
```bash
pre-commit install
```

Furthermore, all tests should be executed via tox.
```bash
poetry run tox
```



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/MozillaSecurity/autobisect",
    "name": "autobisect",
    "maintainer": "Mozilla Fuzzing Team",
    "docs_url": null,
    "requires_python": "<4.0.0,>=3.8.1",
    "maintainer_email": "fuzzing@mozilla.com",
    "keywords": "bisection, fuzz, fuzzing, security, test, testing",
    "author": "Jason Kratzer",
    "author_email": "jkratzer@mozilla.com",
    "download_url": "https://files.pythonhosted.org/packages/30/81/7b7fc54c8fdf2357a86c07975931d1c73f325993a020a0352aa8e2110e72/autobisect-7.8.0.tar.gz",
    "platform": null,
    "description": "Autobisect\n==========\n[![Task Status](https://community-tc.services.mozilla.com/api/github/v1/repository/MozillaSecurity/autobisect/master/badge.svg)](https://community-tc.services.mozilla.com/api/github/v1/repository/MozillaSecurity/autobisect/master/latest)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n[![codecov](https://codecov.io/gh/MozillaSecurity/autobisect/branch/master/graph/badge.svg)](https://codecov.io/gh/MozillaSecurity/autobisect)\n\nAutobisect is a python module that automates bisection of Mozilla Firefox and SpiderMonkey bugs.\n\nInstallation\n------------\n\n```bash\ngit clone git@github.com:MozillaSecurity/autobisect.git\ncd autobisect\npoetry install\n```\n\nUsage\n-----\nFirefox bug bisection supports the following arguments:\n\n```\npython -m autobisect firefox --help\nusage: __main__.py firefox [-h] [--log-level LOG_LEVEL] [--start START] [--end END] [--timeout TIMEOUT] [--repeat REPEAT] [--config CONFIG] [--find-fix] [--os {Android,Darwin,Linux,Windows}]\n                           [--cpu {AMD64,ARM64,aarch64,arm,arm64,i686,x64,x86,x86_64}] [--central | --release | --beta | --esr-stable | --esr-next | --try | --autoland] [-d] [-a] [-t] [--fuzzing]\n                           [--fuzzilli] [--coverage] [--valgrind] [--no-opt] [--launch-timeout LAUNCH_TIMEOUT] [-p PREFS] [--xvfb] [--ignore [IGNORE [IGNORE ...]]]\n                           testcase\n\npositional arguments:\n  testcase              Path to testcase\n\noptional arguments:\n  -h, --help            show this help message and exit\n  --log-level LOG_LEVEL\n                        Configure console logging. Options: DEBUG, INFO, WARN, ERROR, CRIT (default: INFO)\n\nBoundary Arguments:\n  Accepts revision or build date in YYYY-MM-DD format)\n\n  --start START         Start build id (default: earliest available build)\n  --end END             End build id (default: latest available build)\n\nBisection Arguments:\n  --timeout TIMEOUT     Maximum iteration time in seconds (default: 60)\n  --repeat REPEAT       Number of times to evaluate testcase (per build)\n  --config CONFIG       Path to optional config file\n  --find-fix            Identify fix date\n\nTarget Arguments:\n  --os {Android,Darwin,Linux,Windows}\n                        Specify the target system. (default: Linux)\n  --cpu {AMD64,ARM64,aarch64,arm,arm64,i686,x64,x86,x86_64}\n                        Specify the target CPU. (default: x86_64)\n\nBranch Arguments:\n  --central             Download from mozilla-central (default)\n  --release             Download from mozilla-release\n  --beta                Download from mozilla-beta\n  --esr-stable          Download from esr-stable\n  --esr-next            Download from esr-next\n  --try                 Download from try\n  --autoland            Download from autoland\n\nBuild Arguments:\n  -d, --debug           Get debug builds w/ symbols (default=optimized).\n  -a, --asan            Download AddressSanitizer builds.\n  -t, --tsan            Download ThreadSanitizer builds.\n  --fuzzing             Download --enable-fuzzing builds.\n  --fuzzilli            Download --enable-js-fuzzilli builds.\n  --coverage            Download --coverage builds.\n  --valgrind            Download Valgrind builds.\n  --no-opt              Download non-optimized builds.\n\nLauncher Arguments:\n  --launch-timeout LAUNCH_TIMEOUT\n                        Number of seconds to wait before LaunchError is raised (default: 300)\n  -p PREFS, --prefs PREFS\n                        Optional prefs.js file to use\n  --xvfb                Use Xvfb (Linux only)\n\nReporter Arguments:\n  --ignore [IGNORE [IGNORE ...]]\n                        Space separated list of issue types to ignore. Valid options: log-limit memory timeout (default: log-limit memory timeout)\n```\n\nSimple Bisection\n----------------\n```\npython -m autobisect firefox trigger.html --prefs prefs.js --asan --end 2017-11-14\n```\n\nBy default, Autobisect will cache downloaded builds (up to 30GBs) to reduce bisection time.  This behavior can be modified by supplying a custom configuration file in the following format:\n```\n[autobisect]\nstorage-path: /home/ubuntu/cached\npersist: true\n; size in MBs\npersist-limit: 30000\n```\n\nDevelopment\n-----------\nAutobisect includes a pre-commit hook for [black](https://github.com/psf/black) and [flake8](https://flake8.pycqa.org/en/latest/).  To install the pre-commit hook, run the following.  \n```bash\npre-commit install\n```\n\nFurthermore, all tests should be executed via tox.\n```bash\npoetry run tox\n```\n\n\n",
    "bugtrack_url": null,
    "license": "MPL-2.0",
    "summary": "Automatic bisection utility for Mozilla Firefox and SpiderMonkey",
    "version": "7.8.0",
    "project_urls": {
        "Homepage": "https://github.com/MozillaSecurity/autobisect",
        "Repository": "https://github.com/MozillaSecurity/autobisect"
    },
    "split_keywords": [
        "bisection",
        " fuzz",
        " fuzzing",
        " security",
        " test",
        " testing"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8bf3780adea50ff4f1ead216630418342d4238e79177ac25740190a1b7997a09",
                "md5": "68cf723952d6bee5439b5a31663bf1cb",
                "sha256": "804ddbfdd6ba7656fe327a24cbe31482225c568cb8fbe3249324e00c20fbc90e"
            },
            "downloads": -1,
            "filename": "autobisect-7.8.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "68cf723952d6bee5439b5a31663bf1cb",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0.0,>=3.8.1",
            "size": 29578,
            "upload_time": "2024-07-24T19:30:58",
            "upload_time_iso_8601": "2024-07-24T19:30:58.425953Z",
            "url": "https://files.pythonhosted.org/packages/8b/f3/780adea50ff4f1ead216630418342d4238e79177ac25740190a1b7997a09/autobisect-7.8.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "30817b7fc54c8fdf2357a86c07975931d1c73f325993a020a0352aa8e2110e72",
                "md5": "6268c963ac20fb628ce47953535e82dc",
                "sha256": "34f5b2640943c3b33345bd0a68cc2452efc922039b9a1a0839aa457deea59bf9"
            },
            "downloads": -1,
            "filename": "autobisect-7.8.0.tar.gz",
            "has_sig": false,
            "md5_digest": "6268c963ac20fb628ce47953535e82dc",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0.0,>=3.8.1",
            "size": 276366,
            "upload_time": "2024-07-24T19:31:00",
            "upload_time_iso_8601": "2024-07-24T19:31:00.526520Z",
            "url": "https://files.pythonhosted.org/packages/30/81/7b7fc54c8fdf2357a86c07975931d1c73f325993a020a0352aa8e2110e72/autobisect-7.8.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-07-24 19:31:00",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "MozillaSecurity",
    "github_project": "autobisect",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "tox": true,
    "lcname": "autobisect"
}
        
Elapsed time: 0.38728s