{
 "measured": "2026-10-12",
 "scope": "Small controlled fixtures, not benchmarks. Every tool ran the same tests on the same source with the versions listed. Assertions were not assessed.",
 "environment": {
  "platform": "macOS arm64",
  "node": "24.21.0",
  "python": "3.13.1",
  "go": "1.27.1",
  "jdk": "26.0.2.1",
  "maven": "3.9.16",
  "rust": "1.98.0"
 },
 "versions": {
  "supercov": "4.3.0",
  "jest": "30.5.2",
  "coverage.py": "7.16.2",
  "pytest": "9.1.1",
  "pytest-cov": "7.1.0",
  "pytest-xdist": "3.8.0",
  "jacoco-maven-plugin": "0.8.15",
  "cobertura-maven-plugin": "2.7",
  "junit-jupiter": "5.13.4",
  "maven-surefire-plugin": "3.5.4",
  "vitest": "5.0.4",
  "@vitest/coverage-v8": "5.0.4",
  "cargo-nextest": "0.9.138"
 },
 "fixtures": {
  "javascript": {
   "src/access.js": "function canAccess(signedIn, expired) {\n  if (signedIn && !expired) {\n    return true;\n  }\n  return false;\n}\n\nfunction label(user, fallback = 'Guest') {\n  return user ? user.name : fallback;\n}\n\n/* istanbul ignore next */\nfunction debugDump(session) {\n  return JSON.stringify(session);\n}\n\nmodule.exports = { canAccess, label, debugDump };\n",
   "access.test.js (Jest)": "const { canAccess, label } = require('./src/access');\n\ntest('active signed-in session can access', () => {\n  expect(canAccess(true, false)).toBe(true);\n});\n\ntest('signed-out session cannot access', () => {\n  expect(canAccess(false, false)).toBe(false);\n});\n\ntest('label shows the user name', () => {\n  expect(label({ name: 'Ada' })).toBe('Ada');\n});\n",
   "access.test.js (node:test)": "const { test } = require('node:test');\nconst assert = require('node:assert/strict');\nconst { canAccess, label } = require('./src/access');\n\ntest('active signed-in session can access', () => {\n  assert.equal(canAccess(true, false), true);\n});\n\ntest('signed-out session cannot access', () => {\n  assert.equal(canAccess(false, false), false);\n});\n\ntest('label shows the user name', () => {\n  assert.equal(label({ name: 'Ada' }), 'Ada');\n});\n",
   "package.json (Jest)": "{\"name\":\"jest-coverage-providers\",\"private\":true,\"scripts\":{\"test\":\"jest\"},\"jest\":{\"collectCoverageFrom\":[\"src/**/*.js\"],\"coverageReporters\":[\"text\",\"json-summary\",\"lcov\",\"cobertura\"]},\"devDependencies\":{\"jest\":\"^30.5.2\"}}",
   "access.test.mjs (Vitest)": "import { expect, test } from 'vitest';\nimport access from './src/access.js';\n\nconst { canAccess, label } = access;\n\ntest('active signed-in session can access', () => {\n  expect(canAccess(true, false)).toBe(true);\n});\n\ntest('signed-out session cannot access', () => {\n  expect(canAccess(false, false)).toBe(false);\n});\n\ntest('label shows the user name', () => {\n  expect(label({ name: 'Ada' })).toBe('Ada');\n});\n",
   "vitest.config.mjs": "import { defineConfig } from 'vitest/config';\n\nexport default defineConfig({\n  test: {\n    coverage: { provider: 'v8', include: ['src/**/*.js'], reporter: ['text', 'json-summary'] },\n  },\n});\n"
  },
  "python": {
   "src/access.py": "def can_access(signed_in, expired):\n    if signed_in and not expired:\n        return True\n    return False\n\n\ndef label(user, fallback=\"Guest\"):\n    return user[\"name\"] if user else fallback\n",
   "test_access.py": "from src.access import can_access, label\n\n\ndef test_active_session_can_access():\n    assert can_access(True, False) is True\n\n\ndef test_signed_out_session_cannot_access():\n    assert can_access(False, False) is False\n\n\ndef test_label_shows_the_user_name():\n    assert label({\"name\": \"Ada\"}) == \"Ada\"\n"
  },
  "go": {
   "access.go": "package access\n\n// CanAccess reports whether a session may read the page.\nfunc CanAccess(signedIn, expired bool) bool {\n\tif signedIn && !expired {\n\t\treturn true\n\t}\n\treturn false\n}\n",
   "access_test.go": "package access\n\nimport (\n\t\"sync\"\n\t\"testing\"\n)\n\nfunc TestActiveSession(t *testing.T) {\n\tif !CanAccess(true, false) {\n\t\tt.Fatal(\"active session should have access\")\n\t}\n}\n\nfunc TestSignedOut(t *testing.T) {\n\tif CanAccess(false, false) {\n\t\tt.Fatal(\"signed-out session should not have access\")\n\t}\n}\n\nfunc TestManyReaders(t *testing.T) {\n\tvar wg sync.WaitGroup\n\tfor i := 0; i < 8; i++ {\n\t\twg.Add(1)\n\t\tgo func() {\n\t\t\tdefer wg.Done()\n\t\t\tfor j := 0; j < 1000; j++ {\n\t\t\t\tCanAccess(true, false)\n\t\t\t}\n\t\t}()\n\t}\n\twg.Wait()\n}\n",
   "go.mod": "module example.com/access\n\ngo 1.22\n"
  },
  "java": {
   "src/main/java/example/Access.java": "package example;\n\npublic final class Access {\n    private Access() {}\n\n    public static boolean canAccess(boolean signedIn, boolean expired) {\n        if (signedIn && !expired) {\n            return true;\n        }\n        return false;\n    }\n}\n",
   "src/test/java/example/AccessTest.java": "package example;\n\nimport static org.junit.jupiter.api.Assertions.assertFalse;\nimport static org.junit.jupiter.api.Assertions.assertTrue;\n\nimport org.junit.jupiter.api.Test;\n\nclass AccessTest {\n    @Test\n    void activeSignedInSessionCanAccess() {\n        assertTrue(Access.canAccess(true, false));\n    }\n\n    @Test\n    void signedOutSessionCannotAccess() {\n        assertFalse(Access.canAccess(false, false));\n    }\n}\n",
   "pom.xml": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\">\n  <modelVersion>4.0.0</modelVersion>\n  <groupId>example</groupId>\n  <artifactId>access</artifactId>\n  <version>1.0.0</version>\n  <properties>\n    <maven.compiler.release>17</maven.compiler.release>\n    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>\n  </properties>\n  <dependencies>\n    <dependency>\n      <groupId>org.junit.jupiter</groupId>\n      <artifactId>junit-jupiter</artifactId>\n      <version>5.13.4</version>\n      <scope>test</scope>\n    </dependency>\n  </dependencies>\n  <build>\n    <plugins>\n      <plugin>\n        <groupId>org.apache.maven.plugins</groupId>\n        <artifactId>maven-surefire-plugin</artifactId>\n        <version>3.5.4</version>\n      </plugin>\n      <plugin>\n        <groupId>org.jacoco</groupId>\n        <artifactId>jacoco-maven-plugin</artifactId>\n        <version>0.8.15</version>\n        <executions>\n          <execution><goals><goal>prepare-agent</goal></goals></execution>\n          <execution><id>report</id><phase>test</phase><goals><goal>report</goal></goals></execution>\n        </executions>\n      </plugin>\n      <plugin>\n        <groupId>org.codehaus.mojo</groupId>\n        <artifactId>cobertura-maven-plugin</artifactId>\n        <version>2.7</version>\n      </plugin>\n    </plugins>\n  </build>\n</project>\n"
  },
  "rust": {
   "src/lib.rs": "use std::sync::atomic::{AtomicBool, Ordering};\n\nstatic MAINTENANCE: AtomicBool = AtomicBool::new(false);\n\n/// Turns maintenance mode on or off for the whole process.\npub fn set_maintenance(on: bool) {\n    MAINTENANCE.store(on, Ordering::SeqCst);\n}\n\n/// Reports whether a session may read the page.\n///\n/// ```\n/// assert!(access::can_access(true, false));\n/// ```\npub fn can_access(signed_in: bool, expired: bool) -> bool {\n    if MAINTENANCE.load(Ordering::SeqCst) {\n        return false;\n    }\n    signed_in && !expired\n}\n\n#[cfg(test)]\nmod tests {\n    use super::*;\n\n    #[test]\n    fn active_session_can_access() {\n        assert!(can_access(true, false));\n    }\n\n    #[test]\n    fn maintenance_blocks_everyone() {\n        set_maintenance(true);\n        assert!(!can_access(true, false));\n    }\n\n    #[test]\n    fn signed_out_session_cannot_access() {\n        assert!(!can_access(false, false));\n    }\n}\n",
   "Cargo.toml": "[package]\nname = \"access\"\nversion = \"0.1.0\"\nedition = \"2021\"\n"
  }
 },
 "results": {
  "javascript": {
   "babel": {
    "command": "npx jest --coverage --coverageProvider=babel",
    "lines": [
     5,
     5
    ],
    "statements": [
     5,
     5
    ],
    "functions": [
     2,
     2
    ],
    "branches": [
     6,
     7
    ]
   },
   "v8": {
    "command": "npx jest --coverage --coverageProvider=v8",
    "lines": [
     14,
     17
    ],
    "statements": [
     14,
     17
    ],
    "functions": [
     2,
     3
    ],
    "branches": [
     4,
     5
    ]
   },
   "babel_with_c8_comment": {
    "command": "npx jest --coverage --coverageProvider=babel",
    "change": "the comment above debugDump reads /* c8 ignore next 3 */",
    "lines": [
     5,
     6
    ],
    "statements": [
     5,
     6
    ],
    "functions": [
     2,
     3
    ],
    "branches": [
     6,
     7
    ]
   },
   "v8_with_c8_comment": {
    "command": "npx jest --coverage --coverageProvider=v8",
    "change": "the comment above debugDump reads /* c8 ignore next 3 */",
    "lines": [
     17,
     17
    ],
    "statements": [
     17,
     17
    ],
    "functions": [
     3,
     3
    ],
    "branches": [
     4,
     5
    ]
   },
   "supercov": {
    "command": "npx supercov -- npx jest",
    "lines": [
     7,
     9
    ],
    "branches": [
     4,
     6
    ],
    "mcdc": [
     1,
     3
    ]
   },
   "exports": {
    "jest_babel_lcov": "TN:\nSF:src/access.js\nFN:1,canAccess\nFN:8,label\nFNF:2\nFNH:2\nFNDA:2,canAccess\nFNDA:1,label\nDA:2,2\nDA:3,1\nDA:5,1\nDA:9,1\nDA:17,1\nLF:5\nLH:5\nBRDA:2,0,0,1\nBRDA:2,0,1,1\nBRDA:2,1,0,2\nBRDA:2,1,1,1\nBRDA:8,2,0,1\nBRDA:9,3,0,1\nBRDA:9,3,1,0\nBRF:7\nBRH:6\nend_of_record\n",
    "jest_babel_cobertura": "<?xml version=\"1.0\" ?>\n<!DOCTYPE coverage SYSTEM \"http://cobertura.sourceforge.net/xml/coverage-04.dtd\">\n<coverage lines-valid=\"5\" lines-covered=\"5\" line-rate=\"1\" branches-valid=\"7\" branches-covered=\"6\" branch-rate=\"0.8571\" timestamp=\"0\" complexity=\"0\" version=\"0.1\">\n  <sources>\n    <source>/absolute/path/to/the/project</source>\n  </sources>\n  <packages>\n    <package name=\"main\" line-rate=\"1\" branch-rate=\"0.8571\">\n      <classes>\n        <class name=\"access.js\" filename=\"src/access.js\" line-rate=\"1\" branch-rate=\"0.8571\">\n          <methods>\n            <method name=\"canAccess\" hits=\"2\" signature=\"()V\">\n              <lines>\n                <line number=\"1\" hits=\"2\"/>\n              </lines>\n            </method>\n            <method name=\"label\" hits=\"1\" signature=\"()V\">\n              <lines>\n                <line number=\"8\" hits=\"1\"/>\n              </lines>\n            </method>\n          </methods>\n          <lines>\n            <line number=\"2\" hits=\"2\" branch=\"true\" condition-coverage=\"100% (4/4)\"/>\n            <line number=\"3\" hits=\"1\" branch=\"false\"/>\n            <line number=\"5\" hits=\"1\" branch=\"false\"/>\n            <line number=\"9\" hits=\"1\" branch=\"true\" condition-coverage=\"50% (1/2)\"/>\n            <line number=\"17\" hits=\"1\" branch=\"false\"/>\n          </lines>\n        </class>\n      </classes>\n    </package>\n  </packages>\n</coverage>\n",
    "supercov_lcov": "TN:\nSF:src/access.js\nFN:1,canAccess\nFN:8,label\nFN:13,debugDump\nFNDA:1,canAccess\nFNDA:1,label\nFNDA:0,debugDump\nFNF:3\nFNH:2\nBRDA:2,1,0,1\nBRDA:2,1,1,1\nBRDA:8,0,0,1\nBRDA:8,0,1,-\nBRDA:9,2,0,1\nBRDA:9,2,1,-\nBRF:6\nBRH:4\nDA:1,1\nDA:2,1\nDA:3,1\nDA:5,1\nDA:8,1\nDA:9,1\nDA:13,0\nDA:14,0\nDA:17,1\nLF:9\nLH:7\nend_of_record\n",
    "supercov_cobertura": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<coverage line-rate=\"0.7778\" branch-rate=\"0.6667\" lines-covered=\"7\" lines-valid=\"9\" branches-covered=\"4\" branches-valid=\"6\" complexity=\"0\" version=\"4.3.0\" timestamp=\"0\">\n  <sources>\n    <source>.</source>\n  </sources>\n  <packages>\n    <package name=\"\" line-rate=\"0.7778\" branch-rate=\"0.6667\" complexity=\"0\">\n      <classes>\n        <class name=\"src/access.js\" filename=\"src/access.js\" line-rate=\"0.7778\" branch-rate=\"0.6667\" complexity=\"0\">\n          <methods/>\n          <lines>\n            <line number=\"1\" hits=\"1\"/>\n            <line number=\"2\" hits=\"1\" branch=\"true\" condition-coverage=\"100% (2/2)\"/>\n            <line number=\"3\" hits=\"1\"/>\n            <line number=\"5\" hits=\"1\"/>\n            <line number=\"8\" hits=\"1\" branch=\"true\" condition-coverage=\"50% (1/2)\"/>\n            <line number=\"9\" hits=\"1\" branch=\"true\" condition-coverage=\"50% (1/2)\"/>\n            <line number=\"13\" hits=\"0\"/>\n            <line number=\"14\" hits=\"0\"/>\n            <line number=\"17\" hits=\"1\"/>\n          </lines>\n        </class>\n      </classes>\n    </package>\n  </packages>\n</coverage>\n",
    "note": "Jest wrote the project's absolute path into <source>; it is replaced here. Timestamps are zeroed."
   },
   "node_test": {
    "command": "node --test --experimental-test-coverage",
    "percent": {
     "lines": 82.35,
     "branches": 83.33,
     "functions": 66.67
    },
    "lines": [
     14,
     17
    ],
    "branches": [
     5,
     6
    ],
    "functions": [
     2,
     3
    ]
   },
   "vitest_v8": {
    "command": "npx vitest run --coverage",
    "lines": [
     5,
     5
    ],
    "statements": [
     5,
     5
    ],
    "functions": [
     2,
     2
    ],
    "branches": [
     6,
     7
    ]
   },
   "supercov_with_vitest": {
    "command": "npx supercov -- npx vitest run",
    "lines": [
     7,
     9
    ],
    "branches": [
     4,
     6
    ],
    "mcdc": [
     1,
     3
    ]
   }
  },
  "python": {
   "coverage_py": {
    "command": "coverage run --branch --source=src -m pytest && coverage report",
    "lines": [
     6,
     6
    ],
    "branches": [
     2,
     2
    ]
   },
   "pytest_cov": {
    "command": "pytest --cov=src --cov-branch",
    "lines": [
     6,
     6
    ],
    "branches": [
     2,
     2
    ]
   },
   "coverage_py_with_xdist": {
    "command": "coverage run --branch --source=src -m pytest -n 2 && coverage report",
    "lines": [
     0,
     6
    ],
    "warning": "CoverageWarning: No data was collected. (no-data-collected)"
   },
   "pytest_cov_with_xdist": {
    "command": "pytest -n 2 --cov=src --cov-branch",
    "lines": [
     6,
     6
    ],
    "branches": [
     2,
     2
    ]
   },
   "coverage_py_with_xdist_and_subprocess_patch": {
    "command": "coverage run -m pytest -n 2 && coverage combine && coverage report",
    "config": "[run]\nbranch = True\nsource = src\nparallel = True\npatch = subprocess\n",
    "lines": [
     6,
     6
    ],
    "branches": [
     2,
     2
    ]
   },
   "supercov": {
    "command": "npx supercov -- pytest",
    "lines": [
     6,
     6
    ],
    "branches": [
     5,
     6
    ],
    "mcdc": [
     1,
     3
    ]
   }
  },
  "go": {
   "set": {
    "command": "go test -covermode=set -coverprofile=set.out ./...",
    "statements_percent": 100.0,
    "profile": "mode: set\nexample.com/access/access.go:5.2,5.26 1 1\nexample.com/access/access.go:6.3,7.1 1 1\nexample.com/access/access.go:8.2,8.14 1 1\n"
   },
   "count": {
    "command": "go test -covermode=count -coverprofile=count.out ./...",
    "statements_percent": 100.0,
    "profile": "mode: count\nexample.com/access/access.go:5.2,5.26 1 5348\nexample.com/access/access.go:6.3,7.1 1 5346\nexample.com/access/access.go:8.2,8.14 1 1\n",
    "first_block_count_over_five_more_runs": [
     7618,
     5713,
     5334,
     5581,
     6269
    ]
   },
   "atomic": {
    "command": "go test -covermode=atomic -coverprofile=atomic.out ./...",
    "statements_percent": 100.0,
    "profile": "mode: atomic\nexample.com/access/access.go:5.2,5.26 1 8002\nexample.com/access/access.go:6.3,7.1 1 8001\nexample.com/access/access.go:8.2,8.14 1 1\n"
   },
   "expected_first_block_count": 8002,
   "race_default_mode": "mode: atomic",
   "race_with_set": {
    "exit": 1,
    "output": "-covermode must be \"atomic\", not \"set\", when -race is enabled"
   },
   "race_with_count": {
    "exit": 1,
    "output": "-covermode must be \"atomic\", not \"count\", when -race is enabled"
   },
   "supercov": {
    "command": "npx supercov -- go test ./...",
    "lines": [
     4,
     4
    ],
    "branches": [
     4,
     4
    ],
    "mcdc": [
     1,
     2
    ]
   }
  },
  "java": {
   "jacoco": {
    "command": "mvn test (jacoco-maven-plugin prepare-agent and report)",
    "instructions": [
     8,
     8
    ],
    "branches": [
     3,
     4
    ],
    "lines": [
     3,
     3
    ],
    "line_7": "<line nr=\"7\" mi=\"0\" ci=\"4\" mb=\"1\" cb=\"3\"/>"
   },
   "sonarqube_formula": {
    "note": "Computed from the JaCoCo XML with SonarQube's documented coverage formula; SonarQube itself was not run.",
    "formula": "(covered conditions + covered lines) / (conditions + lines to cover)",
    "value": [
     6,
     7
    ]
   },
   "cobertura": {
    "command": "mvn cobertura:cobertura",
    "exit": 1,
    "error": "[ERROR] \tCould not find artifact com.sun:tools:jar:0 at specified path <path>"
   },
   "supercov": {
    "command": "npx supercov -- mvn test",
    "lines": [
     3,
     3
    ],
    "branches": [
     4,
     4
    ],
    "mcdc": [
     1,
     2
    ]
   }
  },
  "rust": {
   "cargo_test": {
    "command": "cargo test",
    "unit_tests": 3,
    "doctests": 1,
    "repeat": {
     "command": "cargo test --lib",
     "runs": 100,
     "failed": 12
    }
   },
   "nextest": {
    "command": "cargo nextest run",
    "tests": 3,
    "doctests": 0,
    "repeat": {
     "command": "cargo nextest run",
     "runs": 100,
     "failed": 0
    }
   },
   "supercov_with_cargo_test": {
    "command": "npx supercov -- cargo test",
    "tests": 4,
    "lines": [
     6,
     6
    ],
    "branches": [
     4,
     4
    ],
    "mcdc": [
     1,
     1
    ]
   },
   "supercov_with_nextest": {
    "command": "npx supercov -- cargo nextest run",
    "tests": 3,
    "lines": [
     6,
     6
    ],
    "branches": [
     4,
     4
    ],
    "mcdc": [
     1,
     1
    ]
   }
  }
 }
}
