Update packages, cleanup (#8)

This commit is contained in:
Aart Jan Kaptijn 2025-03-20 13:22:04 +01:00 committed by GitHub
parent 0443893a99
commit 5aea6ccd17
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
65 changed files with 7991 additions and 97405 deletions

View file

@ -1,28 +0,0 @@
![Tests failed](https://img.shields.io/badge/tests-1%20passed%2C%204%20failed%2C%201%20skipped-critical)
## ❌ <a id="user-content-r0" href="#r0">fixtures/dart-json.json</a>
**6** tests were completed in **4s** with **1** passed, **4** failed and **1** skipped.
|Test suite|Passed|Failed|Skipped|Time|
|:---|---:|---:|---:|---:|
|[test/main_test.dart](#r0s0)|1✅|3❌||74ms|
|[test/second_test.dart](#r0s1)||1❌|1⚪|51ms|
### ❌ <a id="user-content-r0s0" href="#r0s0">test/main_test.dart</a>
```
Test 1
✅ Passing test
Test 1 Test 1.1
❌ Failing test
Expected: <2>
Actual: <1>
❌ Exception in target unit
Exception: Some error
Test 2
❌ Exception in test
Exception: Some error
```
### ❌ <a id="user-content-r0s1" href="#r0s1">test/second_test.dart</a>
```
❌ Timeout test
TimeoutException after 0:00:00.000001: Test timed out after 0 seconds.
⚪ Skipped test
```

View file

@ -1,13 +0,0 @@
![Tests failed](https://img.shields.io/badge/tests-2%20passed%2C%201%20failed-critical)
## ❌ <a id="user-content-r0" href="#r0">fixtures/swift-xunit.xml</a>
**3** tests were completed in **220ms** with **2** passed, **1** failed and **0** skipped.
|Test suite|Passed|Failed|Skipped|Time|
|:---|---:|---:|---:|---:|
|[TestResults](#r0s0)|2✅|1❌||220ms|
### ❌ <a id="user-content-r0s0" href="#r0s0">TestResults</a>
```
AcmeLibTests.AcmeLibTests
✅ test_always_pass
✅ test_always_skip
❌ test_always_fail
```

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,44 +0,0 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`swift-xunit tests report from swift test results matches snapshot 1`] = `
TestRunResult {
"path": "fixtures/swift-xunit.xml",
"suites": [
TestSuiteResult {
"groups": [
TestGroupResult {
"name": "AcmeLibTests.AcmeLibTests",
"tests": [
TestCaseResult {
"error": undefined,
"name": "test_always_pass",
"result": "success",
"time": 36.386333,
},
TestCaseResult {
"error": undefined,
"name": "test_always_skip",
"result": "success",
"time": 92.039167,
},
TestCaseResult {
"error": {
"details": undefined,
"line": undefined,
"message": undefined,
"path": undefined,
},
"name": "test_always_fail",
"result": "failed",
"time": 92.05175,
},
],
},
],
"name": "TestResults",
"totalTime": 220.47725000000003,
},
],
"totalTime": undefined,
}
`;

View file

@ -1,69 +0,0 @@
import * as fs from 'fs'
import * as path from 'path'
import {DartJsonParser} from '../src/parsers/dart-json/dart-json-parser'
import {ParseOptions} from '../src/test-parser'
import {getReport} from '../src/report/get-report'
import {normalizeFilePath} from '../src/utils/path-utils'
describe('dart-json tests', () => {
it('produces empty test run result when there are no test cases', async () => {
const fixturePath = path.join(__dirname, 'fixtures', 'empty', 'dart-json.json')
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
const opts: ParseOptions = {
parseErrors: true,
trackedFiles: []
}
const parser = new DartJsonParser(opts, 'dart')
const result = await parser.parse(filePath, fileContent)
expect(result.tests).toBe(0)
expect(result.result).toBe('success')
})
it('matches report snapshot', async () => {
const opts: ParseOptions = {
parseErrors: true,
trackedFiles: ['lib/main.dart', 'test/main_test.dart', 'test/second_test.dart']
//workDir: 'C:/Users/Michal/Workspace/dorny/test-check/reports/dart/'
}
const fixturePath = path.join(__dirname, 'fixtures', 'dart-json.json')
const outputPath = path.join(__dirname, '__outputs__', 'dart-json.md')
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
const parser = new DartJsonParser(opts, 'dart')
const result = await parser.parse(filePath, fileContent)
expect(result).toMatchSnapshot()
const report = getReport([result])
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
fs.writeFileSync(outputPath, report)
})
it('report from rrousselGit/provider test results matches snapshot', async () => {
const fixturePath = path.join(__dirname, 'fixtures', 'external', 'flutter', 'provider-test-results.json')
const trackedFilesPath = path.join(__dirname, 'fixtures', 'external', 'flutter', 'files.txt')
const outputPath = path.join(__dirname, '__outputs__', 'provider-test-results.md')
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
const trackedFiles = fs.readFileSync(trackedFilesPath, {encoding: 'utf8'}).split(/\n\r?/g)
const opts: ParseOptions = {
trackedFiles,
parseErrors: true
//workDir: '/__w/provider/provider/'
}
const parser = new DartJsonParser(opts, 'flutter')
const result = await parser.parse(filePath, fileContent)
expect(result).toMatchSnapshot()
const report = getReport([result])
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
fs.writeFileSync(outputPath, report)
})
})

View file

@ -1,32 +0,0 @@
{"protocolVersion":"0.1.1","runnerVersion":"1.15.4","pid":7504,"type":"start","time":0}
{"suite":{"id":0,"platform":"vm","path":"test\\main_test.dart"},"type":"suite","time":0}
{"test":{"id":1,"name":"loading test\\main_test.dart","suiteID":0,"groupIDs":[],"metadata":{"skip":false,"skipReason":null},"line":null,"column":null,"url":null},"type":"testStart","time":1}
{"suite":{"id":2,"platform":"vm","path":"test\\second_test.dart"},"type":"suite","time":11}
{"test":{"id":3,"name":"loading test\\second_test.dart","suiteID":2,"groupIDs":[],"metadata":{"skip":false,"skipReason":null},"line":null,"column":null,"url":null},"type":"testStart","time":11}
{"count":2,"type":"allSuites","time":11}
{"testID":1,"messageType":"print","message":"Hello from the test","type":"print","time":3828}
{"testID":3,"result":"success","skipped":false,"hidden":true,"type":"testDone","time":3649}
{"group":{"id":4,"suiteID":2,"parentID":null,"name":null,"metadata":{"skip":false,"skipReason":null},"testCount":2,"line":null,"column":null,"url":null},"type":"group","time":3654}
{"test":{"id":5,"name":"Timeout test","suiteID":2,"groupIDs":[4],"metadata":{"skip":false,"skipReason":null},"line":5,"column":3,"url":"file:///C:/Users/Michal/Workspace/dorny/test-check/reports/dart/test/second_test.dart"},"type":"testStart","time":3655}
{"testID":1,"result":"success","skipped":false,"hidden":true,"type":"testDone","time":3672}
{"group":{"id":6,"suiteID":0,"parentID":null,"name":null,"metadata":{"skip":false,"skipReason":null},"testCount":4,"line":null,"column":null,"url":null},"type":"group","time":3672}
{"group":{"id":7,"suiteID":0,"parentID":6,"name":"Test 1","metadata":{"skip":false,"skipReason":null},"testCount":3,"line":6,"column":3,"url":"file:///C:/Users/Michal/Workspace/dorny/test-check/reports/dart/test/main_test.dart"},"type":"group","time":3672}
{"test":{"id":8,"name":"Test 1 Passing test","suiteID":0,"groupIDs":[6,7],"metadata":{"skip":false,"skipReason":null},"line":7,"column":5,"url":"file:///C:/Users/Michal/Workspace/dorny/test-check/reports/dart/test/main_test.dart"},"type":"testStart","time":3672}
{"testID":5,"error":"TimeoutException after 0:00:00.000001: Test timed out after 0 seconds.","stackTrace":"dart:isolate _RawReceivePortImpl._handleMessage\n","isFailure":false,"type":"error","time":3692}
{"testID":5,"result":"error","skipped":false,"hidden":false,"type":"testDone","time":3692}
{"test":{"id":9,"name":"Skipped test","suiteID":2,"groupIDs":[4],"metadata":{"skip":true,"skipReason":"skipped test"},"line":9,"column":3,"url":"file:///C:/Users/Michal/Workspace/dorny/test-check/reports/dart/test/second_test.dart"},"type":"testStart","time":3693}
{"testID":9,"messageType":"skip","message":"Skip: skipped test","type":"print","time":3706}
{"testID":9,"result":"success","skipped":true,"hidden":false,"type":"testDone","time":3707}
{"testID":8,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":3708}
{"group":{"id":10,"suiteID":0,"parentID":7,"name":"Test 1 Test 1.1","metadata":{"skip":false,"skipReason":null},"testCount":2,"line":11,"column":5,"url":"file:///C:/Users/Michal/Workspace/dorny/test-check/reports/dart/test/main_test.dart"},"type":"group","time":3715}
{"test":{"id":11,"name":"Test 1 Test 1.1 Failing test","suiteID":0,"groupIDs":[6,7,10],"metadata":{"skip":false,"skipReason":null},"line":12,"column":7,"url":"file:///C:/Users/Michal/Workspace/dorny/test-check/reports/dart/test/main_test.dart"},"type":"testStart","time":3716}
{"testID":11,"error":"Expected: <2>\n Actual: <1>\n","stackTrace":"package:test_api expect\ntest\\main_test.dart 13:9 main.<fn>.<fn>.<fn>\n","isFailure":true,"type":"error","time":3736}
{"testID":11,"result":"failure","skipped":false,"hidden":false,"type":"testDone","time":3736}
{"test":{"id":12,"name":"Test 1 Test 1.1 Exception in target unit","suiteID":0,"groupIDs":[6,7,10],"metadata":{"skip":false,"skipReason":null},"line":16,"column":7,"url":"file:///C:/Users/Michal/Workspace/dorny/test-check/reports/dart/test/main_test.dart"},"type":"testStart","time":3737}
{"testID":12,"error":"Exception: Some error","stackTrace":"package:darttest/main.dart 2:3 throwError\ntest\\main_test.dart 17:9 main.<fn>.<fn>.<fn>\n","isFailure":false,"type":"error","time":3743}
{"testID":12,"result":"error","skipped":false,"hidden":false,"type":"testDone","time":3743}
{"group":{"id":13,"suiteID":0,"parentID":6,"name":"Test 2","metadata":{"skip":false,"skipReason":null},"testCount":1,"line":22,"column":3,"url":"file:///C:/Users/Michal/Workspace/dorny/test-check/reports/dart/test/main_test.dart"},"type":"group","time":3744}
{"test":{"id":14,"name":"Test 2 Exception in test","suiteID":0,"groupIDs":[6,13],"metadata":{"skip":false,"skipReason":null},"line":23,"column":5,"url":"file:///C:/Users/Michal/Workspace/dorny/test-check/reports/dart/test/main_test.dart"},"type":"testStart","time":3744}
{"testID":14,"error":"Exception: Some error","stackTrace":"test\\main_test.dart 24:7 main.<fn>.<fn>\n","isFailure":false,"type":"error","time":3756}
{"testID":14,"result":"error","skipped":false,"hidden":false,"type":"testDone","time":3756}
{"success":false,"type":"done","time":3760}

View file

@ -1,9 +0,0 @@
{"protocolVersion":"0.1.1","runnerVersion":"1.15.4","pid":21320,"type":"start","time":0}
{"suite":{"id":0,"platform":"vm","path":"test\\main_test.dart"},"type":"suite","time":0}
{"test":{"id":1,"name":"loading test\\main_test.dart","suiteID":0,"groupIDs":[],"metadata":{"skip":false,"skipReason":null},"line":null,"column":null,"url":null},"type":"testStart","time":1}
{"suite":{"id":2,"platform":"vm","path":"test\\second_test.dart"},"type":"suite","time":11}
{"test":{"id":3,"name":"loading test\\second_test.dart","suiteID":2,"groupIDs":[],"metadata":{"skip":false,"skipReason":null},"line":null,"column":null,"url":null},"type":"testStart","time":11}
{"count":2,"type":"allSuites","time":11}
{"testID":1,"result":"success","skipped":false,"hidden":true,"type":"testDone","time":4018}
{"testID":3,"result":"success","skipped":false,"hidden":true,"type":"testDone","time":4025}
{"success":true,"type":"done","time":4029}

View file

@ -1,3 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<testsuite skipped="0" hostname="fv-az96-723" name="org.apache.pulsar.AddMissingPatchVersionTest" tests="0" failures="0" timestamp="2021-03-07T10:36:56 UTC" time="0.116" errors="0">
</testsuite>

View file

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<testsuites name="jest tests" tests="0" failures="0" errors="0" time="11.299">
<testsuite name="__tests__\main.test.js" errors="0" failures="0" skipped="0" timestamp="2020-10-27T21:39:41" time="0.486" tests="0">
</testsuite>
</testsuites>

View file

@ -1,3 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<testsuites name="jest tests" tests="0" failures="0" errors="0" time="11.299">
</testsuites>

View file

@ -1,16 +0,0 @@
{
"stats": {
"suites": 0,
"tests": 0,
"passes": 0,
"pending": 0,
"failures": 0,
"start": "2021-03-08T20:01:44.391Z",
"end": "2021-03-08T20:01:44.391Z",
"duration": 0
},
"tests": [],
"pending": [],
"failures": [],
"passes": []
}

View file

@ -1,57 +0,0 @@
.github/ISSUE_TEMPLATE/bug_report.md
.github/ISSUE_TEMPLATE/config.yml
.github/ISSUE_TEMPLATE/feature_request.md
.github/workflows/build.yml
.gitignore
CHANGELOG.md
LICENSE
README.md
all_lint_rules.yaml
analysis_options.yaml
dart_test.yaml
example/.gitignore
example/.metadata
example/lib/main.dart
example/pubspec.yaml
example/test/widget_test.dart
example/test_driver/app.dart
example/test_driver/app_test.dart
lib/provider.dart
lib/single_child_widget.dart
lib/src/async_provider.dart
lib/src/change_notifier_provider.dart
lib/src/consumer.dart
lib/src/deferred_inherited_provider.dart
lib/src/inherited_provider.dart
lib/src/listenable_provider.dart
lib/src/provider.dart
lib/src/proxy_provider.dart
lib/src/reassemble_handler.dart
lib/src/selector.dart
lib/src/value_listenable_provider.dart
pubspec.yaml
resources/devtools_providers.jpg
resources/expanded_devtools.jpg
resources/flutter_favorite.png
resources/translations/es_MX/README.md
resources/translations/pt_br/README.md
resources/translations/zh-CN/README.md
scripts/flutter_test.sh
test/builder_test.dart
test/change_notifier_provider_test.dart
test/common.dart
test/consumer_test.dart
test/context_test.dart
test/dart_test.yaml
test/future_provider_test.dart
test/inherited_provider_test.dart
test/listenable_provider_test.dart
test/listenable_proxy_provider_test.dart
test/multi_provider_test.dart
test/provider_test.dart
test/proxy_provider_test.dart
test/reassemble_test.dart
test/selector_test.dart
test/stateful_provider_test.dart
test/stream_provider_test.dart
test/value_listenable_provider_test.dart

View file

@ -1,637 +0,0 @@
{"protocolVersion":"0.1.1","runnerVersion":null,"pid":515,"type":"start","time":0}
{"suite":{"id":0,"platform":"vm","path":"/__w/provider/provider/test/value_listenable_provider_test.dart"},"type":"suite","time":0}
{"test":{"id":1,"name":"loading /__w/provider/provider/test/value_listenable_provider_test.dart","suiteID":0,"groupIDs":[],"metadata":{"skip":false,"skipReason":null},"line":null,"column":null,"url":null},"type":"testStart","time":2}
{"count":16,"type":"allSuites","time":14}
{"testID":1,"result":"success","skipped":false,"hidden":true,"type":"testDone","time":8608}
{"group":{"id":2,"suiteID":0,"parentID":null,"name":"","metadata":{"skip":false,"skipReason":null},"testCount":5,"line":null,"column":null,"url":null},"type":"group","time":8617}
{"group":{"id":3,"suiteID":0,"parentID":2,"name":"valueListenableProvider","metadata":{"skip":false,"skipReason":null},"testCount":5,"line":12,"column":3,"url":"file:///__w/provider/provider/test/value_listenable_provider_test.dart"},"type":"group","time":8619}
{"test":{"id":4,"name":"valueListenableProvider rebuilds when value change","suiteID":0,"groupIDs":[2,3],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":13,"root_column":5,"root_url":"file:///__w/provider/provider/test/value_listenable_provider_test.dart"},"type":"testStart","time":8619}
{"testID":4,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":8819}
{"test":{"id":5,"name":"valueListenableProvider don't rebuild dependents by default","suiteID":0,"groupIDs":[2,3],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":33,"root_column":5,"root_url":"file:///__w/provider/provider/test/value_listenable_provider_test.dart"},"type":"testStart","time":8821}
{"testID":5,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":8847}
{"test":{"id":6,"name":"valueListenableProvider pass keys","suiteID":0,"groupIDs":[2,3],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":61,"root_column":5,"root_url":"file:///__w/provider/provider/test/value_listenable_provider_test.dart"},"type":"testStart","time":8848}
{"testID":6,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":8858}
{"test":{"id":7,"name":"valueListenableProvider don't listen again if stream instance doesn't change","suiteID":0,"groupIDs":[2,3],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":74,"root_column":5,"root_url":"file:///__w/provider/provider/test/value_listenable_provider_test.dart"},"type":"testStart","time":8859}
{"testID":7,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":8881}
{"test":{"id":8,"name":"valueListenableProvider pass updateShouldNotify","suiteID":0,"groupIDs":[2,3],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":94,"root_column":5,"root_url":"file:///__w/provider/provider/test/value_listenable_provider_test.dart"},"type":"testStart","time":8882}
{"testID":8,"messageType":"print","message":"══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞════════════════════════════════════════════════════\nThe following TestFailure object was thrown running a test:\n Expected: <2>\n Actual: <1>\nUnexpected number of calls\n\nWhen the exception was thrown, this was the stack:\n#0 fail (package:test_api/src/frontend/expect.dart:155:31)\n#1 _expect (package:test_api/src/frontend/expect.dart:150:3)\n#2 expect (package:test_api/src/frontend/expect.dart:59:3)\n#3 VerificationResult.called (package:mockito/src/mock.dart:853:5)\n#4 main.<anonymous closure>.<anonymous closure> (file:///__w/provider/provider/test/value_listenable_provider_test.dart:112:34)\n<asynchronous suspension>\n<asynchronous suspension>\n(elided one frame from package:stack_trace)\n\nThe test description was:\n pass updateShouldNotify\n════════════════════════════════════════════════════════════════════════════════════════════════════","type":"print","time":8941}
{"testID":8,"error":"Test failed. See exception logs above.\nThe test description was: pass updateShouldNotify","stackTrace":"","isFailure":false,"type":"error","time":8951}
{"testID":8,"result":"error","skipped":false,"hidden":false,"type":"testDone","time":8951}
{"suite":{"id":9,"platform":"vm","path":"/__w/provider/provider/test/listenable_provider_test.dart"},"type":"suite","time":10134}
{"test":{"id":10,"name":"loading /__w/provider/provider/test/listenable_provider_test.dart","suiteID":9,"groupIDs":[],"metadata":{"skip":false,"skipReason":null},"line":null,"column":null,"url":null},"type":"testStart","time":10134}
{"testID":10,"result":"success","skipped":false,"hidden":true,"type":"testDone","time":11056}
{"group":{"id":11,"suiteID":9,"parentID":null,"name":"","metadata":{"skip":false,"skipReason":null},"testCount":16,"line":null,"column":null,"url":null},"type":"group","time":11058}
{"group":{"id":12,"suiteID":9,"parentID":11,"name":"ListenableProvider","metadata":{"skip":false,"skipReason":null},"testCount":16,"line":12,"column":3,"url":"file:///__w/provider/provider/test/listenable_provider_test.dart"},"type":"group","time":11058}
{"test":{"id":13,"name":"ListenableProvider works with MultiProvider","suiteID":9,"groupIDs":[11,12],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":13,"root_column":5,"root_url":"file:///__w/provider/provider/test/listenable_provider_test.dart"},"type":"testStart","time":11058}
{"testID":13,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":11231}
{"test":{"id":14,"name":"ListenableProvider asserts that the created notifier can have listeners","suiteID":9,"groupIDs":[11,12],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":29,"root_column":5,"root_url":"file:///__w/provider/provider/test/listenable_provider_test.dart"},"type":"testStart","time":11232}
{"testID":14,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":11244}
{"group":{"id":15,"suiteID":9,"parentID":12,"name":"ListenableProvider value constructor","metadata":{"skip":true,"skipReason":null},"testCount":2,"line":49,"column":5,"url":"file:///__w/provider/provider/test/listenable_provider_test.dart"},"type":"group","time":11245}
{"test":{"id":16,"name":"ListenableProvider value constructor pass down key","suiteID":9,"groupIDs":[11,12,15],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":50,"root_column":7,"root_url":"file:///__w/provider/provider/test/listenable_provider_test.dart"},"type":"testStart","time":11245}
{"testID":16,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":11262}
{"test":{"id":17,"name":"ListenableProvider value constructor changing the Listenable instance rebuilds dependents","suiteID":9,"groupIDs":[11,12,15],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":66,"root_column":7,"root_url":"file:///__w/provider/provider/test/listenable_provider_test.dart"},"type":"testStart","time":11263}
{"testID":17,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":11292}
{"test":{"id":18,"name":"ListenableProvider don't listen again if listenable instance doesn't change","suiteID":9,"groupIDs":[11,12],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":102,"root_column":5,"root_url":"file:///__w/provider/provider/test/listenable_provider_test.dart"},"type":"testStart","time":11293}
{"testID":18,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":11305}
{"test":{"id":19,"name":"ListenableProvider works with null (default)","suiteID":9,"groupIDs":[11,12],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":121,"root_column":5,"root_url":"file:///__w/provider/provider/test/listenable_provider_test.dart"},"type":"testStart","time":11305}
{"testID":19,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":11312}
{"test":{"id":20,"name":"ListenableProvider works with null (create)","suiteID":9,"groupIDs":[11,12],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":133,"root_column":5,"root_url":"file:///__w/provider/provider/test/listenable_provider_test.dart"},"type":"testStart","time":11312}
{"testID":20,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":11319}
{"group":{"id":21,"suiteID":9,"parentID":12,"name":"ListenableProvider stateful constructor","metadata":{"skip":false,"skipReason":null},"testCount":3,"line":145,"column":5,"url":"file:///__w/provider/provider/test/listenable_provider_test.dart"},"type":"group","time":11319}
{"test":{"id":22,"name":"ListenableProvider stateful constructor called with context","suiteID":9,"groupIDs":[11,12,21],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":146,"root_column":7,"root_url":"file:///__w/provider/provider/test/listenable_provider_test.dart"},"type":"testStart","time":11319}
{"testID":22,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":11327}
{"test":{"id":23,"name":"ListenableProvider stateful constructor throws if create is null","suiteID":9,"groupIDs":[11,12,21],"metadata":{"skip":false,"skipReason":null},"line":157,"column":7,"url":"file:///__w/provider/provider/test/listenable_provider_test.dart"},"type":"testStart","time":11328}
{"testID":23,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":11332}
{"test":{"id":24,"name":"ListenableProvider stateful constructor pass down key","suiteID":9,"groupIDs":[11,12,21],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":163,"root_column":7,"root_url":"file:///__w/provider/provider/test/listenable_provider_test.dart"},"type":"testStart","time":11332}
{"testID":24,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":11352}
{"test":{"id":25,"name":"ListenableProvider stateful create called once","suiteID":9,"groupIDs":[11,12],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":179,"root_column":5,"root_url":"file:///__w/provider/provider/test/listenable_provider_test.dart"},"type":"testStart","time":11353}
{"testID":25,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":11364}
{"test":{"id":26,"name":"ListenableProvider dispose called on unmount","suiteID":9,"groupIDs":[11,12],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":206,"root_column":5,"root_url":"file:///__w/provider/provider/test/listenable_provider_test.dart"},"type":"testStart","time":11364}
{"testID":26,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":11377}
{"test":{"id":27,"name":"ListenableProvider dispose can be null","suiteID":9,"groupIDs":[11,12],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":238,"root_column":5,"root_url":"file:///__w/provider/provider/test/listenable_provider_test.dart"},"type":"testStart","time":11378}
{"testID":27,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":11386}
{"test":{"id":28,"name":"ListenableProvider changing listenable rebuilds descendants","suiteID":9,"groupIDs":[11,12],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":249,"root_column":5,"root_url":"file:///__w/provider/provider/test/listenable_provider_test.dart"},"type":"testStart","time":11387}
{"testID":28,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":11399}
{"test":{"id":29,"name":"ListenableProvider rebuilding with the same provider don't rebuilds descendants","suiteID":9,"groupIDs":[11,12],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":284,"root_column":5,"root_url":"file:///__w/provider/provider/test/listenable_provider_test.dart"},"type":"testStart","time":11400}
{"testID":29,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":11411}
{"test":{"id":30,"name":"ListenableProvider notifylistener rebuilds descendants","suiteID":9,"groupIDs":[11,12],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":341,"root_column":5,"root_url":"file:///__w/provider/provider/test/listenable_provider_test.dart"},"type":"testStart","time":11412}
{"testID":30,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":11421}
{"suite":{"id":31,"platform":"vm","path":"/__w/provider/provider/test/consumer_test.dart"},"type":"suite","time":12439}
{"test":{"id":32,"name":"loading /__w/provider/provider/test/consumer_test.dart","suiteID":31,"groupIDs":[],"metadata":{"skip":false,"skipReason":null},"line":null,"column":null,"url":null},"type":"testStart","time":12440}
{"testID":32,"result":"success","skipped":false,"hidden":true,"type":"testDone","time":13148}
{"group":{"id":33,"suiteID":31,"parentID":null,"name":"","metadata":{"skip":false,"skipReason":null},"testCount":18,"line":null,"column":null,"url":null},"type":"group","time":13149}
{"group":{"id":34,"suiteID":31,"parentID":33,"name":"consumer","metadata":{"skip":false,"skipReason":null},"testCount":3,"line":72,"column":3,"url":"file:///__w/provider/provider/test/consumer_test.dart"},"type":"group","time":13149}
{"test":{"id":35,"name":"consumer obtains value from Provider<T>","suiteID":31,"groupIDs":[33,34],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":73,"root_column":5,"root_url":"file:///__w/provider/provider/test/consumer_test.dart"},"type":"testStart","time":13149}
{"testID":35,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":13330}
{"test":{"id":36,"name":"consumer crashed with no builder","suiteID":31,"groupIDs":[33,34],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":92,"root_column":5,"root_url":"file:///__w/provider/provider/test/consumer_test.dart"},"type":"testStart","time":13330}
{"testID":36,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":13341}
{"test":{"id":37,"name":"consumer can be used inside MultiProvider","suiteID":31,"groupIDs":[33,34],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":98,"root_column":5,"root_url":"file:///__w/provider/provider/test/consumer_test.dart"},"type":"testStart","time":13341}
{"testID":37,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":13357}
{"group":{"id":38,"suiteID":31,"parentID":33,"name":"consumer2","metadata":{"skip":false,"skipReason":null},"testCount":3,"line":120,"column":3,"url":"file:///__w/provider/provider/test/consumer_test.dart"},"type":"group","time":13357}
{"test":{"id":39,"name":"consumer2 obtains value from Provider<T>","suiteID":31,"groupIDs":[33,38],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":121,"root_column":5,"root_url":"file:///__w/provider/provider/test/consumer_test.dart"},"type":"testStart","time":13357}
{"testID":39,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":13379}
{"test":{"id":40,"name":"consumer2 crashed with no builder","suiteID":31,"groupIDs":[33,38],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":139,"root_column":5,"root_url":"file:///__w/provider/provider/test/consumer_test.dart"},"type":"testStart","time":13380}
{"testID":40,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":13388}
{"test":{"id":41,"name":"consumer2 can be used inside MultiProvider","suiteID":31,"groupIDs":[33,38],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":146,"root_column":5,"root_url":"file:///__w/provider/provider/test/consumer_test.dart"},"type":"testStart","time":13388}
{"testID":41,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":13397}
{"group":{"id":42,"suiteID":31,"parentID":33,"name":"consumer3","metadata":{"skip":false,"skipReason":null},"testCount":3,"line":167,"column":3,"url":"file:///__w/provider/provider/test/consumer_test.dart"},"type":"group","time":13398}
{"test":{"id":43,"name":"consumer3 obtains value from Provider<T>","suiteID":31,"groupIDs":[33,42],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":168,"root_column":5,"root_url":"file:///__w/provider/provider/test/consumer_test.dart"},"type":"testStart","time":13398}
{"testID":43,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":13407}
{"test":{"id":44,"name":"consumer3 crashed with no builder","suiteID":31,"groupIDs":[33,42],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":186,"root_column":5,"root_url":"file:///__w/provider/provider/test/consumer_test.dart"},"type":"testStart","time":13407}
{"testID":44,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":13414}
{"test":{"id":45,"name":"consumer3 can be used inside MultiProvider","suiteID":31,"groupIDs":[33,42],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":193,"root_column":5,"root_url":"file:///__w/provider/provider/test/consumer_test.dart"},"type":"testStart","time":13414}
{"testID":45,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":13422}
{"group":{"id":46,"suiteID":31,"parentID":33,"name":"consumer4","metadata":{"skip":false,"skipReason":null},"testCount":3,"line":214,"column":3,"url":"file:///__w/provider/provider/test/consumer_test.dart"},"type":"group","time":13423}
{"test":{"id":47,"name":"consumer4 obtains value from Provider<T>","suiteID":31,"groupIDs":[33,46],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":215,"root_column":5,"root_url":"file:///__w/provider/provider/test/consumer_test.dart"},"type":"testStart","time":13423}
{"testID":47,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":13431}
{"test":{"id":48,"name":"consumer4 crashed with no builder","suiteID":31,"groupIDs":[33,46],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":233,"root_column":5,"root_url":"file:///__w/provider/provider/test/consumer_test.dart"},"type":"testStart","time":13431}
{"testID":48,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":13437}
{"test":{"id":49,"name":"consumer4 can be used inside MultiProvider","suiteID":31,"groupIDs":[33,46],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":240,"root_column":5,"root_url":"file:///__w/provider/provider/test/consumer_test.dart"},"type":"testStart","time":13438}
{"testID":49,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":13446}
{"group":{"id":50,"suiteID":31,"parentID":33,"name":"consumer5","metadata":{"skip":false,"skipReason":null},"testCount":3,"line":261,"column":3,"url":"file:///__w/provider/provider/test/consumer_test.dart"},"type":"group","time":13447}
{"test":{"id":51,"name":"consumer5 obtains value from Provider<T>","suiteID":31,"groupIDs":[33,50],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":262,"root_column":5,"root_url":"file:///__w/provider/provider/test/consumer_test.dart"},"type":"testStart","time":13447}
{"testID":51,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":13455}
{"test":{"id":52,"name":"consumer5 crashed with no builder","suiteID":31,"groupIDs":[33,50],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":280,"root_column":5,"root_url":"file:///__w/provider/provider/test/consumer_test.dart"},"type":"testStart","time":13456}
{"testID":52,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":13462}
{"test":{"id":53,"name":"consumer5 can be used inside MultiProvider","suiteID":31,"groupIDs":[33,50],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":287,"root_column":5,"root_url":"file:///__w/provider/provider/test/consumer_test.dart"},"type":"testStart","time":13463}
{"testID":53,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":13472}
{"group":{"id":54,"suiteID":31,"parentID":33,"name":"consumer6","metadata":{"skip":false,"skipReason":null},"testCount":3,"line":308,"column":3,"url":"file:///__w/provider/provider/test/consumer_test.dart"},"type":"group","time":13473}
{"test":{"id":55,"name":"consumer6 obtains value from Provider<T>","suiteID":31,"groupIDs":[33,54],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":309,"root_column":5,"root_url":"file:///__w/provider/provider/test/consumer_test.dart"},"type":"testStart","time":13473}
{"testID":55,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":13481}
{"test":{"id":56,"name":"consumer6 crashed with no builder","suiteID":31,"groupIDs":[33,54],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":327,"root_column":5,"root_url":"file:///__w/provider/provider/test/consumer_test.dart"},"type":"testStart","time":13481}
{"testID":56,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":13489}
{"test":{"id":57,"name":"consumer6 can be used inside MultiProvider","suiteID":31,"groupIDs":[33,54],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":334,"root_column":5,"root_url":"file:///__w/provider/provider/test/consumer_test.dart"},"type":"testStart","time":13489}
{"testID":57,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":13497}
{"suite":{"id":58,"platform":"vm","path":"/__w/provider/provider/test/change_notifier_provider_test.dart"},"type":"suite","time":14520}
{"test":{"id":59,"name":"loading /__w/provider/provider/test/change_notifier_provider_test.dart","suiteID":58,"groupIDs":[],"metadata":{"skip":false,"skipReason":null},"line":null,"column":null,"url":null},"type":"testStart","time":14520}
{"testID":59,"result":"success","skipped":false,"hidden":true,"type":"testDone","time":15132}
{"group":{"id":60,"suiteID":58,"parentID":null,"name":"","metadata":{"skip":false,"skipReason":null},"testCount":10,"line":null,"column":null,"url":null},"type":"group","time":15132}
{"group":{"id":61,"suiteID":58,"parentID":60,"name":"ChangeNotifierProvider","metadata":{"skip":false,"skipReason":null},"testCount":9,"line":8,"column":3,"url":"file:///__w/provider/provider/test/change_notifier_provider_test.dart"},"type":"group","time":15133}
{"test":{"id":62,"name":"ChangeNotifierProvider value","suiteID":58,"groupIDs":[60,61],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":9,"root_column":5,"root_url":"file:///__w/provider/provider/test/change_notifier_provider_test.dart"},"type":"testStart","time":15133}
{"testID":62,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":15318}
{"test":{"id":63,"name":"ChangeNotifierProvider builder","suiteID":58,"groupIDs":[60,61],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":41,"root_column":5,"root_url":"file:///__w/provider/provider/test/change_notifier_provider_test.dart"},"type":"testStart","time":15318}
{"testID":63,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":15336}
{"test":{"id":64,"name":"ChangeNotifierProvider builder1","suiteID":58,"groupIDs":[60,61],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":71,"root_column":5,"root_url":"file:///__w/provider/provider/test/change_notifier_provider_test.dart"},"type":"testStart","time":15337}
{"testID":64,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":15349}
{"test":{"id":65,"name":"ChangeNotifierProvider builder2","suiteID":58,"groupIDs":[60,61],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":105,"root_column":5,"root_url":"file:///__w/provider/provider/test/change_notifier_provider_test.dart"},"type":"testStart","time":15350}
{"testID":65,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":15362}
{"test":{"id":66,"name":"ChangeNotifierProvider builder3","suiteID":58,"groupIDs":[60,61],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":140,"root_column":5,"root_url":"file:///__w/provider/provider/test/change_notifier_provider_test.dart"},"type":"testStart","time":15362}
{"testID":66,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":15381}
{"test":{"id":67,"name":"ChangeNotifierProvider builder4","suiteID":58,"groupIDs":[60,61],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":176,"root_column":5,"root_url":"file:///__w/provider/provider/test/change_notifier_provider_test.dart"},"type":"testStart","time":15382}
{"testID":67,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":15396}
{"test":{"id":68,"name":"ChangeNotifierProvider builder5","suiteID":58,"groupIDs":[60,61],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":213,"root_column":5,"root_url":"file:///__w/provider/provider/test/change_notifier_provider_test.dart"},"type":"testStart","time":15397}
{"testID":68,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":15412}
{"test":{"id":69,"name":"ChangeNotifierProvider builder6","suiteID":58,"groupIDs":[60,61],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":251,"root_column":5,"root_url":"file:///__w/provider/provider/test/change_notifier_provider_test.dart"},"type":"testStart","time":15413}
{"testID":69,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":15424}
{"test":{"id":70,"name":"ChangeNotifierProvider builder0","suiteID":58,"groupIDs":[60,61],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":290,"root_column":5,"root_url":"file:///__w/provider/provider/test/change_notifier_provider_test.dart"},"type":"testStart","time":15424}
{"testID":70,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":15434}
{"test":{"id":71,"name":"Use builder property, not child","suiteID":58,"groupIDs":[60],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":325,"root_column":3,"root_url":"file:///__w/provider/provider/test/change_notifier_provider_test.dart"},"type":"testStart","time":15435}
{"testID":71,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":15445}
{"suite":{"id":72,"platform":"vm","path":"/__w/provider/provider/test/builder_test.dart"},"type":"suite","time":16595}
{"test":{"id":73,"name":"loading /__w/provider/provider/test/builder_test.dart","suiteID":72,"groupIDs":[],"metadata":{"skip":false,"skipReason":null},"line":null,"column":null,"url":null},"type":"testStart","time":16595}
{"testID":73,"result":"success","skipped":false,"hidden":true,"type":"testDone","time":17304}
{"group":{"id":74,"suiteID":72,"parentID":null,"name":"","metadata":{"skip":false,"skipReason":null},"testCount":24,"line":null,"column":null,"url":null},"type":"group","time":17305}
{"group":{"id":75,"suiteID":72,"parentID":74,"name":"ChangeNotifierProvider","metadata":{"skip":false,"skipReason":null},"testCount":2,"line":9,"column":3,"url":"file:///__w/provider/provider/test/builder_test.dart"},"type":"group","time":17305}
{"test":{"id":76,"name":"ChangeNotifierProvider default","suiteID":72,"groupIDs":[74,75],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":10,"root_column":5,"root_url":"file:///__w/provider/provider/test/builder_test.dart"},"type":"testStart","time":17305}
{"testID":76,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":17494}
{"test":{"id":77,"name":"ChangeNotifierProvider .value","suiteID":72,"groupIDs":[74,75],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":25,"root_column":5,"root_url":"file:///__w/provider/provider/test/builder_test.dart"},"type":"testStart","time":17495}
{"testID":77,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":17505}
{"group":{"id":78,"suiteID":72,"parentID":74,"name":"ListenableProvider","metadata":{"skip":false,"skipReason":null},"testCount":2,"line":41,"column":3,"url":"file:///__w/provider/provider/test/builder_test.dart"},"type":"group","time":17505}
{"test":{"id":79,"name":"ListenableProvider default","suiteID":72,"groupIDs":[74,78],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":42,"root_column":5,"root_url":"file:///__w/provider/provider/test/builder_test.dart"},"type":"testStart","time":17505}
{"testID":79,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":17514}
{"test":{"id":80,"name":"ListenableProvider .value","suiteID":72,"groupIDs":[74,78],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":57,"root_column":5,"root_url":"file:///__w/provider/provider/test/builder_test.dart"},"type":"testStart","time":17514}
{"testID":80,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":17530}
{"group":{"id":81,"suiteID":72,"parentID":74,"name":"Provider","metadata":{"skip":false,"skipReason":null},"testCount":2,"line":73,"column":3,"url":"file:///__w/provider/provider/test/builder_test.dart"},"type":"group","time":17530}
{"test":{"id":82,"name":"Provider default","suiteID":72,"groupIDs":[74,81],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":74,"root_column":5,"root_url":"file:///__w/provider/provider/test/builder_test.dart"},"type":"testStart","time":17530}
{"testID":82,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":17541}
{"test":{"id":83,"name":"Provider .value","suiteID":72,"groupIDs":[74,81],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":88,"root_column":5,"root_url":"file:///__w/provider/provider/test/builder_test.dart"},"type":"testStart","time":17542}
{"testID":83,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":17550}
{"group":{"id":84,"suiteID":72,"parentID":74,"name":"ProxyProvider","metadata":{"skip":false,"skipReason":null},"testCount":7,"line":103,"column":3,"url":"file:///__w/provider/provider/test/builder_test.dart"},"type":"group","time":17552}
{"test":{"id":85,"name":"ProxyProvider 0","suiteID":72,"groupIDs":[74,84],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":104,"root_column":5,"root_url":"file:///__w/provider/provider/test/builder_test.dart"},"type":"testStart","time":17552}
{"testID":85,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":17563}
{"test":{"id":86,"name":"ProxyProvider 1","suiteID":72,"groupIDs":[74,84],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":125,"root_column":5,"root_url":"file:///__w/provider/provider/test/builder_test.dart"},"type":"testStart","time":17563}
{"testID":86,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":17573}
{"test":{"id":87,"name":"ProxyProvider 2","suiteID":72,"groupIDs":[74,84],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":147,"root_column":5,"root_url":"file:///__w/provider/provider/test/builder_test.dart"},"type":"testStart","time":17573}
{"testID":87,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":17581}
{"test":{"id":88,"name":"ProxyProvider 3","suiteID":72,"groupIDs":[74,84],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":170,"root_column":5,"root_url":"file:///__w/provider/provider/test/builder_test.dart"},"type":"testStart","time":17581}
{"testID":88,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":17591}
{"test":{"id":89,"name":"ProxyProvider 4","suiteID":72,"groupIDs":[74,84],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":194,"root_column":5,"root_url":"file:///__w/provider/provider/test/builder_test.dart"},"type":"testStart","time":17592}
{"testID":89,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":17601}
{"test":{"id":90,"name":"ProxyProvider 5","suiteID":72,"groupIDs":[74,84],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":219,"root_column":5,"root_url":"file:///__w/provider/provider/test/builder_test.dart"},"type":"testStart","time":17602}
{"testID":90,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":17611}
{"test":{"id":91,"name":"ProxyProvider 6","suiteID":72,"groupIDs":[74,84],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":245,"root_column":5,"root_url":"file:///__w/provider/provider/test/builder_test.dart"},"type":"testStart","time":17612}
{"testID":91,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":17621}
{"group":{"id":92,"suiteID":72,"parentID":74,"name":"MultiProvider","metadata":{"skip":false,"skipReason":null},"testCount":11,"line":273,"column":3,"url":"file:///__w/provider/provider/test/builder_test.dart"},"type":"group","time":17622}
{"test":{"id":93,"name":"MultiProvider with 1 ChangeNotifierProvider default","suiteID":72,"groupIDs":[74,92],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":274,"root_column":5,"root_url":"file:///__w/provider/provider/test/builder_test.dart"},"type":"testStart","time":17622}
{"testID":93,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":17631}
{"test":{"id":94,"name":"MultiProvider with 2 ChangeNotifierProvider default","suiteID":72,"groupIDs":[74,92],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":293,"root_column":5,"root_url":"file:///__w/provider/provider/test/builder_test.dart"},"type":"testStart","time":17631}
{"testID":94,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":17640}
{"test":{"id":95,"name":"MultiProvider with ListenableProvider default","suiteID":72,"groupIDs":[74,92],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":317,"root_column":5,"root_url":"file:///__w/provider/provider/test/builder_test.dart"},"type":"testStart","time":17640}
{"testID":95,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":17652}
{"test":{"id":96,"name":"MultiProvider with Provider default","suiteID":72,"groupIDs":[74,92],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":336,"root_column":5,"root_url":"file:///__w/provider/provider/test/builder_test.dart"},"type":"testStart","time":17652}
{"testID":96,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":17660}
{"test":{"id":97,"name":"MultiProvider with ProxyProvider0","suiteID":72,"groupIDs":[74,92],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":354,"root_column":5,"root_url":"file:///__w/provider/provider/test/builder_test.dart"},"type":"testStart","time":17661}
{"testID":97,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":17668}
{"test":{"id":98,"name":"MultiProvider with ProxyProvider1","suiteID":72,"groupIDs":[74,92],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":375,"root_column":5,"root_url":"file:///__w/provider/provider/test/builder_test.dart"},"type":"testStart","time":17669}
{"testID":98,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":17678}
{"test":{"id":99,"name":"MultiProvider with ProxyProvider2","suiteID":72,"groupIDs":[74,92],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":397,"root_column":5,"root_url":"file:///__w/provider/provider/test/builder_test.dart"},"type":"testStart","time":17679}
{"testID":99,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":17686}
{"test":{"id":100,"name":"MultiProvider with ProxyProvider3","suiteID":72,"groupIDs":[74,92],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":420,"root_column":5,"root_url":"file:///__w/provider/provider/test/builder_test.dart"},"type":"testStart","time":17687}
{"testID":100,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":17696}
{"test":{"id":101,"name":"MultiProvider with ProxyProvider4","suiteID":72,"groupIDs":[74,92],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":444,"root_column":5,"root_url":"file:///__w/provider/provider/test/builder_test.dart"},"type":"testStart","time":17696}
{"testID":101,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":17705}
{"test":{"id":102,"name":"MultiProvider with ProxyProvider5","suiteID":72,"groupIDs":[74,92],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":469,"root_column":5,"root_url":"file:///__w/provider/provider/test/builder_test.dart"},"type":"testStart","time":17706}
{"testID":102,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":17713}
{"test":{"id":103,"name":"MultiProvider with ProxyProvider6","suiteID":72,"groupIDs":[74,92],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":495,"root_column":5,"root_url":"file:///__w/provider/provider/test/builder_test.dart"},"type":"testStart","time":17714}
{"testID":103,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":17721}
{"suite":{"id":104,"platform":"vm","path":"/__w/provider/provider/test/multi_provider_test.dart"},"type":"suite","time":18713}
{"test":{"id":105,"name":"loading /__w/provider/provider/test/multi_provider_test.dart","suiteID":104,"groupIDs":[],"metadata":{"skip":false,"skipReason":null},"line":null,"column":null,"url":null},"type":"testStart","time":18714}
{"testID":105,"result":"success","skipped":false,"hidden":true,"type":"testDone","time":19318}
{"group":{"id":106,"suiteID":104,"parentID":null,"name":"","metadata":{"skip":false,"skipReason":null},"testCount":3,"line":null,"column":null,"url":null},"type":"group","time":19318}
{"group":{"id":107,"suiteID":104,"parentID":106,"name":"MultiProvider","metadata":{"skip":false,"skipReason":null},"testCount":3,"line":8,"column":3,"url":"file:///__w/provider/provider/test/multi_provider_test.dart"},"type":"group","time":19318}
{"test":{"id":108,"name":"MultiProvider throw if providers is null","suiteID":104,"groupIDs":[106,107],"metadata":{"skip":false,"skipReason":null},"line":9,"column":5,"url":"file:///__w/provider/provider/test/multi_provider_test.dart"},"type":"testStart","time":19318}
{"testID":108,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":19348}
{"test":{"id":109,"name":"MultiProvider MultiProvider children can only access parent providers","suiteID":104,"groupIDs":[106,107],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":16,"root_column":5,"root_url":"file:///__w/provider/provider/test/multi_provider_test.dart"},"type":"testStart","time":19348}
{"testID":109,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":19508}
{"test":{"id":110,"name":"MultiProvider MultiProvider.providers with ignored child","suiteID":104,"groupIDs":[106,107],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":75,"root_column":5,"root_url":"file:///__w/provider/provider/test/multi_provider_test.dart"},"type":"testStart","time":19508}
{"testID":110,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":19516}
{"suite":{"id":111,"platform":"vm","path":"/__w/provider/provider/test/stream_provider_test.dart"},"type":"suite","time":20378}
{"test":{"id":112,"name":"loading /__w/provider/provider/test/stream_provider_test.dart","suiteID":111,"groupIDs":[],"metadata":{"skip":false,"skipReason":null},"line":null,"column":null,"url":null},"type":"testStart","time":20379}
{"testID":112,"result":"success","skipped":false,"hidden":true,"type":"testDone","time":20991}
{"group":{"id":113,"suiteID":111,"parentID":null,"name":"","metadata":{"skip":false,"skipReason":null},"testCount":8,"line":null,"column":null,"url":null},"type":"group","time":20991}
{"test":{"id":114,"name":"works with MultiProvider","suiteID":111,"groupIDs":[113],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":15,"root_column":3,"root_url":"file:///__w/provider/provider/test/stream_provider_test.dart"},"type":"testStart","time":20991}
{"testID":114,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":21182}
{"test":{"id":115,"name":"transition from stream to stream preserve state","suiteID":111,"groupIDs":[113],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":35,"root_column":3,"root_url":"file:///__w/provider/provider/test/stream_provider_test.dart"},"type":"testStart","time":21183}
{"testID":115,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":21199}
{"test":{"id":116,"name":"throws if stream has error and catchError is missing","suiteID":111,"groupIDs":[113],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":84,"root_column":3,"root_url":"file:///__w/provider/provider/test/stream_provider_test.dart"},"type":"testStart","time":21200}
{"testID":116,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":21222}
{"test":{"id":117,"name":"calls catchError if present and stream has error","suiteID":111,"groupIDs":[113],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":109,"root_column":3,"root_url":"file:///__w/provider/provider/test/stream_provider_test.dart"},"type":"testStart","time":21222}
{"testID":117,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":21242}
{"test":{"id":118,"name":"works with null","suiteID":111,"groupIDs":[113],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":134,"root_column":3,"root_url":"file:///__w/provider/provider/test/stream_provider_test.dart"},"type":"testStart","time":21243}
{"testID":118,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":21256}
{"test":{"id":119,"name":"StreamProvider() crashes if builder is null","suiteID":111,"groupIDs":[113],"metadata":{"skip":false,"skipReason":null},"line":148,"column":3,"url":"file:///__w/provider/provider/test/stream_provider_test.dart"},"type":"testStart","time":21256}
{"testID":119,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":21261}
{"group":{"id":120,"suiteID":111,"parentID":113,"name":"StreamProvider()","metadata":{"skip":false,"skipReason":null},"testCount":2,"line":155,"column":3,"url":"file:///__w/provider/provider/test/stream_provider_test.dart"},"type":"group","time":21261}
{"test":{"id":121,"name":"StreamProvider() crashes if builder is null","suiteID":111,"groupIDs":[113,120],"metadata":{"skip":false,"skipReason":null},"line":156,"column":5,"url":"file:///__w/provider/provider/test/stream_provider_test.dart"},"type":"testStart","time":21261}
{"testID":121,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":21265}
{"test":{"id":122,"name":"StreamProvider() create and dispose stream with builder","suiteID":111,"groupIDs":[113,120],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":163,"root_column":5,"root_url":"file:///__w/provider/provider/test/stream_provider_test.dart"},"type":"testStart","time":21265}
{"testID":122,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":21276}
{"suite":{"id":123,"platform":"vm","path":"/__w/provider/provider/test/context_test.dart"},"type":"suite","time":22351}
{"test":{"id":124,"name":"loading /__w/provider/provider/test/context_test.dart","suiteID":123,"groupIDs":[],"metadata":{"skip":false,"skipReason":null},"line":null,"column":null,"url":null},"type":"testStart","time":22351}
{"testID":124,"result":"success","skipped":false,"hidden":true,"type":"testDone","time":23043}
{"group":{"id":125,"suiteID":123,"parentID":null,"name":"","metadata":{"skip":false,"skipReason":null},"testCount":31,"line":null,"column":null,"url":null},"type":"group","time":23044}
{"test":{"id":126,"name":"watch in layoutbuilder","suiteID":123,"groupIDs":[125],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":8,"root_column":3,"root_url":"file:///__w/provider/provider/test/context_test.dart"},"type":"testStart","time":23044}
{"testID":126,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":23223}
{"test":{"id":127,"name":"select in layoutbuilder","suiteID":123,"groupIDs":[125],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":23,"root_column":3,"root_url":"file:///__w/provider/provider/test/context_test.dart"},"type":"testStart","time":23223}
{"testID":127,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":23235}
{"test":{"id":128,"name":"cannot select in listView","suiteID":123,"groupIDs":[125],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":38,"root_column":3,"root_url":"file:///__w/provider/provider/test/context_test.dart"},"type":"testStart","time":23235}
{"testID":128,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":23373}
{"test":{"id":129,"name":"watch in listView","suiteID":123,"groupIDs":[125],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":64,"root_column":3,"root_url":"file:///__w/provider/provider/test/context_test.dart"},"type":"testStart","time":23374}
{"testID":129,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":23407}
{"test":{"id":130,"name":"watch in gridView","suiteID":123,"groupIDs":[125],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":96,"root_column":3,"root_url":"file:///__w/provider/provider/test/context_test.dart"},"type":"testStart","time":23407}
{"testID":130,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":23428}
{"group":{"id":131,"suiteID":123,"parentID":125,"name":"BuildContext","metadata":{"skip":false,"skipReason":null},"testCount":25,"line":132,"column":3,"url":"file:///__w/provider/provider/test/context_test.dart"},"type":"group","time":23428}
{"test":{"id":132,"name":"BuildContext internal selected value is updated","suiteID":123,"groupIDs":[125,131],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":133,"root_column":5,"root_url":"file:///__w/provider/provider/test/context_test.dart"},"type":"testStart","time":23428}
{"testID":132,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":23460}
{"test":{"id":133,"name":"BuildContext create can use read without being lazy","suiteID":123,"groupIDs":[125,131],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":216,"root_column":5,"root_url":"file:///__w/provider/provider/test/context_test.dart"},"type":"testStart","time":23461}
{"testID":133,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":23472}
{"test":{"id":134,"name":"BuildContext watch can be used inside InheritedProvider.update","suiteID":123,"groupIDs":[125,131],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":237,"root_column":5,"root_url":"file:///__w/provider/provider/test/context_test.dart"},"type":"testStart","time":23472}
{"testID":134,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":23482}
{"test":{"id":135,"name":"BuildContext select doesn't fail if it loads a provider that depends on other providers","suiteID":123,"groupIDs":[125,131],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":256,"root_column":5,"root_url":"file:///__w/provider/provider/test/context_test.dart"},"type":"testStart","time":23482}
{"testID":135,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":23491}
{"test":{"id":136,"name":"BuildContext don't call old selectors if the child rebuilds individually","suiteID":123,"groupIDs":[125,131],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":279,"root_column":5,"root_url":"file:///__w/provider/provider/test/context_test.dart"},"type":"testStart","time":23492}
{"testID":136,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":23513}
{"test":{"id":137,"name":"BuildContext selects throws inside click handlers","suiteID":123,"groupIDs":[125,131],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":316,"root_column":5,"root_url":"file:///__w/provider/provider/test/context_test.dart"},"type":"testStart","time":23513}
{"testID":137,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":23553}
{"test":{"id":138,"name":"BuildContext select throws if try to read dynamic","suiteID":123,"groupIDs":[125,131],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":337,"root_column":5,"root_url":"file:///__w/provider/provider/test/context_test.dart"},"type":"testStart","time":23553}
{"testID":138,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":23562}
{"test":{"id":139,"name":"BuildContext select throws ProviderNotFoundException","suiteID":123,"groupIDs":[125,131],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":347,"root_column":5,"root_url":"file:///__w/provider/provider/test/context_test.dart"},"type":"testStart","time":23562}
{"testID":139,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":23571}
{"test":{"id":140,"name":"BuildContext select throws if watch called inside the callback from build","suiteID":123,"groupIDs":[125,131],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":357,"root_column":5,"root_url":"file:///__w/provider/provider/test/context_test.dart"},"type":"testStart","time":23572}
{"testID":140,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":23578}
{"test":{"id":141,"name":"BuildContext select throws if read called inside the callback from build","suiteID":123,"groupIDs":[125,131],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":374,"root_column":5,"root_url":"file:///__w/provider/provider/test/context_test.dart"},"type":"testStart","time":23579}
{"testID":141,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":23588}
{"test":{"id":142,"name":"BuildContext select throws if select called inside the callback from build","suiteID":123,"groupIDs":[125,131],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":391,"root_column":5,"root_url":"file:///__w/provider/provider/test/context_test.dart"},"type":"testStart","time":23588}
{"testID":142,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":23596}
{"test":{"id":143,"name":"BuildContext select throws if read called inside the callback on dependency change","suiteID":123,"groupIDs":[125,131],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":408,"root_column":5,"root_url":"file:///__w/provider/provider/test/context_test.dart"},"type":"testStart","time":23597}
{"testID":143,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":23607}
{"test":{"id":144,"name":"BuildContext select throws if watch called inside the callback on dependency change","suiteID":123,"groupIDs":[125,131],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":441,"root_column":5,"root_url":"file:///__w/provider/provider/test/context_test.dart"},"type":"testStart","time":23608}
{"testID":144,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":23625}
{"test":{"id":145,"name":"BuildContext select throws if select called inside the callback on dependency change","suiteID":123,"groupIDs":[125,131],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":474,"root_column":5,"root_url":"file:///__w/provider/provider/test/context_test.dart"},"type":"testStart","time":23625}
{"testID":145,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":23634}
{"test":{"id":146,"name":"BuildContext can call read inside didChangeDependencies","suiteID":123,"groupIDs":[125,131],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":507,"root_column":5,"root_url":"file:///__w/provider/provider/test/context_test.dart"},"type":"testStart","time":23634}
{"testID":146,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":23643}
{"test":{"id":147,"name":"BuildContext select cannot be called inside didChangeDependencies","suiteID":123,"groupIDs":[125,131],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":522,"root_column":5,"root_url":"file:///__w/provider/provider/test/context_test.dart"},"type":"testStart","time":23643}
{"testID":147,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":23649}
{"test":{"id":148,"name":"BuildContext select in initState throws","suiteID":123,"groupIDs":[125,131],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":543,"root_column":5,"root_url":"file:///__w/provider/provider/test/context_test.dart"},"type":"testStart","time":23650}
{"testID":148,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":23656}
{"test":{"id":149,"name":"BuildContext watch in initState throws","suiteID":123,"groupIDs":[125,131],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":558,"root_column":5,"root_url":"file:///__w/provider/provider/test/context_test.dart"},"type":"testStart","time":23657}
{"testID":149,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":23667}
{"test":{"id":150,"name":"BuildContext read in initState works","suiteID":123,"groupIDs":[125,131],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":573,"root_column":5,"root_url":"file:///__w/provider/provider/test/context_test.dart"},"type":"testStart","time":23668}
{"testID":150,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":23674}
{"test":{"id":151,"name":"BuildContext consumer can be removed and selector stops to be called","suiteID":123,"groupIDs":[125,131],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":589,"root_column":5,"root_url":"file:///__w/provider/provider/test/context_test.dart"},"type":"testStart","time":23675}
{"testID":151,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":23682}
{"test":{"id":152,"name":"BuildContext context.select deeply compares maps","suiteID":123,"groupIDs":[125,131],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":629,"root_column":5,"root_url":"file:///__w/provider/provider/test/context_test.dart"},"type":"testStart","time":23683}
{"testID":152,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":23698}
{"test":{"id":153,"name":"BuildContext context.select deeply compares lists","suiteID":123,"groupIDs":[125,131],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":666,"root_column":5,"root_url":"file:///__w/provider/provider/test/context_test.dart"},"type":"testStart","time":23698}
{"testID":153,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":23706}
{"test":{"id":154,"name":"BuildContext context.select deeply compares iterables","suiteID":123,"groupIDs":[125,131],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":702,"root_column":5,"root_url":"file:///__w/provider/provider/test/context_test.dart"},"type":"testStart","time":23706}
{"testID":154,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":23714}
{"test":{"id":155,"name":"BuildContext context.select deeply compares sets","suiteID":123,"groupIDs":[125,131],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":738,"root_column":5,"root_url":"file:///__w/provider/provider/test/context_test.dart"},"type":"testStart","time":23715}
{"testID":155,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":23726}
{"test":{"id":156,"name":"BuildContext context.watch listens to value changes","suiteID":123,"groupIDs":[125,131],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":774,"root_column":5,"root_url":"file:///__w/provider/provider/test/context_test.dart"},"type":"testStart","time":23727}
{"testID":156,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":23737}
{"test":{"id":157,"name":"clears select dependencies for all dependents","suiteID":123,"groupIDs":[125],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":799,"root_column":3,"root_url":"file:///__w/provider/provider/test/context_test.dart"},"type":"testStart","time":23738}
{"testID":157,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":23757}
{"suite":{"id":158,"platform":"vm","path":"/__w/provider/provider/test/reassemble_test.dart"},"type":"suite","time":24634}
{"test":{"id":159,"name":"loading /__w/provider/provider/test/reassemble_test.dart","suiteID":158,"groupIDs":[],"metadata":{"skip":false,"skipReason":null},"line":null,"column":null,"url":null},"type":"testStart","time":24634}
{"testID":159,"result":"success","skipped":false,"hidden":true,"type":"testDone","time":25251}
{"group":{"id":160,"suiteID":158,"parentID":null,"name":"","metadata":{"skip":false,"skipReason":null},"testCount":3,"line":null,"column":null,"url":null},"type":"group","time":25251}
{"test":{"id":161,"name":"ReassembleHandler","suiteID":158,"groupIDs":[160],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":15,"root_column":3,"root_url":"file:///__w/provider/provider/test/reassemble_test.dart"},"type":"testStart","time":25252}
{"testID":161,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":25446}
{"test":{"id":162,"name":"unevaluated create","suiteID":158,"groupIDs":[160],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":31,"root_column":3,"root_url":"file:///__w/provider/provider/test/reassemble_test.dart"},"type":"testStart","time":25447}
{"testID":162,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":25458}
{"test":{"id":163,"name":"unevaluated create","suiteID":158,"groupIDs":[160],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":47,"root_column":3,"root_url":"file:///__w/provider/provider/test/reassemble_test.dart"},"type":"testStart","time":25458}
{"testID":163,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":25474}
{"suite":{"id":164,"platform":"vm","path":"/__w/provider/provider/test/future_provider_test.dart"},"type":"suite","time":26552}
{"test":{"id":165,"name":"loading /__w/provider/provider/test/future_provider_test.dart","suiteID":164,"groupIDs":[],"metadata":{"skip":false,"skipReason":null},"line":null,"column":null,"url":null},"type":"testStart","time":26552}
{"testID":165,"result":"success","skipped":false,"hidden":true,"type":"testDone","time":27478}
{"group":{"id":166,"suiteID":164,"parentID":null,"name":"","metadata":{"skip":false,"skipReason":null},"testCount":10,"line":null,"column":null,"url":null},"type":"group","time":27479}
{"test":{"id":167,"name":"works with MultiProvider","suiteID":164,"groupIDs":[166],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":15,"root_column":3,"root_url":"file:///__w/provider/provider/test/future_provider_test.dart"},"type":"testStart","time":27479}
{"testID":167,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":27663}
{"test":{"id":168,"name":"(catchError) previous future completes after transition is no-op","suiteID":164,"groupIDs":[166],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":34,"root_column":3,"root_url":"file:///__w/provider/provider/test/future_provider_test.dart"},"type":"testStart","time":27664}
{"testID":168,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":27680}
{"test":{"id":169,"name":"previous future completes after transition is no-op","suiteID":164,"groupIDs":[166],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":73,"root_column":3,"root_url":"file:///__w/provider/provider/test/future_provider_test.dart"},"type":"testStart","time":27681}
{"testID":169,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":27696}
{"test":{"id":170,"name":"transition from future to future preserve state","suiteID":164,"groupIDs":[166],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":110,"root_column":3,"root_url":"file:///__w/provider/provider/test/future_provider_test.dart"},"type":"testStart","time":27697}
{"testID":170,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":27709}
{"test":{"id":171,"name":"throws if future has error and catchError is missing","suiteID":164,"groupIDs":[166],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":148,"root_column":3,"root_url":"file:///__w/provider/provider/test/future_provider_test.dart"},"type":"testStart","time":27709}
{"testID":171,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":27733}
{"test":{"id":172,"name":"calls catchError if present and future has error","suiteID":164,"groupIDs":[166],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":172,"root_column":3,"root_url":"file:///__w/provider/provider/test/future_provider_test.dart"},"type":"testStart","time":27733}
{"testID":172,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":27754}
{"test":{"id":173,"name":"works with null","suiteID":164,"groupIDs":[166],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":196,"root_column":3,"root_url":"file:///__w/provider/provider/test/future_provider_test.dart"},"type":"testStart","time":27754}
{"testID":173,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":27768}
{"test":{"id":174,"name":"FutureProvider() crashes if builder is null","suiteID":164,"groupIDs":[166],"metadata":{"skip":false,"skipReason":null},"line":210,"column":3,"url":"file:///__w/provider/provider/test/future_provider_test.dart"},"type":"testStart","time":27769}
{"testID":174,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":27773}
{"group":{"id":175,"suiteID":164,"parentID":166,"name":"FutureProvider()","metadata":{"skip":false,"skipReason":null},"testCount":1,"line":217,"column":3,"url":"file:///__w/provider/provider/test/future_provider_test.dart"},"type":"group","time":27773}
{"test":{"id":176,"name":"FutureProvider() crashes if builder is null","suiteID":164,"groupIDs":[166,175],"metadata":{"skip":false,"skipReason":null},"line":218,"column":5,"url":"file:///__w/provider/provider/test/future_provider_test.dart"},"type":"testStart","time":27773}
{"testID":176,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":27776}
{"test":{"id":177,"name":"create and dispose future with builder","suiteID":164,"groupIDs":[166],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":225,"root_column":3,"root_url":"file:///__w/provider/provider/test/future_provider_test.dart"},"type":"testStart","time":27776}
{"testID":177,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":27788}
{"suite":{"id":178,"platform":"vm","path":"/__w/provider/provider/test/provider_test.dart"},"type":"suite","time":28601}
{"test":{"id":179,"name":"loading /__w/provider/provider/test/provider_test.dart","suiteID":178,"groupIDs":[],"metadata":{"skip":false,"skipReason":null},"line":null,"column":null,"url":null},"type":"testStart","time":28601}
{"testID":179,"result":"success","skipped":false,"hidden":true,"type":"testDone","time":29400}
{"group":{"id":180,"suiteID":178,"parentID":null,"name":"","metadata":{"skip":false,"skipReason":null},"testCount":11,"line":null,"column":null,"url":null},"type":"group","time":29400}
{"test":{"id":181,"name":"works with MultiProvider","suiteID":178,"groupIDs":[180],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":9,"root_column":3,"root_url":"file:///__w/provider/provider/test/provider_test.dart"},"type":"testStart","time":29401}
{"testID":181,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":29573}
{"group":{"id":182,"suiteID":178,"parentID":180,"name":"Provider.of","metadata":{"skip":false,"skipReason":null},"testCount":5,"line":23,"column":3,"url":"file:///__w/provider/provider/test/provider_test.dart"},"type":"group","time":29574}
{"test":{"id":183,"name":"Provider.of throws if T is dynamic","suiteID":178,"groupIDs":[180,182],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":24,"root_column":5,"root_url":"file:///__w/provider/provider/test/provider_test.dart"},"type":"testStart","time":29574}
{"testID":183,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":29600}
{"test":{"id":184,"name":"Provider.of listen defaults to true when building widgets","suiteID":178,"groupIDs":[180,182],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":37,"root_column":5,"root_url":"file:///__w/provider/provider/test/provider_test.dart"},"type":"testStart","time":29600}
{"testID":184,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":29613}
{"test":{"id":185,"name":"Provider.of listen defaults to false outside of the widget tree","suiteID":178,"groupIDs":[180,182],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":68,"root_column":5,"root_url":"file:///__w/provider/provider/test/provider_test.dart"},"type":"testStart","time":29613}
{"testID":185,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":29622}
{"test":{"id":186,"name":"Provider.of listen:false doesn't trigger rebuild","suiteID":178,"groupIDs":[180,182],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":100,"root_column":5,"root_url":"file:///__w/provider/provider/test/provider_test.dart"},"type":"testStart","time":29622}
{"testID":186,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":29632}
{"test":{"id":187,"name":"Provider.of listen:true outside of the widget tree throws","suiteID":178,"groupIDs":[180,182],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":131,"root_column":5,"root_url":"file:///__w/provider/provider/test/provider_test.dart"},"type":"testStart","time":29633}
{"testID":187,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":29644}
{"group":{"id":188,"suiteID":178,"parentID":180,"name":"Provider","metadata":{"skip":false,"skipReason":null},"testCount":5,"line":156,"column":3,"url":"file:///__w/provider/provider/test/provider_test.dart"},"type":"group","time":29645}
{"test":{"id":189,"name":"Provider throws if the provided value is a Listenable/Stream","suiteID":178,"groupIDs":[180,188],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":157,"root_column":5,"root_url":"file:///__w/provider/provider/test/provider_test.dart"},"type":"testStart","time":29645}
{"testID":189,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":29673}
{"test":{"id":190,"name":"Provider debugCheckInvalidValueType can be disabled","suiteID":178,"groupIDs":[180,188],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":194,"root_column":5,"root_url":"file:///__w/provider/provider/test/provider_test.dart"},"type":"testStart","time":29673}
{"testID":190,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":29682}
{"test":{"id":191,"name":"Provider simple usage","suiteID":178,"groupIDs":[180,188],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":214,"root_column":5,"root_url":"file:///__w/provider/provider/test/provider_test.dart"},"type":"testStart","time":29682}
{"testID":191,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":29691}
{"test":{"id":192,"name":"Provider throws an error if no provider found","suiteID":178,"groupIDs":[180,188],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":287,"root_column":5,"root_url":"file:///__w/provider/provider/test/provider_test.dart"},"type":"testStart","time":29692}
{"testID":192,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":29703}
{"test":{"id":193,"name":"Provider update should notify","suiteID":178,"groupIDs":[180,188],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":301,"root_column":5,"root_url":"file:///__w/provider/provider/test/provider_test.dart"},"type":"testStart","time":29703}
{"testID":193,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":29711}
{"suite":{"id":194,"platform":"vm","path":"/__w/provider/provider/test/inherited_provider_test.dart"},"type":"suite","time":30742}
{"test":{"id":195,"name":"loading /__w/provider/provider/test/inherited_provider_test.dart","suiteID":194,"groupIDs":[],"metadata":{"skip":false,"skipReason":null},"line":null,"column":null,"url":null},"type":"testStart","time":30742}
{"testID":195,"result":"success","skipped":false,"hidden":true,"type":"testDone","time":31545}
{"group":{"id":196,"suiteID":194,"parentID":null,"name":"","metadata":{"skip":false,"skipReason":null},"testCount":81,"line":null,"column":null,"url":null},"type":"group","time":31545}
{"test":{"id":197,"name":"regression test #377","suiteID":194,"groupIDs":[196],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":25,"root_column":3,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":31545}
{"testID":197,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":31712}
{"test":{"id":198,"name":"rebuild on dependency flags update","suiteID":194,"groupIDs":[196],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":44,"root_column":3,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":31712}
{"testID":198,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":31727}
{"test":{"id":199,"name":"properly update debug flags if a create triggers another deferred create","suiteID":194,"groupIDs":[196],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":69,"root_column":3,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":31727}
{"testID":199,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":31736}
{"test":{"id":200,"name":"properly update debug flags if a create triggers another deferred create","suiteID":194,"groupIDs":[196],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":114,"root_column":3,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":31736}
{"testID":200,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":31744}
{"test":{"id":201,"name":"properly update debug flags if an update triggers another create/update","suiteID":194,"groupIDs":[196],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":160,"root_column":3,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":31744}
{"testID":201,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":31751}
{"test":{"id":202,"name":"properly update debug flags if a create triggers another create/update","suiteID":194,"groupIDs":[196],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":208,"root_column":3,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":31751}
{"testID":202,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":31759}
{"test":{"id":203,"name":"Provider.of(listen: false) outside of build works when it loads a provider","suiteID":194,"groupIDs":[196],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":265,"root_column":3,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":31759}
{"testID":203,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":31781}
{"test":{"id":204,"name":"new value is available in didChangeDependencies","suiteID":194,"groupIDs":[196],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":286,"root_column":3,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":31782}
{"testID":204,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":31808}
{"test":{"id":205,"name":"builder receives the current value and updates independently from `update`","suiteID":194,"groupIDs":[196],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":320,"root_column":3,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":31808}
{"testID":205,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":31824}
{"test":{"id":206,"name":"builder can _not_ rebuild when provider updates","suiteID":194,"groupIDs":[196],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":353,"root_column":3,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":31824}
{"testID":206,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":31832}
{"test":{"id":207,"name":"Provider.of has a proper error message if context is null","suiteID":194,"groupIDs":[196],"metadata":{"skip":false,"skipReason":null},"line":380,"column":3,"url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":31832}
{"testID":207,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":31838}
{"test":{"id":208,"name":"builder rebuilds if provider is recreated","suiteID":194,"groupIDs":[196],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":383,"root_column":3,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":31838}
{"testID":208,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":31847}
{"test":{"id":209,"name":"provider.of throws if listen:true outside of the widget tree","suiteID":194,"groupIDs":[196],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":415,"root_column":3,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":31848}
{"testID":209,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":31871}
{"test":{"id":210,"name":"InheritedProvider throws if no child is provided with default constructor","suiteID":194,"groupIDs":[196],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":451,"root_column":3,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":31872}
{"testID":210,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":31886}
{"test":{"id":211,"name":"InheritedProvider throws if no child is provided with value constructor","suiteID":194,"groupIDs":[196],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":471,"root_column":3,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":31886}
{"testID":211,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":31894}
{"test":{"id":212,"name":"DeferredInheritedProvider throws if no child is provided with default constructor","suiteID":194,"groupIDs":[196],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":491,"root_column":3,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":31894}
{"testID":212,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":31909}
{"test":{"id":213,"name":"DeferredInheritedProvider throws if no child is provided with value constructor","suiteID":194,"groupIDs":[196],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":514,"root_column":3,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":31909}
{"testID":213,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":31916}
{"group":{"id":214,"suiteID":194,"parentID":196,"name":"diagnostics","metadata":{"skip":false,"skipReason":null},"testCount":5,"line":536,"column":3,"url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"group","time":31917}
{"test":{"id":215,"name":"diagnostics InheritedProvider.value","suiteID":194,"groupIDs":[196,214],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":537,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":31917}
{"testID":215,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":31928}
{"test":{"id":216,"name":"diagnostics InheritedProvider doesn't break lazy loading","suiteID":194,"groupIDs":[196,214],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":566,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":31929}
{"testID":216,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":31936}
{"test":{"id":217,"name":"diagnostics InheritedProvider show if listening","suiteID":194,"groupIDs":[196,214],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":588,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":31936}
{"testID":217,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":31943}
{"test":{"id":218,"name":"diagnostics DeferredInheritedProvider.value","suiteID":194,"groupIDs":[196,214],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":611,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":31944}
{"testID":218,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":31950}
{"test":{"id":219,"name":"diagnostics DeferredInheritedProvider","suiteID":194,"groupIDs":[196,214],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":641,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":31951}
{"testID":219,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":31967}
{"group":{"id":220,"suiteID":194,"parentID":196,"name":"InheritedProvider.value()","metadata":{"skip":false,"skipReason":null},"testCount":8,"line":673,"column":3,"url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"group","time":31967}
{"test":{"id":221,"name":"InheritedProvider.value() markNeedsNotifyDependents during startListening is noop","suiteID":194,"groupIDs":[196,220],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":674,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":31967}
{"testID":221,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":31975}
{"test":{"id":222,"name":"InheritedProvider.value() startListening called again when create returns new value","suiteID":194,"groupIDs":[196,220],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":687,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":31976}
{"testID":222,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32003}
{"test":{"id":223,"name":"InheritedProvider.value() startListening","suiteID":194,"groupIDs":[196,220],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":730,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32003}
{"testID":223,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32022}
{"test":{"id":224,"name":"InheritedProvider.value() stopListening not called twice if rebuild doesn't have listeners","suiteID":194,"groupIDs":[196,220],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":774,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32022}
{"testID":224,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32038}
{"test":{"id":225,"name":"InheritedProvider.value() removeListener cannot be null","suiteID":194,"groupIDs":[196,220],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":814,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32039}
{"testID":225,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32061}
{"test":{"id":226,"name":"InheritedProvider.value() pass down current value","suiteID":194,"groupIDs":[196,220],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":826,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32061}
{"testID":226,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32078}
{"test":{"id":227,"name":"InheritedProvider.value() default updateShouldNotify","suiteID":194,"groupIDs":[196,220],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":847,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32078}
{"testID":227,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32086}
{"test":{"id":228,"name":"InheritedProvider.value() custom updateShouldNotify","suiteID":194,"groupIDs":[196,220],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":870,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32086}
{"testID":228,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32118}
{"group":{"id":229,"suiteID":194,"parentID":196,"name":"InheritedProvider()","metadata":{"skip":false,"skipReason":null},"testCount":25,"line":914,"column":3,"url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"group","time":32118}
{"test":{"id":230,"name":"InheritedProvider() hasValue","suiteID":194,"groupIDs":[196,229],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":915,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32118}
{"testID":230,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32134}
{"test":{"id":231,"name":"InheritedProvider() provider calls update if rebuilding only due to didChangeDependencies","suiteID":194,"groupIDs":[196,229],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":932,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32134}
{"testID":231,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32143}
{"test":{"id":232,"name":"InheritedProvider() provider notifying dependents doesn't call update","suiteID":194,"groupIDs":[196,229],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":958,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32144}
{"testID":232,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32155}
{"test":{"id":233,"name":"InheritedProvider() update can call Provider.of with listen:true","suiteID":194,"groupIDs":[196,229],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":990,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32155}
{"testID":233,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32162}
{"test":{"id":234,"name":"InheritedProvider() update lazy loaded can call Provider.of with listen:true","suiteID":194,"groupIDs":[196,229],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":1004,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32163}
{"testID":234,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32173}
{"test":{"id":235,"name":"InheritedProvider() markNeedsNotifyDependents during startListening is noop","suiteID":194,"groupIDs":[196,229],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":1018,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32177}
{"testID":235,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32199}
{"test":{"id":236,"name":"InheritedProvider() update can obtain parent of the same type than self","suiteID":194,"groupIDs":[196,229],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":1031,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32199}
{"testID":236,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32214}
{"test":{"id":237,"name":"InheritedProvider() _debugCheckInvalidValueType","suiteID":194,"groupIDs":[196,229],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":1049,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32215}
{"testID":237,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32237}
{"test":{"id":238,"name":"InheritedProvider() startListening","suiteID":194,"groupIDs":[196,229],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":1090,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32237}
{"testID":238,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32255}
{"test":{"id":239,"name":"InheritedProvider() startListening called again when create returns new value","suiteID":194,"groupIDs":[196,229],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":1135,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32256}
{"testID":239,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32276}
{"test":{"id":240,"name":"InheritedProvider() stopListening not called twice if rebuild doesn't have listeners","suiteID":194,"groupIDs":[196,229],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":1179,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32277}
{"testID":240,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32295}
{"test":{"id":241,"name":"InheritedProvider() removeListener cannot be null","suiteID":194,"groupIDs":[196,229],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":1219,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32296}
{"testID":241,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32312}
{"test":{"id":242,"name":"InheritedProvider() fails if initialValueBuilder calls inheritFromElement/inheritFromWiggetOfExactType","suiteID":194,"groupIDs":[196,229],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":1230,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32313}
{"testID":242,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32330}
{"test":{"id":243,"name":"InheritedProvider() builder is called on every rebuild and after a dependency change","suiteID":194,"groupIDs":[196,229],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":1248,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32331}
{"testID":243,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32342}
{"test":{"id":244,"name":"InheritedProvider() builder with no updateShouldNotify use ==","suiteID":194,"groupIDs":[196,229],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":1299,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32343}
{"testID":244,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32351}
{"test":{"id":245,"name":"InheritedProvider() builder calls updateShouldNotify callback","suiteID":194,"groupIDs":[196,229],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":1346,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32352}
{"testID":245,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32360}
{"test":{"id":246,"name":"InheritedProvider() initialValue is transmitted to valueBuilder","suiteID":194,"groupIDs":[196,229],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":1402,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32361}
{"testID":246,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32369}
{"test":{"id":247,"name":"InheritedProvider() calls builder again if dependencies change","suiteID":194,"groupIDs":[196,229],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":1418,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32369}
{"testID":247,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32391}
{"test":{"id":248,"name":"InheritedProvider() exposes initialValue if valueBuilder is null","suiteID":194,"groupIDs":[196,229],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":1473,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32391}
{"testID":248,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32411}
{"test":{"id":249,"name":"InheritedProvider() call dispose on unmount","suiteID":194,"groupIDs":[196,229],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":1483,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32412}
{"testID":249,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32434}
{"test":{"id":250,"name":"InheritedProvider() builder unmount, dispose not called if value never read","suiteID":194,"groupIDs":[196,229],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":1504,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32435}
{"testID":250,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32446}
{"test":{"id":251,"name":"InheritedProvider() call dispose after new value","suiteID":194,"groupIDs":[196,229],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":1520,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32447}
{"testID":251,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32456}
{"test":{"id":252,"name":"InheritedProvider() valueBuilder works without initialBuilder","suiteID":194,"groupIDs":[196,229],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":1561,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32456}
{"testID":252,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32467}
{"test":{"id":253,"name":"InheritedProvider() throws if both builder and initialBuilder are missing","suiteID":194,"groupIDs":[196,229],"metadata":{"skip":false,"skipReason":null},"line":1589,"column":5,"url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32467}
{"testID":253,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32472}
{"test":{"id":254,"name":"InheritedProvider() calls initialValueBuilder lazily once","suiteID":194,"groupIDs":[196,229],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":1595,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32473}
{"testID":254,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32480}
{"group":{"id":255,"suiteID":194,"parentID":196,"name":"DeferredInheritedProvider.value()","metadata":{"skip":false,"skipReason":null},"testCount":8,"line":1625,"column":3,"url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"group","time":32481}
{"test":{"id":256,"name":"DeferredInheritedProvider.value() hasValue","suiteID":194,"groupIDs":[196,255],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":1626,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32481}
{"testID":256,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32487}
{"test":{"id":257,"name":"DeferredInheritedProvider.value() startListening","suiteID":194,"groupIDs":[196,255],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":1643,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32488}
{"testID":257,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32497}
{"test":{"id":258,"name":"DeferredInheritedProvider.value() stopListening cannot be null","suiteID":194,"groupIDs":[196,255],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":1694,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32497}
{"testID":258,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32506}
{"test":{"id":259,"name":"DeferredInheritedProvider.value() startListening doesn't need setState if already initialized","suiteID":194,"groupIDs":[196,255],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":1722,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32506}
{"testID":259,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32514}
{"test":{"id":260,"name":"DeferredInheritedProvider.value() setState without updateShouldNotify","suiteID":194,"groupIDs":[196,255],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":1762,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32515}
{"testID":260,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32523}
{"test":{"id":261,"name":"DeferredInheritedProvider.value() setState with updateShouldNotify","suiteID":194,"groupIDs":[196,255],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":1804,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32523}
{"testID":261,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32532}
{"test":{"id":262,"name":"DeferredInheritedProvider.value() startListening never leave the widget uninitialized","suiteID":194,"groupIDs":[196,255],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":1858,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32532}
{"testID":262,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32540}
{"test":{"id":263,"name":"DeferredInheritedProvider.value() startListening called again on controller change","suiteID":194,"groupIDs":[196,255],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":1880,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32541}
{"testID":263,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32551}
{"group":{"id":264,"suiteID":194,"parentID":196,"name":"DeferredInheritedProvider()","metadata":{"skip":false,"skipReason":null},"testCount":4,"line":1947,"column":3,"url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"group","time":32552}
{"test":{"id":265,"name":"DeferredInheritedProvider() create can't call inherited widgets","suiteID":194,"groupIDs":[196,264],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":1948,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32552}
{"testID":265,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32559}
{"test":{"id":266,"name":"DeferredInheritedProvider() creates the value lazily","suiteID":194,"groupIDs":[196,264],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":1968,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32560}
{"testID":266,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32567}
{"test":{"id":267,"name":"DeferredInheritedProvider() dispose","suiteID":194,"groupIDs":[196,264],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":2002,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32568}
{"testID":267,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32575}
{"test":{"id":268,"name":"DeferredInheritedProvider() dispose no-op if never built","suiteID":194,"groupIDs":[196,264],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":2030,"root_column":5,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32576}
{"testID":268,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32583}
{"test":{"id":269,"name":"startListening markNeedsNotifyDependents","suiteID":194,"groupIDs":[196],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":2053,"root_column":3,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32583}
{"testID":269,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32590}
{"test":{"id":270,"name":"InheritedProvider can be subclassed","suiteID":194,"groupIDs":[196],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":2085,"root_column":3,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32591}
{"testID":270,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32599}
{"test":{"id":271,"name":"DeferredInheritedProvider can be subclassed","suiteID":194,"groupIDs":[196],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":2106,"root_column":3,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32599}
{"testID":271,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32606}
{"test":{"id":272,"name":"can be used with MultiProvider","suiteID":194,"groupIDs":[196],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":2128,"root_column":3,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32607}
{"testID":272,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32615}
{"test":{"id":273,"name":"throw if the widget ctor changes","suiteID":194,"groupIDs":[196],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":2141,"root_column":3,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32615}
{"testID":273,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32623}
{"test":{"id":274,"name":"InheritedProvider lazy loading can be disabled","suiteID":194,"groupIDs":[196],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":2161,"root_column":3,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32624}
{"testID":274,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32630}
{"test":{"id":275,"name":"InheritedProvider.value lazy loading can be disabled","suiteID":194,"groupIDs":[196],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":2176,"root_column":3,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32631}
{"testID":275,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32640}
{"test":{"id":276,"name":"InheritedProvider subclass don't have to specify default lazy value","suiteID":194,"groupIDs":[196],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":2193,"root_column":3,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32641}
{"testID":276,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32648}
{"test":{"id":277,"name":"DeferredInheritedProvider lazy loading can be disabled","suiteID":194,"groupIDs":[196],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":2212,"root_column":3,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32648}
{"testID":277,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32655}
{"test":{"id":278,"name":"DeferredInheritedProvider.value lazy loading can be disabled","suiteID":194,"groupIDs":[196],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":2234,"root_column":3,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32656}
{"testID":278,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32663}
{"test":{"id":279,"name":"selector","suiteID":194,"groupIDs":[196],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":2257,"root_column":3,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32664}
{"testID":279,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32678}
{"test":{"id":280,"name":"can select multiple types from same provider","suiteID":194,"groupIDs":[196],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":2290,"root_column":3,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32678}
{"testID":280,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32687}
{"test":{"id":281,"name":"can select same type on two different providers","suiteID":194,"groupIDs":[196],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":2321,"root_column":3,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32688}
{"testID":281,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32696}
{"test":{"id":282,"name":"can select same type twice on same provider","suiteID":194,"groupIDs":[196],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":2371,"root_column":3,"root_url":"file:///__w/provider/provider/test/inherited_provider_test.dart"},"type":"testStart","time":32697}
{"testID":282,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":32707}
{"suite":{"id":283,"platform":"vm","path":"/__w/provider/provider/test/listenable_proxy_provider_test.dart"},"type":"suite","time":33580}
{"test":{"id":284,"name":"loading /__w/provider/provider/test/listenable_proxy_provider_test.dart","suiteID":283,"groupIDs":[],"metadata":{"skip":false,"skipReason":null},"line":null,"column":null,"url":null},"type":"testStart","time":33580}
{"testID":284,"result":"success","skipped":false,"hidden":true,"type":"testDone","time":34231}
{"group":{"id":285,"suiteID":283,"parentID":null,"name":"","metadata":{"skip":false,"skipReason":null},"testCount":12,"line":null,"column":null,"url":null},"type":"group","time":34233}
{"group":{"id":286,"suiteID":283,"parentID":285,"name":"ListenableProxyProvider","metadata":{"skip":false,"skipReason":null},"testCount":6,"line":31,"column":3,"url":"file:///__w/provider/provider/test/listenable_proxy_provider_test.dart"},"type":"group","time":34233}
{"test":{"id":287,"name":"ListenableProxyProvider throws if update is missing","suiteID":283,"groupIDs":[285,286],"metadata":{"skip":false,"skipReason":null},"line":32,"column":5,"url":"file:///__w/provider/provider/test/listenable_proxy_provider_test.dart"},"type":"testStart","time":34233}
{"testID":287,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":34276}
{"test":{"id":288,"name":"ListenableProxyProvider asserts that the created notifier has no listener","suiteID":283,"groupIDs":[285,286],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":83,"root_column":5,"root_url":"file:///__w/provider/provider/test/listenable_proxy_provider_test.dart"},"type":"testStart","time":34277}
{"testID":288,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":34454}
{"test":{"id":289,"name":"ListenableProxyProvider asserts that the created notifier has no listener after rebuild","suiteID":283,"groupIDs":[285,286],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":105,"root_column":5,"root_url":"file:///__w/provider/provider/test/listenable_proxy_provider_test.dart"},"type":"testStart","time":34454}
{"testID":289,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":34472}
{"test":{"id":290,"name":"ListenableProxyProvider rebuilds dependendents when listeners are called","suiteID":283,"groupIDs":[285,286],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":140,"root_column":5,"root_url":"file:///__w/provider/provider/test/listenable_proxy_provider_test.dart"},"type":"testStart","time":34473}
{"testID":290,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":34493}
{"test":{"id":291,"name":"ListenableProxyProvider update returning a new Listenable disposes the previously created value and update dependents","suiteID":283,"groupIDs":[285,286],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":170,"root_column":5,"root_url":"file:///__w/provider/provider/test/listenable_proxy_provider_test.dart"},"type":"testStart","time":34493}
{"testID":291,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":34518}
{"test":{"id":292,"name":"ListenableProxyProvider disposes of created value","suiteID":283,"groupIDs":[285,286],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":227,"root_column":5,"root_url":"file:///__w/provider/provider/test/listenable_proxy_provider_test.dart"},"type":"testStart","time":34519}
{"testID":292,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":34532}
{"group":{"id":293,"suiteID":283,"parentID":285,"name":"ListenableProxyProvider variants","metadata":{"skip":false,"skipReason":null},"testCount":6,"line":256,"column":3,"url":"file:///__w/provider/provider/test/listenable_proxy_provider_test.dart"},"type":"group","time":34532}
{"test":{"id":294,"name":"ListenableProxyProvider variants ListenableProxyProvider","suiteID":283,"groupIDs":[285,293],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":259,"root_column":5,"root_url":"file:///__w/provider/provider/test/listenable_proxy_provider_test.dart"},"type":"testStart","time":34533}
{"testID":294,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":34546}
{"test":{"id":295,"name":"ListenableProxyProvider variants ListenableProxyProvider2","suiteID":283,"groupIDs":[285,293],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":304,"root_column":5,"root_url":"file:///__w/provider/provider/test/listenable_proxy_provider_test.dart"},"type":"testStart","time":34547}
{"testID":295,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":34556}
{"test":{"id":296,"name":"ListenableProxyProvider variants ListenableProxyProvider3","suiteID":283,"groupIDs":[285,293],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":333,"root_column":5,"root_url":"file:///__w/provider/provider/test/listenable_proxy_provider_test.dart"},"type":"testStart","time":34557}
{"testID":296,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":34566}
{"test":{"id":297,"name":"ListenableProxyProvider variants ListenableProxyProvider4","suiteID":283,"groupIDs":[285,293],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":362,"root_column":5,"root_url":"file:///__w/provider/provider/test/listenable_proxy_provider_test.dart"},"type":"testStart","time":34567}
{"testID":297,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":34584}
{"test":{"id":298,"name":"ListenableProxyProvider variants ListenableProxyProvider5","suiteID":283,"groupIDs":[285,293],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":391,"root_column":5,"root_url":"file:///__w/provider/provider/test/listenable_proxy_provider_test.dart"},"type":"testStart","time":34585}
{"testID":298,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":34597}
{"test":{"id":299,"name":"ListenableProxyProvider variants ListenableProxyProvider6","suiteID":283,"groupIDs":[285,293],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":420,"root_column":5,"root_url":"file:///__w/provider/provider/test/listenable_proxy_provider_test.dart"},"type":"testStart","time":34598}
{"testID":299,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":34615}
{"suite":{"id":300,"platform":"vm","path":"/__w/provider/provider/test/selector_test.dart"},"type":"suite","time":35494}
{"test":{"id":301,"name":"loading /__w/provider/provider/test/selector_test.dart","suiteID":300,"groupIDs":[],"metadata":{"skip":false,"skipReason":null},"line":null,"column":null,"url":null},"type":"testStart","time":35494}
{"testID":301,"result":"success","skipped":false,"hidden":true,"type":"testDone","time":36128}
{"group":{"id":302,"suiteID":300,"parentID":null,"name":"","metadata":{"skip":false,"skipReason":null},"testCount":17,"line":null,"column":null,"url":null},"type":"group","time":36128}
{"test":{"id":303,"name":"asserts that builder/selector are not null","suiteID":300,"groupIDs":[302],"metadata":{"skip":false,"skipReason":null},"line":26,"column":3,"url":"file:///__w/provider/provider/test/selector_test.dart"},"type":"testStart","time":36129}
{"testID":303,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":36161}
{"test":{"id":304,"name":"Deep compare maps by default","suiteID":300,"groupIDs":[302],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":79,"root_column":3,"root_url":"file:///__w/provider/provider/test/selector_test.dart"},"type":"testStart","time":36161}
{"testID":304,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":36319}
{"test":{"id":305,"name":"Deep compare iterables by default","suiteID":300,"groupIDs":[302],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":108,"root_column":3,"root_url":"file:///__w/provider/provider/test/selector_test.dart"},"type":"testStart","time":36320}
{"testID":305,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":36329}
{"test":{"id":306,"name":"Deep compare sets by default","suiteID":300,"groupIDs":[302],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":137,"root_column":3,"root_url":"file:///__w/provider/provider/test/selector_test.dart"},"type":"testStart","time":36329}
{"testID":306,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":36341}
{"test":{"id":307,"name":"Deep compare lists by default","suiteID":300,"groupIDs":[302],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":166,"root_column":3,"root_url":"file:///__w/provider/provider/test/selector_test.dart"},"type":"testStart","time":36348}
{"testID":307,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":36362}
{"test":{"id":308,"name":"custom shouldRebuid","suiteID":300,"groupIDs":[302],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":195,"root_column":3,"root_url":"file:///__w/provider/provider/test/selector_test.dart"},"type":"testStart","time":36363}
{"testID":308,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":36374}
{"test":{"id":309,"name":"passes `child` and `key`","suiteID":300,"groupIDs":[302],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":235,"root_column":3,"root_url":"file:///__w/provider/provider/test/selector_test.dart"},"type":"testStart","time":36375}
{"testID":309,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":36388}
{"test":{"id":310,"name":"calls builder if the callback changes","suiteID":300,"groupIDs":[302],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":250,"root_column":3,"root_url":"file:///__w/provider/provider/test/selector_test.dart"},"type":"testStart","time":36388}
{"testID":310,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":36402}
{"test":{"id":311,"name":"works with MultiProvider","suiteID":300,"groupIDs":[302],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":271,"root_column":3,"root_url":"file:///__w/provider/provider/test/selector_test.dart"},"type":"testStart","time":36403}
{"testID":311,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":36415}
{"test":{"id":312,"name":"don't call builder again if it rebuilds but selector returns the same thing","suiteID":300,"groupIDs":[302],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":305,"root_column":3,"root_url":"file:///__w/provider/provider/test/selector_test.dart"},"type":"testStart","time":36415}
{"testID":312,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":36424}
{"test":{"id":313,"name":"call builder again if it rebuilds abd selector returns the a different variable","suiteID":300,"groupIDs":[302],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":340,"root_column":3,"root_url":"file:///__w/provider/provider/test/selector_test.dart"},"type":"testStart","time":36425}
{"testID":313,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":36434}
{"test":{"id":314,"name":"Selector","suiteID":300,"groupIDs":[302],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":379,"root_column":3,"root_url":"file:///__w/provider/provider/test/selector_test.dart"},"type":"testStart","time":36434}
{"testID":314,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":36449}
{"test":{"id":315,"name":"Selector2","suiteID":300,"groupIDs":[302],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":395,"root_column":3,"root_url":"file:///__w/provider/provider/test/selector_test.dart"},"type":"testStart","time":36449}
{"testID":315,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":36458}
{"test":{"id":316,"name":"Selector3","suiteID":300,"groupIDs":[302],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":412,"root_column":3,"root_url":"file:///__w/provider/provider/test/selector_test.dart"},"type":"testStart","time":36458}
{"testID":316,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":36466}
{"test":{"id":317,"name":"Selector4","suiteID":300,"groupIDs":[302],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":430,"root_column":3,"root_url":"file:///__w/provider/provider/test/selector_test.dart"},"type":"testStart","time":36467}
{"testID":317,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":36476}
{"test":{"id":318,"name":"Selector5","suiteID":300,"groupIDs":[302],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":449,"root_column":3,"root_url":"file:///__w/provider/provider/test/selector_test.dart"},"type":"testStart","time":36476}
{"testID":318,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":36495}
{"test":{"id":319,"name":"Selector6","suiteID":300,"groupIDs":[302],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":469,"root_column":3,"root_url":"file:///__w/provider/provider/test/selector_test.dart"},"type":"testStart","time":36495}
{"testID":319,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":36506}
{"suite":{"id":320,"platform":"vm","path":"/__w/provider/provider/test/stateful_provider_test.dart"},"type":"suite","time":37332}
{"test":{"id":321,"name":"loading /__w/provider/provider/test/stateful_provider_test.dart","suiteID":320,"groupIDs":[],"metadata":{"skip":false,"skipReason":null},"line":null,"column":null,"url":null},"type":"testStart","time":37333}
{"testID":321,"result":"success","skipped":false,"hidden":true,"type":"testDone","time":37946}
{"group":{"id":322,"suiteID":320,"parentID":null,"name":"","metadata":{"skip":false,"skipReason":null},"testCount":4,"line":null,"column":null,"url":null},"type":"group","time":37947}
{"test":{"id":323,"name":"works with MultiProvider","suiteID":320,"groupIDs":[322],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":18,"root_column":3,"root_url":"file:///__w/provider/provider/test/stateful_provider_test.dart"},"type":"testStart","time":37947}
{"testID":323,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":38150}
{"test":{"id":324,"name":"asserts","suiteID":320,"groupIDs":[322],"metadata":{"skip":false,"skipReason":null},"line":32,"column":3,"url":"file:///__w/provider/provider/test/stateful_provider_test.dart"},"type":"testStart","time":38151}
{"testID":324,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":38157}
{"test":{"id":325,"name":"calls create only once","suiteID":320,"groupIDs":[322],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":41,"root_column":3,"root_url":"file:///__w/provider/provider/test/stateful_provider_test.dart"},"type":"testStart","time":38157}
{"testID":325,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":38184}
{"test":{"id":326,"name":"dispose","suiteID":320,"groupIDs":[322],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":56,"root_column":3,"root_url":"file:///__w/provider/provider/test/stateful_provider_test.dart"},"type":"testStart","time":38185}
{"testID":326,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":38203}
{"suite":{"id":327,"platform":"vm","path":"/__w/provider/provider/test/proxy_provider_test.dart"},"type":"suite","time":39356}
{"test":{"id":328,"name":"loading /__w/provider/provider/test/proxy_provider_test.dart","suiteID":327,"groupIDs":[],"metadata":{"skip":false,"skipReason":null},"line":null,"column":null,"url":null},"type":"testStart","time":39356}
{"testID":328,"result":"success","skipped":false,"hidden":true,"type":"testDone","time":40041}
{"group":{"id":329,"suiteID":327,"parentID":null,"name":"","metadata":{"skip":false,"skipReason":null},"testCount":16,"line":null,"column":null,"url":null},"type":"group","time":40042}
{"group":{"id":330,"suiteID":327,"parentID":329,"name":"ProxyProvider","metadata":{"skip":false,"skipReason":null},"testCount":11,"line":37,"column":3,"url":"file:///__w/provider/provider/test/proxy_provider_test.dart"},"type":"group","time":40042}
{"test":{"id":331,"name":"ProxyProvider throws if the provided value is a Listenable/Stream","suiteID":327,"groupIDs":[329,330],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":50,"root_column":5,"root_url":"file:///__w/provider/provider/test/proxy_provider_test.dart"},"type":"testStart","time":40042}
{"testID":331,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":40251}
{"test":{"id":332,"name":"ProxyProvider debugCheckInvalidValueType can be disabled","suiteID":327,"groupIDs":[329,330],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":80,"root_column":5,"root_url":"file:///__w/provider/provider/test/proxy_provider_test.dart"},"type":"testStart","time":40252}
{"testID":332,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":40265}
{"test":{"id":333,"name":"ProxyProvider create creates initial value","suiteID":327,"groupIDs":[329,330],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":110,"root_column":5,"root_url":"file:///__w/provider/provider/test/proxy_provider_test.dart"},"type":"testStart","time":40265}
{"testID":333,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":40288}
{"test":{"id":334,"name":"ProxyProvider consume another providers","suiteID":327,"groupIDs":[329,330],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":132,"root_column":5,"root_url":"file:///__w/provider/provider/test/proxy_provider_test.dart"},"type":"testStart","time":40289}
{"testID":334,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":40307}
{"test":{"id":335,"name":"ProxyProvider throws if update is null","suiteID":327,"groupIDs":[329,330],"metadata":{"skip":false,"skipReason":null},"line":154,"column":5,"url":"file:///__w/provider/provider/test/proxy_provider_test.dart"},"type":"testStart","time":40307}
{"testID":335,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":40314}
{"test":{"id":336,"name":"ProxyProvider rebuild descendants if value change","suiteID":327,"groupIDs":[329,330],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":171,"root_column":5,"root_url":"file:///__w/provider/provider/test/proxy_provider_test.dart"},"type":"testStart","time":40314}
{"testID":336,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":40327}
{"test":{"id":337,"name":"ProxyProvider call dispose when unmounted with the latest result","suiteID":327,"groupIDs":[329,330],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":209,"root_column":5,"root_url":"file:///__w/provider/provider/test/proxy_provider_test.dart"},"type":"testStart","time":40329}
{"testID":337,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":40340}
{"test":{"id":338,"name":"ProxyProvider don't rebuild descendants if value doesn't change","suiteID":327,"groupIDs":[329,330],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":250,"root_column":5,"root_url":"file:///__w/provider/provider/test/proxy_provider_test.dart"},"type":"testStart","time":40340}
{"testID":338,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":40352}
{"test":{"id":339,"name":"ProxyProvider pass down updateShouldNotify","suiteID":327,"groupIDs":[329,330],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":293,"root_column":5,"root_url":"file:///__w/provider/provider/test/proxy_provider_test.dart"},"type":"testStart","time":40353}
{"testID":339,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":40372}
{"test":{"id":340,"name":"ProxyProvider works with MultiProvider","suiteID":327,"groupIDs":[329,330],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":341,"root_column":5,"root_url":"file:///__w/provider/provider/test/proxy_provider_test.dart"},"type":"testStart","time":40372}
{"testID":340,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":40388}
{"test":{"id":341,"name":"ProxyProvider update callback can trigger descendants setState synchronously","suiteID":327,"groupIDs":[329,330],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":363,"root_column":5,"root_url":"file:///__w/provider/provider/test/proxy_provider_test.dart"},"type":"testStart","time":40389}
{"testID":341,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":40413}
{"group":{"id":342,"suiteID":327,"parentID":329,"name":"ProxyProvider variants","metadata":{"skip":false,"skipReason":null},"testCount":5,"line":415,"column":3,"url":"file:///__w/provider/provider/test/proxy_provider_test.dart"},"type":"group","time":40414}
{"test":{"id":343,"name":"ProxyProvider variants ProxyProvider2","suiteID":327,"groupIDs":[329,342],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":416,"root_column":5,"root_url":"file:///__w/provider/provider/test/proxy_provider_test.dart"},"type":"testStart","time":40414}
{"testID":343,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":40432}
{"test":{"id":344,"name":"ProxyProvider variants ProxyProvider3","suiteID":327,"groupIDs":[329,342],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":444,"root_column":5,"root_url":"file:///__w/provider/provider/test/proxy_provider_test.dart"},"type":"testStart","time":40432}
{"testID":344,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":40448}
{"test":{"id":345,"name":"ProxyProvider variants ProxyProvider4","suiteID":327,"groupIDs":[329,342],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":472,"root_column":5,"root_url":"file:///__w/provider/provider/test/proxy_provider_test.dart"},"type":"testStart","time":40449}
{"testID":345,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":40458}
{"test":{"id":346,"name":"ProxyProvider variants ProxyProvider5","suiteID":327,"groupIDs":[329,342],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":500,"root_column":5,"root_url":"file:///__w/provider/provider/test/proxy_provider_test.dart"},"type":"testStart","time":40458}
{"testID":346,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":40478}
{"test":{"id":347,"name":"ProxyProvider variants ProxyProvider6","suiteID":327,"groupIDs":[329,342],"metadata":{"skip":false,"skipReason":null},"line":126,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":528,"root_column":5,"root_url":"file:///__w/provider/provider/test/proxy_provider_test.dart"},"type":"testStart","time":40478}
{"testID":347,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":40488}

View file

@ -1,34 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated by org.testng.reporters.JUnitReportReporter -->
<testsuite skipped="1" hostname="fv-az96-723" name="org.apache.pulsar.AddMissingPatchVersionTest" tests="2" failures="1" timestamp="2021-03-07T10:36:56 UTC" time="0.116" errors="0">
<testcase name="testVersionStrings" time="0.099" classname="org.apache.pulsar.AddMissingPatchVersionTest">
<skipped/>
</testcase> <!-- testVersionStrings -->
<system-out/>
<testcase name="testVersionStrings" time="0.017" classname="org.apache.pulsar.AddMissingPatchVersionTest">
<failure type="java.lang.AssertionError" message="expected [1.2.1] but found [1.2.0]">
<![CDATA[java.lang.AssertionError: expected [1.2.1] but found [1.2.0]
at org.testng.Assert.fail(Assert.java:99)
at org.testng.Assert.failNotEquals(Assert.java:1037)
at org.testng.Assert.assertEqualsImpl(Assert.java:140)
at org.testng.Assert.assertEquals(Assert.java:122)
at org.testng.Assert.assertEquals(Assert.java:629)
at org.testng.Assert.assertEquals(Assert.java:639)
at org.apache.pulsar.AddMissingPatchVersionTest.testVersionStrings(AddMissingPatchVersionTest.java:29)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:132)
at org.testng.internal.InvokeMethodRunnable.runOne(InvokeMethodRunnable.java:45)
at org.testng.internal.InvokeMethodRunnable.call(InvokeMethodRunnable.java:73)
at org.testng.internal.InvokeMethodRunnable.call(InvokeMethodRunnable.java:11)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
]]>
</failure>
</testcase> <!-- testVersionStrings -->
<system-out/>
</testsuite> <!-- org.apache.pulsar.AddMissingPatchVersionTest -->

View file

@ -1,2 +0,0 @@
<?xml version='1.0' encoding='utf-8'?>
<testsuites name="my_package.test_foo" tests="3" failures="1" errors="0" time="6.79"><testsuite name="my_package.test_foo.launch_tests" tests="3" failures="1" errors="0" skipped="0" time="6.79"><testcase classname="my_package.TestFoo" name="test_normal_case" time="2.172" /><testcase classname="my_package.TestFoo" name="test_other_case" time="4.558"><failure message="Traceback (most recent call last):&#10; File &quot;/home/redacted/test_foo.py&quot;, line 183, in test_other_case&#10; self.assertFalse(True)&#10;AssertionError: True is not false&#10;" /></testcase><testcase classname="my_package.TestFoo" name="test_yet_another_case" time="0.06" /></testsuite></testsuites>

File diff suppressed because it is too large Load diff

View file

@ -1,862 +0,0 @@
<?xml version='1.0' encoding='utf-8'?>
<testsuites tests="808" failures="1" errors="0" skipped="14" time="2126.5310000000004"><testsuite name="org.apache.pulsar.AddMissingPatchVersionTest" tests="2" errors="0" failures="1" skipped="1" time="0.116"><testcase name="testVersionStrings" time="0.099" classname="org.apache.pulsar.AddMissingPatchVersionTest">
<skipped />
</testcase>
<testcase name="testVersionStrings" time="0.017" classname="org.apache.pulsar.AddMissingPatchVersionTest">
<failure type="java.lang.AssertionError" message="expected [1.2.1] but found [1.2.0]">
java.lang.AssertionError: expected [1.2.1] but found [1.2.0]
at org.testng.Assert.fail(Assert.java:99)
at org.testng.Assert.failNotEquals(Assert.java:1037)
at org.testng.Assert.assertEqualsImpl(Assert.java:140)
at org.testng.Assert.assertEquals(Assert.java:122)
at org.testng.Assert.assertEquals(Assert.java:629)
at org.testng.Assert.assertEquals(Assert.java:639)
at org.apache.pulsar.AddMissingPatchVersionTest.testVersionStrings(AddMissingPatchVersionTest.java:29)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:132)
at org.testng.internal.InvokeMethodRunnable.runOne(InvokeMethodRunnable.java:45)
at org.testng.internal.InvokeMethodRunnable.call(InvokeMethodRunnable.java:73)
at org.testng.internal.InvokeMethodRunnable.call(InvokeMethodRunnable.java:11)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
</failure>
</testcase>
</testsuite><testsuite name="org.apache.pulsar.PulsarBrokerStarterTest" tests="9" errors="0" failures="0" skipped="0" time="0.5910000000000001"><testcase name="testMainRunBookieNoConfig" time="0.028" classname="org.apache.pulsar.PulsarBrokerStarterTest" />
<testcase name="testLoadConfigWithException" time="0.034" classname="org.apache.pulsar.PulsarBrokerStarterTest" />
<testcase name="testMainWithNoArgument" time="0.004" classname="org.apache.pulsar.PulsarBrokerStarterTest" />
<testcase name="testLoadBalancerConfig" time="0.019" classname="org.apache.pulsar.PulsarBrokerStarterTest" />
<testcase name="testGlobalZooKeeperConfig" time="0.046" classname="org.apache.pulsar.PulsarBrokerStarterTest" />
<testcase name="testMainRunBookieRecoveryNoConfig" time="0.015" classname="org.apache.pulsar.PulsarBrokerStarterTest" />
<testcase name="testLoadConfig" time="0.024" classname="org.apache.pulsar.PulsarBrokerStarterTest" />
<testcase name="testMainEnableRunBookieThroughBrokerConfig" time="0.366" classname="org.apache.pulsar.PulsarBrokerStarterTest" />
<testcase name="testMainRunBookieAndAutoRecoveryNoConfig" time="0.055" classname="org.apache.pulsar.PulsarBrokerStarterTest" />
</testsuite><testsuite name="org.apache.pulsar.broker.PulsarServiceTest" tests="2" errors="0" failures="0" skipped="0" time="0.096"><testcase name="testGetWorkerService" time="0.083" classname="org.apache.pulsar.broker.PulsarServiceTest" />
<testcase name="testGetWorkerServiceException" time="0.013" classname="org.apache.pulsar.broker.PulsarServiceTest" />
</testsuite><testsuite name="org.apache.pulsar.broker.SLAMonitoringTest" tests="4" errors="0" failures="0" skipped="0" time="9.184999999999999"><testcase name="testOwnedNamespaces" time="1.171" classname="org.apache.pulsar.broker.SLAMonitoringTest" />
<testcase name="testOwnershipAfterSetup" time="0.016" classname="org.apache.pulsar.broker.SLAMonitoringTest" />
<testcase name="testUnloadIfBrokerCrashes" time="7.923" classname="org.apache.pulsar.broker.SLAMonitoringTest" />
<testcase name="testOwnershipViaAdminAfterSetup" time="0.075" classname="org.apache.pulsar.broker.SLAMonitoringTest" />
</testsuite><testsuite name="org.apache.pulsar.broker.admin.AdminApiOffloadTest" tests="7" errors="0" failures="0" skipped="0" time="18.584000000000003"><testcase name="testOffloadPoliciesAppliedApi" time="1.869" classname="org.apache.pulsar.broker.admin.AdminApiOffloadTest" />
<testcase name="testOffloadV2" time="1.614" classname="org.apache.pulsar.broker.admin.AdminApiOffloadTest" />
<testcase name="testTopicLevelOffloadNonPartitioned" time="2.481" classname="org.apache.pulsar.broker.admin.AdminApiOffloadTest" />
<testcase name="testTopicLevelOffloadPartitioned" time="1.749" classname="org.apache.pulsar.broker.admin.AdminApiOffloadTest" />
<testcase name="testOffloadV1" time="7.216" classname="org.apache.pulsar.broker.admin.AdminApiOffloadTest" />
<testcase name="testOffloadPolicies" time="1.283" classname="org.apache.pulsar.broker.admin.AdminApiOffloadTest" />
<testcase name="testOffloadPoliciesApi" time="2.372" classname="org.apache.pulsar.broker.admin.AdminApiOffloadTest" />
</testsuite><testsuite name="org.apache.pulsar.broker.auth.AuthLogsTest" tests="2" errors="0" failures="0" skipped="0" time="1.389"><testcase name="httpEndpoint" time="0.881" classname="org.apache.pulsar.broker.auth.AuthLogsTest" />
<testcase name="binaryEndpoint" time="0.508" classname="org.apache.pulsar.broker.auth.AuthLogsTest" />
</testsuite><testsuite name="org.apache.pulsar.broker.auth.AuthenticationServiceTest" tests="2" errors="0" failures="0" skipped="0" time="0.185"><testcase name="testAuthentication" time="0.005" classname="org.apache.pulsar.broker.auth.AuthenticationServiceTest" />
<testcase name="testAuthenticationHttp" time="0.180" classname="org.apache.pulsar.broker.auth.AuthenticationServiceTest" />
</testsuite><testsuite name="org.apache.pulsar.broker.auth.AuthorizationTest" tests="1" errors="0" failures="0" skipped="0" time="2.384"><testcase name="simple" time="2.384" classname="org.apache.pulsar.broker.auth.AuthorizationTest" />
</testsuite><testsuite name="org.apache.pulsar.broker.lookup.http.HttpTopicLookupv2Test" tests="4" errors="0" failures="0" skipped="0" time="1.93"><testcase name="crossColoLookup" time="0.329" classname="org.apache.pulsar.broker.lookup.http.HttpTopicLookupv2Test" />
<testcase name="testNotEnoughLookupPermits" time="0.015" classname="org.apache.pulsar.broker.lookup.http.HttpTopicLookupv2Test" />
<testcase name="testValidateReplicationSettingsOnNamespace" time="1.575" classname="org.apache.pulsar.broker.lookup.http.HttpTopicLookupv2Test" />
<testcase name="testDataPojo" time="0.011" classname="org.apache.pulsar.broker.lookup.http.HttpTopicLookupv2Test" />
</testsuite><testsuite name="org.apache.pulsar.broker.namespace.NamespaceCreateBundlesTest" tests="2" errors="0" failures="0" skipped="0" time="33.168"><testcase name="testCreateNamespaceWithDefaultBundles" time="23.401" classname="org.apache.pulsar.broker.namespace.NamespaceCreateBundlesTest" />
<testcase name="testSplitBundleUpdatesLocalPoliciesWithoutOverwriting" time="9.767" classname="org.apache.pulsar.broker.namespace.NamespaceCreateBundlesTest" />
</testsuite><testsuite name="org.apache.pulsar.broker.namespace.NamespaceOwnershipListenerTests" tests="2" errors="0" failures="0" skipped="0" time="32.357"><testcase name="testGetAllPartitions" time="23.274" classname="org.apache.pulsar.broker.namespace.NamespaceOwnershipListenerTests" />
<testcase name="testNamespaceBundleOwnershipListener" time="9.083" classname="org.apache.pulsar.broker.namespace.NamespaceOwnershipListenerTests" />
</testsuite><testsuite name="org.apache.pulsar.broker.namespace.NamespaceServiceTest" tests="10" errors="0" failures="0" skipped="0" time="75.27199999999999"><testcase name="testSplitMapWithRefreshedStatMap" time="4.509" classname="org.apache.pulsar.broker.namespace.NamespaceServiceTest" />
<testcase name="testRemoveOwnershipNamespaceBundle" time="4.119" classname="org.apache.pulsar.broker.namespace.NamespaceServiceTest" />
<testcase name="testIsServiceUnitDisabled" time="5.056" classname="org.apache.pulsar.broker.namespace.NamespaceServiceTest" />
<testcase name="testLoadReportDeserialize" time="24.622" classname="org.apache.pulsar.broker.namespace.NamespaceServiceTest" />
<testcase name="testCreateLookupResult" time="6.452" classname="org.apache.pulsar.broker.namespace.NamespaceServiceTest" />
<testcase name="testUnloadNamespaceBundleWithStuckTopic" time="4.463" classname="org.apache.pulsar.broker.namespace.NamespaceServiceTest" />
<testcase name="testUnloadNamespaceBundleFailure" time="7.650" classname="org.apache.pulsar.broker.namespace.NamespaceServiceTest" />
<testcase name="testSplitAndOwnBundles" time="5.071" classname="org.apache.pulsar.broker.namespace.NamespaceServiceTest" />
<testcase name="testCreateNamespaceWithDefaultNumberOfBundles" time="7.515" classname="org.apache.pulsar.broker.namespace.NamespaceServiceTest" />
<testcase name="testRemoveOwnershipAndSplitBundle" time="5.815" classname="org.apache.pulsar.broker.namespace.NamespaceServiceTest" />
</testsuite><testsuite name="org.apache.pulsar.broker.namespace.NamespaceUnloadingTest" tests="2" errors="0" failures="0" skipped="0" time="13.704"><testcase name="testUnloadNotLoadedNamespace" time="7.094" classname="org.apache.pulsar.broker.namespace.NamespaceUnloadingTest" />
<testcase name="testUnloadPartiallyLoadedNamespace" time="6.610" classname="org.apache.pulsar.broker.namespace.NamespaceUnloadingTest" />
</testsuite><testsuite name="org.apache.pulsar.broker.namespace.OwnerShipCacheForCurrentServerTest" tests="1" errors="0" failures="0" skipped="0" time="15.709"><testcase name="testOwnershipForCurrentServer" time="15.709" classname="org.apache.pulsar.broker.namespace.OwnerShipCacheForCurrentServerTest" />
</testsuite><testsuite name="org.apache.pulsar.broker.namespace.OwnershipCacheTest" tests="8" errors="0" failures="0" skipped="0" time="15.749999999999998"><testcase name="testGetOwnedServiceUnits" time="9.397" classname="org.apache.pulsar.broker.namespace.OwnershipCacheTest" />
<testcase name="testRemoveOwnership" time="1.482" classname="org.apache.pulsar.broker.namespace.OwnershipCacheTest" />
<testcase name="testGetOwnedServiceUnit" time="1.036" classname="org.apache.pulsar.broker.namespace.OwnershipCacheTest" />
<testcase name="testGetOrSetOwner" time="1.708" classname="org.apache.pulsar.broker.namespace.OwnershipCacheTest" />
<testcase name="testConstructor" time="0.471" classname="org.apache.pulsar.broker.namespace.OwnershipCacheTest" />
<testcase name="testGetOwner" time="0.492" classname="org.apache.pulsar.broker.namespace.OwnershipCacheTest" />
<testcase name="testDisableOwnership" time="0.669" classname="org.apache.pulsar.broker.namespace.OwnershipCacheTest" />
<testcase name="testReestablishOwnership" time="0.495" classname="org.apache.pulsar.broker.namespace.OwnershipCacheTest" />
</testsuite><testsuite name="org.apache.pulsar.broker.protocol.ProtocolHandlerUtilsTest" tests="3" errors="0" failures="0" skipped="0" time="7.398000000000001"><testcase name="testLoadProtocolHandler" time="7.332" classname="org.apache.pulsar.broker.protocol.ProtocolHandlerUtilsTest" />
<testcase name="testLoadProtocolHandlerBlankHandlerClass" time="0.025" classname="org.apache.pulsar.broker.protocol.ProtocolHandlerUtilsTest" />
<testcase name="testLoadProtocolHandlerWrongHandlerClass" time="0.041" classname="org.apache.pulsar.broker.protocol.ProtocolHandlerUtilsTest" />
</testsuite><testsuite name="org.apache.pulsar.broker.protocol.ProtocolHandlerWithClassLoaderTest" tests="1" errors="0" failures="0" skipped="0" time="0.015"><testcase name="testWrapper" time="0.015" classname="org.apache.pulsar.broker.protocol.ProtocolHandlerWithClassLoaderTest" />
</testsuite><testsuite name="org.apache.pulsar.broker.protocol.ProtocolHandlersTest" tests="6" errors="0" failures="0" skipped="0" time="0.9460000000000001"><testcase name="testStart" time="0.626" classname="org.apache.pulsar.broker.protocol.ProtocolHandlersTest" />
<testcase name="testGetProtocol" time="0.014" classname="org.apache.pulsar.broker.protocol.ProtocolHandlersTest" />
<testcase name="testNewChannelInitializersSuccess" time="0.010" classname="org.apache.pulsar.broker.protocol.ProtocolHandlersTest" />
<testcase name="testInitialize" time="0.020" classname="org.apache.pulsar.broker.protocol.ProtocolHandlersTest" />
<testcase name="testNewChannelInitializersOverlapped" time="0.260" classname="org.apache.pulsar.broker.protocol.ProtocolHandlersTest" />
<testcase name="testGetProtocolDataToAdvertise" time="0.016" classname="org.apache.pulsar.broker.protocol.ProtocolHandlersTest" />
</testsuite><testsuite name="org.apache.pulsar.broker.service.MessagePublishBufferThrottleTest" tests="3" errors="0" failures="0" skipped="0" time="13.83"><testcase name="testMessagePublishBufferThrottleEnable" time="2.305" classname="org.apache.pulsar.broker.service.MessagePublishBufferThrottleTest" />
<testcase name="testBlockByPublishRateLimiting" time="9.449" classname="org.apache.pulsar.broker.service.MessagePublishBufferThrottleTest" />
<testcase name="testMessagePublishBufferThrottleDisabled" time="2.076" classname="org.apache.pulsar.broker.service.MessagePublishBufferThrottleTest" />
</testsuite><testsuite name="org.apache.pulsar.broker.service.ReplicatorTest" tests="22" errors="0" failures="0" skipped="0" time="40.154"><testcase name="testResumptionAfterBacklogRelaxed" time="19.914" classname="org.apache.pulsar.broker.service.ReplicatorTest" />
<testcase name="testReplicationOverrides" time="2.910" classname="org.apache.pulsar.broker.service.ReplicatorTest" />
<testcase name="testResetCursorNotFail" time="0.218" classname="org.apache.pulsar.broker.service.ReplicatorTest" />
<testcase name="testUpdateGlobalTopicPartition" time="0.667" classname="org.apache.pulsar.broker.service.ReplicatorTest" />
<testcase name="testReplication" time="0.429" classname="org.apache.pulsar.broker.service.ReplicatorTest" />
<testcase name="testReplicatorOnPartitionedTopic" time="0.172" classname="org.apache.pulsar.broker.service.ReplicatorTest" />
<testcase name="testConcurrentReplicator" time="4.271" classname="org.apache.pulsar.broker.service.ReplicatorTest" />
<testcase name="testTopicReplicatedAndProducerCreate" time="0.240" classname="org.apache.pulsar.broker.service.ReplicatorTest" />
<testcase name="testDeleteReplicatorFailure" time="0.172" classname="org.apache.pulsar.broker.service.ReplicatorTest" />
<testcase name="testReplicatorOnPartitionedTopic" time="0.145" classname="org.apache.pulsar.broker.service.ReplicatorTest" />
<testcase name="testReplicationForBatchMessages" time="0.324" classname="org.apache.pulsar.broker.service.ReplicatorTest" />
<testcase name="testReplicatorClearBacklog" time="0.428" classname="org.apache.pulsar.broker.service.ReplicatorTest" />
<testcase name="verifyChecksumAfterReplication" time="0.259" classname="org.apache.pulsar.broker.service.ReplicatorTest" />
<testcase name="testCloseReplicatorStartProducer" time="0.369" classname="org.apache.pulsar.broker.service.ReplicatorTest" />
<testcase name="activeBrokerParse" time="0.212" classname="org.apache.pulsar.broker.service.ReplicatorTest" />
<testcase name="testReplicatePeekAndSkip" time="0.241" classname="org.apache.pulsar.broker.service.ReplicatorTest" />
<testcase name="testReplication" time="0.406" classname="org.apache.pulsar.broker.service.ReplicatorTest" />
<testcase name="testReplicatedCluster" time="1.481" classname="org.apache.pulsar.broker.service.ReplicatorTest" />
<testcase name="testTopicReplicatedAndProducerCreate" time="0.372" classname="org.apache.pulsar.broker.service.ReplicatorTest" />
<testcase name="testConfigChange" time="4.446" classname="org.apache.pulsar.broker.service.ReplicatorTest" />
<testcase name="testFailures" time="0.097" classname="org.apache.pulsar.broker.service.ReplicatorTest" />
<testcase name="testReplicatorProducerClosing" time="2.381" classname="org.apache.pulsar.broker.service.ReplicatorTest" />
</testsuite><testsuite name="org.apache.pulsar.broker.service.TopicOwnerTest" tests="8" errors="0" failures="0" skipped="0" time="114.278"><testcase name="testReleaseOwnershipWithZookeeperDisconnectedBeforeOwnershipNodeDeleted" time="13.006" classname="org.apache.pulsar.broker.service.TopicOwnerTest" />
<testcase name="testAcquireOwnershipWithZookeeperDisconnectedAfterOwnershipNodeCreated" time="23.726" classname="org.apache.pulsar.broker.service.TopicOwnerTest" />
<testcase name="testConnectToInvalidateBundleCacheBroker" time="13.213" classname="org.apache.pulsar.broker.service.TopicOwnerTest" />
<testcase name="testAcquireOwnershipWithZookeeperDisconnectedBeforeOwnershipNodeCreated" time="12.847" classname="org.apache.pulsar.broker.service.TopicOwnerTest" />
<testcase name="testLookupPartitionedTopic" time="12.435" classname="org.apache.pulsar.broker.service.TopicOwnerTest" />
<testcase name="testListNonPersistentTopic" time="13.123" classname="org.apache.pulsar.broker.service.TopicOwnerTest" />
<testcase name="testReleaseOwnershipWithZookeeperDisconnectedAfterOwnershipNodeDeleted" time="14.539" classname="org.apache.pulsar.broker.service.TopicOwnerTest" />
<testcase name="testReestablishOwnershipAfterInvalidateCache" time="11.389" classname="org.apache.pulsar.broker.service.TopicOwnerTest" />
</testsuite><testsuite name="org.apache.pulsar.broker.stats.BookieClientsStatsGeneratorTest" tests="2" errors="0" failures="0" skipped="0" time="0.049"><testcase name="testJvmDirectMemoryUsedMetric" time="0.010" classname="org.apache.pulsar.broker.stats.BookieClientsStatsGeneratorTest" />
<testcase name="testBookieClientStatsGenerator" time="0.039" classname="org.apache.pulsar.broker.stats.BookieClientsStatsGeneratorTest" />
</testsuite><testsuite name="org.apache.pulsar.broker.stats.ConsumerStatsTest" tests="3" errors="0" failures="0" skipped="0" time="21.163999999999998"><testcase name="testAckStatsOnPartitionedTopicForExclusiveSubscription" time="7.634" classname="org.apache.pulsar.broker.stats.ConsumerStatsTest" />
<testcase name="testConsumerStatsOnZeroMaxUnackedMessagesPerConsumer" time="8.842" classname="org.apache.pulsar.broker.stats.ConsumerStatsTest" />
<testcase name="testUpdateStatsForActiveConsumerAndSubscription" time="4.688" classname="org.apache.pulsar.broker.stats.ConsumerStatsTest" />
</testsuite><testsuite name="org.apache.pulsar.broker.stats.ManagedCursorMetricsTest" tests="1" errors="0" failures="0" skipped="0" time="0.281"><testcase name="testManagedCursorMetrics" time="0.281" classname="org.apache.pulsar.broker.stats.ManagedCursorMetricsTest" />
</testsuite><testsuite name="org.apache.pulsar.broker.stats.ManagedLedgerMetricsTest" tests="1" errors="0" failures="0" skipped="0" time="0.285"><testcase name="testManagedLedgerMetrics" time="0.285" classname="org.apache.pulsar.broker.stats.ManagedLedgerMetricsTest" />
</testsuite><testsuite name="org.apache.pulsar.broker.stats.PrometheusMetricsTest" tests="15" errors="0" failures="0" skipped="0" time="83.14500000000001"><testcase name="testPerTopicStats" time="5.907" classname="org.apache.pulsar.broker.stats.PrometheusMetricsTest" />
<testcase name="testAuthMetrics" time="5.201" classname="org.apache.pulsar.broker.stats.PrometheusMetricsTest" />
<testcase name="testPerTopicExpiredStat" time="4.695" classname="org.apache.pulsar.broker.stats.PrometheusMetricsTest" />
<testcase name="testPerProducerStats" time="4.859" classname="org.apache.pulsar.broker.stats.PrometheusMetricsTest" />
<testcase name="testMetricsTopicCount" time="4.720" classname="org.apache.pulsar.broker.stats.PrometheusMetricsTest" />
<testcase name="testManagedLedgerBookieClientStats" time="5.617" classname="org.apache.pulsar.broker.stats.PrometheusMetricsTest" />
<testcase name="testDuplicateMetricTypeDefinitions" time="5.377" classname="org.apache.pulsar.broker.stats.PrometheusMetricsTest" />
<testcase name="testExpiringTokenMetrics" time="4.347" classname="org.apache.pulsar.broker.stats.PrometheusMetricsTest" />
<testcase name="testPerConsumerStats" time="12.093" classname="org.apache.pulsar.broker.stats.PrometheusMetricsTest" />
<testcase name="testPerNamespaceStats" time="5.014" classname="org.apache.pulsar.broker.stats.PrometheusMetricsTest" />
<testcase name="testManagedCursorPersistStats" time="5.362" classname="org.apache.pulsar.broker.stats.PrometheusMetricsTest" />
<testcase name="testDuplicateMetricTypeDefinitions" time="4.116" classname="org.apache.pulsar.broker.stats.PrometheusMetricsTest" />
<testcase name="testExpiredTokenMetrics" time="5.405" classname="org.apache.pulsar.broker.stats.PrometheusMetricsTest" />
<testcase name="testManagedLedgerCacheStats" time="5.262" classname="org.apache.pulsar.broker.stats.PrometheusMetricsTest" />
<testcase name="testManagedLedgerStats" time="5.170" classname="org.apache.pulsar.broker.stats.PrometheusMetricsTest" />
</testsuite><testsuite name="org.apache.pulsar.broker.stats.SubscriptionStatsTest" tests="2" errors="0" failures="0" skipped="0" time="1.806"><testcase name="testConsumersAfterMarkDelete" time="1.193" classname="org.apache.pulsar.broker.stats.SubscriptionStatsTest" />
<testcase name="testNonContiguousDeletedMessagesRanges" time="0.613" classname="org.apache.pulsar.broker.stats.SubscriptionStatsTest" />
</testsuite><testsuite name="org.apache.pulsar.broker.stats.prometheus.AggregatedNamespaceStatsTest" tests="1" errors="0" failures="0" skipped="0" time="0.04"><testcase name="testSimpleAggregation" time="0.040" classname="org.apache.pulsar.broker.stats.prometheus.AggregatedNamespaceStatsTest" />
</testsuite><testsuite name="org.apache.pulsar.broker.systopic.NamespaceEventsSystemTopicServiceTest" tests="1" errors="0" failures="0" skipped="0" time="1.043"><testcase name="testSendAndReceiveNamespaceEvents" time="1.043" classname="org.apache.pulsar.broker.systopic.NamespaceEventsSystemTopicServiceTest" />
</testsuite><testsuite name="org.apache.pulsar.broker.transaction.TransactionConsumeTest" tests="2" errors="0" failures="0" skipped="0" time="29.646"><testcase name="noSortedTest" time="25.275" classname="org.apache.pulsar.broker.transaction.TransactionConsumeTest" />
<testcase name="sortedTest" time="4.371" classname="org.apache.pulsar.broker.transaction.TransactionConsumeTest" />
</testsuite><testsuite name="org.apache.pulsar.broker.transaction.buffer.InMemTransactionBufferReaderTest" tests="3" errors="0" failures="0" skipped="0" time="0.028"><testcase name="testCloseReleaseAllEntries" time="0.019" classname="org.apache.pulsar.broker.transaction.buffer.InMemTransactionBufferReaderTest" />
<testcase name="testInvalidNumEntriesArgument" time="0.004" classname="org.apache.pulsar.broker.transaction.buffer.InMemTransactionBufferReaderTest" />
<testcase name="testEndOfTransactionException" time="0.005" classname="org.apache.pulsar.broker.transaction.buffer.InMemTransactionBufferReaderTest" />
</testsuite><testsuite name="org.apache.pulsar.broker.transaction.buffer.TransactionBufferClientTest" tests="4" errors="0" failures="0" skipped="0" time="0.093"><testcase name="testAbortOnTopic" time="0.019" classname="org.apache.pulsar.broker.transaction.buffer.TransactionBufferClientTest" />
<testcase name="testAbortOnSubscription" time="0.037" classname="org.apache.pulsar.broker.transaction.buffer.TransactionBufferClientTest" />
<testcase name="testCommitOnTopic" time="0.020" classname="org.apache.pulsar.broker.transaction.buffer.TransactionBufferClientTest" />
<testcase name="testCommitOnSubscription" time="0.017" classname="org.apache.pulsar.broker.transaction.buffer.TransactionBufferClientTest" />
</testsuite><testsuite name="org.apache.pulsar.broker.transaction.buffer.TransactionBufferTest" tests="7" errors="0" failures="0" skipped="0" time="0.08099999999999999"><testcase name="testOpenReaderOnNonExistentTxn" time="0.009" classname="org.apache.pulsar.broker.transaction.buffer.TransactionBufferTest" />
<testcase name="testAbortCommittedTxn" time="0.015" classname="org.apache.pulsar.broker.transaction.buffer.TransactionBufferTest" />
<testcase name="testAbortTxn" time="0.013" classname="org.apache.pulsar.broker.transaction.buffer.TransactionBufferTest" />
<testcase name="testAbortNonExistentTxn" time="0.009" classname="org.apache.pulsar.broker.transaction.buffer.TransactionBufferTest" />
<testcase name="testCommitNonExistentTxn" time="0.018" classname="org.apache.pulsar.broker.transaction.buffer.TransactionBufferTest" />
<testcase name="testCommitTxn" time="0.009" classname="org.apache.pulsar.broker.transaction.buffer.TransactionBufferTest" />
<testcase name="testOpenReaderOnAnOpenTxn" time="0.008" classname="org.apache.pulsar.broker.transaction.buffer.TransactionBufferTest" />
</testsuite><testsuite name="org.apache.pulsar.broker.transaction.buffer.TransactionEntryImplTest" tests="1" errors="0" failures="0" skipped="0" time="0.014"><testcase name="testCloseShouldReleaseBuffer" time="0.014" classname="org.apache.pulsar.broker.transaction.buffer.TransactionEntryImplTest" />
</testsuite><testsuite name="org.apache.pulsar.broker.transaction.buffer.TransactionLowWaterMarkTest" tests="2" errors="0" failures="0" skipped="0" time="37.577"><testcase name="testTransactionBufferLowWaterMark" time="21.356" classname="org.apache.pulsar.broker.transaction.buffer.TransactionLowWaterMarkTest" />
<testcase name="testPendingAckLowWaterMark" time="16.221" classname="org.apache.pulsar.broker.transaction.buffer.TransactionLowWaterMarkTest" />
</testsuite><testsuite name="org.apache.pulsar.broker.transaction.buffer.TransactionStablePositionTest" tests="3" errors="0" failures="0" skipped="1" time="49.06700000000001"><testcase name="commitTxnTest" time="20.004" classname="org.apache.pulsar.broker.transaction.buffer.TransactionStablePositionTest" />
<testcase name="abortTxnTest" time="15.641" classname="org.apache.pulsar.broker.transaction.buffer.TransactionStablePositionTest" />
<testcase name="commitTxnTest" time="13.422" classname="org.apache.pulsar.broker.transaction.buffer.TransactionStablePositionTest">
<skipped />
</testcase>
</testsuite><testsuite name="org.apache.pulsar.broker.transaction.coordinator.TransactionCoordinatorClientTest" tests="3" errors="0" failures="0" skipped="0" time="0.095"><testcase name="testClientStart" time="0.002" classname="org.apache.pulsar.broker.transaction.coordinator.TransactionCoordinatorClientTest" />
<testcase name="testCommitAndAbort" time="0.080" classname="org.apache.pulsar.broker.transaction.coordinator.TransactionCoordinatorClientTest" />
<testcase name="testNewTxn" time="0.013" classname="org.apache.pulsar.broker.transaction.coordinator.TransactionCoordinatorClientTest" />
</testsuite><testsuite name="org.apache.pulsar.broker.transaction.coordinator.TransactionMetaStoreAssignmentTest" tests="1" errors="0" failures="0" skipped="0" time="1.151"><testcase name="testTransactionMetaStoreAssignAndFailover" time="1.151" classname="org.apache.pulsar.broker.transaction.coordinator.TransactionMetaStoreAssignmentTest" />
</testsuite><testsuite name="org.apache.pulsar.broker.transaction.pendingack.PendingAckInMemoryDeleteTest" tests="3" errors="0" failures="0" skipped="1" time="57.293000000000006"><testcase name="txnAckTestNoBatchAndSharedSubMemoryDeleteTest" time="17.970" classname="org.apache.pulsar.broker.transaction.pendingack.PendingAckInMemoryDeleteTest">
<skipped />
</testcase>
<testcase name="txnAckTestNoBatchAndSharedSubMemoryDeleteTest" time="18.748" classname="org.apache.pulsar.broker.transaction.pendingack.PendingAckInMemoryDeleteTest" />
<testcase name="txnAckTestBatchAndSharedSubMemoryDeleteTest" time="20.575" classname="org.apache.pulsar.broker.transaction.pendingack.PendingAckInMemoryDeleteTest" />
</testsuite><testsuite name="org.apache.pulsar.broker.web.RestExceptionTest" tests="3" errors="0" failures="0" skipped="0" time="0.037000000000000005"><testcase name="testRestException" time="0.008" classname="org.apache.pulsar.broker.web.RestExceptionTest" />
<testcase name="testWebApplicationException" time="0.021" classname="org.apache.pulsar.broker.web.RestExceptionTest" />
<testcase name="testOtherException" time="0.008" classname="org.apache.pulsar.broker.web.RestExceptionTest" />
</testsuite><testsuite name="org.apache.pulsar.broker.web.WebServiceTest" tests="9" errors="0" failures="0" skipped="0" time="27.441999999999997"><testcase name="testTlsAuthDisallowInsecure" time="2.922" classname="org.apache.pulsar.broker.web.WebServiceTest" />
<testcase name="testBrokerReady" time="3.540" classname="org.apache.pulsar.broker.web.WebServiceTest" />
<testcase name="testDefaultClientVersion" time="3.319" classname="org.apache.pulsar.broker.web.WebServiceTest" />
<testcase name="testTlsEnabled" time="2.721" classname="org.apache.pulsar.broker.web.WebServiceTest" />
<testcase name="testTlsAuthAllowInsecure" time="3.783" classname="org.apache.pulsar.broker.web.WebServiceTest" />
<testcase name="testSplitPath" time="0.057" classname="org.apache.pulsar.broker.web.WebServiceTest" />
<testcase name="testMaxRequestSize" time="3.723" classname="org.apache.pulsar.broker.web.WebServiceTest" />
<testcase name="testTlsDisabled" time="2.290" classname="org.apache.pulsar.broker.web.WebServiceTest" />
<testcase name="testRateLimiting" time="5.087" classname="org.apache.pulsar.broker.web.WebServiceTest" />
</testsuite><testsuite name="org.apache.pulsar.client.impl.AdminApiKeyStoreTlsAuthTest" tests="4" errors="0" failures="0" skipped="0" time="8.297"><testcase name="testAuthorizedUserAsOriginalPrincipal" time="3.330" classname="org.apache.pulsar.client.impl.AdminApiKeyStoreTlsAuthTest" />
<testcase name="testSuperUserCantListNamespaces" time="2.045" classname="org.apache.pulsar.client.impl.AdminApiKeyStoreTlsAuthTest" />
<testcase name="testPersistentList" time="1.308" classname="org.apache.pulsar.client.impl.AdminApiKeyStoreTlsAuthTest" />
<testcase name="testSuperUserCanListTenants" time="1.614" classname="org.apache.pulsar.client.impl.AdminApiKeyStoreTlsAuthTest" />
</testsuite><testsuite name="org.apache.pulsar.client.impl.BatchMessageIdImplSerializationTest" tests="4" errors="0" failures="0" skipped="0" time="0.03"><testcase name="testSerializationEmpty" time="0.008" classname="org.apache.pulsar.client.impl.BatchMessageIdImplSerializationTest" />
<testcase name="testSerialization1" time="0.004" classname="org.apache.pulsar.client.impl.BatchMessageIdImplSerializationTest" />
<testcase name="testSerializationNull" time="0.012" classname="org.apache.pulsar.client.impl.BatchMessageIdImplSerializationTest" />
<testcase name="testSerialization2" time="0.006" classname="org.apache.pulsar.client.impl.BatchMessageIdImplSerializationTest" />
</testsuite><testsuite name="org.apache.pulsar.client.impl.BatchMessageIndexAckDisableTest" tests="4" errors="0" failures="0" skipped="0" time="13.732"><testcase name="testBatchMessageIndexAckForExclusiveSubscription" time="2.747" classname="org.apache.pulsar.client.impl.BatchMessageIndexAckDisableTest" />
<testcase name="testBatchMessageIndexAckForSharedSubscription" time="5.341" classname="org.apache.pulsar.client.impl.BatchMessageIndexAckDisableTest" />
<testcase name="testBatchMessageIndexAckForExclusiveSubscription" time="2.377" classname="org.apache.pulsar.client.impl.BatchMessageIndexAckDisableTest" />
<testcase name="testBatchMessageIndexAckForSharedSubscription" time="3.267" classname="org.apache.pulsar.client.impl.BatchMessageIndexAckDisableTest" />
</testsuite><testsuite name="org.apache.pulsar.client.impl.BatchMessageIndexAckTest" tests="5" errors="0" failures="0" skipped="0" time="43.856"><testcase name="testBatchMessageIndexAckForSharedSubscription" time="23.212" classname="org.apache.pulsar.client.impl.BatchMessageIndexAckTest" />
<testcase name="testBatchMessageIndexAckForSharedSubscription" time="10.423" classname="org.apache.pulsar.client.impl.BatchMessageIndexAckTest" />
<testcase name="testDoNotRecycleAckSetMultipleTimes" time="2.170" classname="org.apache.pulsar.client.impl.BatchMessageIndexAckTest" />
<testcase name="testBatchMessageIndexAckForExclusiveSubscription" time="3.536" classname="org.apache.pulsar.client.impl.BatchMessageIndexAckTest" />
<testcase name="testBatchMessageIndexAckForExclusiveSubscription" time="4.515" classname="org.apache.pulsar.client.impl.BatchMessageIndexAckTest" />
</testsuite><testsuite name="org.apache.pulsar.client.impl.BrokerClientIntegrationTest" tests="15" errors="0" failures="0" skipped="0" time="148.203"><testcase name="testDisconnectClientWithoutClosingConnection" time="7.392" classname="org.apache.pulsar.client.impl.BrokerClientIntegrationTest" />
<testcase name="testResetCursor" time="16.341" classname="org.apache.pulsar.client.impl.BrokerClientIntegrationTest" />
<testcase name="testResetCursor" time="14.139" classname="org.apache.pulsar.client.impl.BrokerClientIntegrationTest" />
<testcase name="testCloseBrokerService" time="4.907" classname="org.apache.pulsar.client.impl.BrokerClientIntegrationTest" />
<testcase name="testUnsupportedBatchMessageConsumer" time="4.583" classname="org.apache.pulsar.client.impl.BrokerClientIntegrationTest" />
<testcase name="testAvroSchemaProducerConsumerWithSpecifiedReaderAndWriter" time="3.143" classname="org.apache.pulsar.client.impl.BrokerClientIntegrationTest" />
<testcase name="testJsonSchemaProducerConsumerWithSpecifiedReaderAndWriter" time="5.881" classname="org.apache.pulsar.client.impl.BrokerClientIntegrationTest" />
<testcase name="testOperationTimeout" time="8.547" classname="org.apache.pulsar.client.impl.BrokerClientIntegrationTest" />
<testcase name="testCleanProducer" time="2.767" classname="org.apache.pulsar.client.impl.BrokerClientIntegrationTest" />
<testcase name="testUnsupportedBatchMessageConsumer" time="4.531" classname="org.apache.pulsar.client.impl.BrokerClientIntegrationTest" />
<testcase name="testCloseConnectionOnBrokerRejectedRequest" time="34.542" classname="org.apache.pulsar.client.impl.BrokerClientIntegrationTest" />
<testcase name="testAddEntryOperationTimeout" time="12.747" classname="org.apache.pulsar.client.impl.BrokerClientIntegrationTest" />
<testcase name="testInvalidDynamicConfiguration" time="5.098" classname="org.apache.pulsar.client.impl.BrokerClientIntegrationTest" />
<testcase name="testMaxConcurrentTopicLoading" time="12.357" classname="org.apache.pulsar.client.impl.BrokerClientIntegrationTest" />
<testcase name="testCloseConnectionOnInternalServerError" time="11.228" classname="org.apache.pulsar.client.impl.BrokerClientIntegrationTest" />
</testsuite><testsuite name="org.apache.pulsar.client.impl.CompactedOutBatchMessageTest" tests="1" errors="0" failures="0" skipped="0" time="1.385"><testcase name="testCompactedOutMessages" time="1.385" classname="org.apache.pulsar.client.impl.CompactedOutBatchMessageTest" />
</testsuite><testsuite name="org.apache.pulsar.client.impl.ConsumerAckResponseTest" tests="1" errors="0" failures="0" skipped="0" time="0.549"><testcase name="testAckResponse" time="0.549" classname="org.apache.pulsar.client.impl.ConsumerAckResponseTest" />
</testsuite><testsuite name="org.apache.pulsar.client.impl.ConsumerConfigurationTest" tests="4" errors="0" failures="0" skipped="0" time="12.164"><testcase name="testReadCompactNonPersistentExclusive" time="1.617" classname="org.apache.pulsar.client.impl.ConsumerConfigurationTest" />
<testcase name="testReadCompactPersistentExclusive" time="5.143" classname="org.apache.pulsar.client.impl.ConsumerConfigurationTest" />
<testcase name="testReadCompactPersistentFailover" time="2.083" classname="org.apache.pulsar.client.impl.ConsumerConfigurationTest" />
<testcase name="testReadCompactPersistentShared" time="3.321" classname="org.apache.pulsar.client.impl.ConsumerConfigurationTest" />
</testsuite><testsuite name="org.apache.pulsar.client.impl.ConsumerDedupPermitsUpdate" tests="7" errors="0" failures="0" skipped="0" time="3.5220000000000002"><testcase name="testConsumerDedup" time="0.992" classname="org.apache.pulsar.client.impl.ConsumerDedupPermitsUpdate" />
<testcase name="testConsumerDedup" time="0.409" classname="org.apache.pulsar.client.impl.ConsumerDedupPermitsUpdate" />
<testcase name="testConsumerDedup" time="0.286" classname="org.apache.pulsar.client.impl.ConsumerDedupPermitsUpdate" />
<testcase name="testConsumerDedup" time="0.832" classname="org.apache.pulsar.client.impl.ConsumerDedupPermitsUpdate" />
<testcase name="testConsumerDedup" time="0.385" classname="org.apache.pulsar.client.impl.ConsumerDedupPermitsUpdate" />
<testcase name="testConsumerDedup" time="0.317" classname="org.apache.pulsar.client.impl.ConsumerDedupPermitsUpdate" />
<testcase name="testConsumerDedup" time="0.301" classname="org.apache.pulsar.client.impl.ConsumerDedupPermitsUpdate" />
</testsuite><testsuite name="org.apache.pulsar.client.impl.ConsumerUnsubscribeTest" tests="1" errors="0" failures="0" skipped="0" time="0.129"><testcase name="testConsumerUnsubscribeReference" time="0.129" classname="org.apache.pulsar.client.impl.ConsumerUnsubscribeTest" />
</testsuite><testsuite name="org.apache.pulsar.client.impl.KeyStoreTlsProducerConsumerTestWithAuth" tests="3" errors="0" failures="0" skipped="0" time="23.461"><testcase name="testTlsClientAuthOverHTTPProtocol" time="8.453" classname="org.apache.pulsar.client.impl.KeyStoreTlsProducerConsumerTestWithAuth" />
<testcase name="testTlsClientAuthOverBinaryProtocol" time="8.058" classname="org.apache.pulsar.client.impl.KeyStoreTlsProducerConsumerTestWithAuth" />
<testcase name="testTlsLargeSizeMessage" time="6.950" classname="org.apache.pulsar.client.impl.KeyStoreTlsProducerConsumerTestWithAuth" />
</testsuite><testsuite name="org.apache.pulsar.client.impl.KeyStoreTlsProducerConsumerTestWithoutAuth" tests="3" errors="0" failures="0" skipped="0" time="7.675000000000001"><testcase name="testTlsClientAuthOverHTTPProtocol" time="3.119" classname="org.apache.pulsar.client.impl.KeyStoreTlsProducerConsumerTestWithoutAuth" />
<testcase name="testTlsClientAuthOverBinaryProtocol" time="3.273" classname="org.apache.pulsar.client.impl.KeyStoreTlsProducerConsumerTestWithoutAuth" />
<testcase name="testTlsLargeSizeMessage" time="1.283" classname="org.apache.pulsar.client.impl.KeyStoreTlsProducerConsumerTestWithoutAuth" />
</testsuite><testsuite name="org.apache.pulsar.client.impl.KeyStoreTlsTest" tests="1" errors="0" failures="0" skipped="0" time="0.183"><testcase name="testValidate" time="0.183" classname="org.apache.pulsar.client.impl.KeyStoreTlsTest" />
</testsuite><testsuite name="org.apache.pulsar.client.impl.MessageChecksumTest" tests="3" errors="0" failures="0" skipped="0" time="46.69"><testcase name="testChecksumCompatibilityInMixedVersionBrokerCluster" time="6.984" classname="org.apache.pulsar.client.impl.MessageChecksumTest" />
<testcase name="testTamperingMessageIsDetected" time="7.026" classname="org.apache.pulsar.client.impl.MessageChecksumTest" />
<testcase name="testChecksumCompatibilityInMixedVersionBrokerCluster" time="32.680" classname="org.apache.pulsar.client.impl.MessageChecksumTest" />
</testsuite><testsuite name="org.apache.pulsar.client.impl.MessageChunkingTest" tests="9" errors="0" failures="0" skipped="1" time="73.214"><testcase name="testPublishWithFailure" time="33.462" classname="org.apache.pulsar.client.impl.MessageChunkingTest" />
<testcase name="testInvalidUseCaseForChunking" time="3.386" classname="org.apache.pulsar.client.impl.MessageChunkingTest" />
<testcase name="testLargeMessage" time="4.229" classname="org.apache.pulsar.client.impl.MessageChunkingTest" />
<testcase name="testExpireIncompleteChunkMessage" time="5.612" classname="org.apache.pulsar.client.impl.MessageChunkingTest" />
<testcase name="testInvalidConfig" time="4.418" classname="org.apache.pulsar.client.impl.MessageChunkingTest" />
<testcase name="testLargeMessageAckTimeOut" time="8.543" classname="org.apache.pulsar.client.impl.MessageChunkingTest" />
<testcase name="testLargeMessageAckTimeOut" time="9.006" classname="org.apache.pulsar.client.impl.MessageChunkingTest" />
<testcase name="testLargeMessage" time="4.558" classname="org.apache.pulsar.client.impl.MessageChunkingTest" />
<testcase name="testMaxPendingChunkMessages" classname="org.apache.pulsar.client.impl.MessageChunkingTest">
<skipped />
</testcase>
</testsuite><testsuite name="org.apache.pulsar.client.impl.MessageParserTest" tests="2" errors="0" failures="0" skipped="0" time="5.484999999999999"><testcase name="testWithoutBatches" time="3.268" classname="org.apache.pulsar.client.impl.MessageParserTest" />
<testcase name="testWithBatches" time="2.217" classname="org.apache.pulsar.client.impl.MessageParserTest" />
</testsuite><testsuite name="org.apache.pulsar.client.impl.MultiTopicsReaderTest" tests="8" errors="0" failures="0" skipped="0" time="35.143"><testcase name="testReadMessageWithBatchingWithMessageInclusive" time="3.375" classname="org.apache.pulsar.client.impl.MultiTopicsReaderTest" />
<testcase name="testKeyHashRangeReader" time="4.126" classname="org.apache.pulsar.client.impl.MultiTopicsReaderTest" />
<testcase name="testRemoveSubscriptionForReaderNeedRemoveCursor" time="2.702" classname="org.apache.pulsar.client.impl.MultiTopicsReaderTest" />
<testcase name="testReadMessageWithBatching" time="2.961" classname="org.apache.pulsar.client.impl.MultiTopicsReaderTest" />
<testcase name="testReadMessageWithoutBatchingWithMessageInclusive" time="3.025" classname="org.apache.pulsar.client.impl.MultiTopicsReaderTest" />
<testcase name="testMultiReaderSeek" time="3.024" classname="org.apache.pulsar.client.impl.MultiTopicsReaderTest" />
<testcase name="testReadMessageWithoutBatching" time="3.572" classname="org.apache.pulsar.client.impl.MultiTopicsReaderTest" />
<testcase name="testReaderWithTimeLong" time="12.358" classname="org.apache.pulsar.client.impl.MultiTopicsReaderTest" />
</testsuite><testsuite name="org.apache.pulsar.client.impl.NegativeAcksTest" tests="32" errors="0" failures="0" skipped="0" time="10.661999999999999"><testcase name="testNegativeAcks" time="0.306" classname="org.apache.pulsar.client.impl.NegativeAcksTest" />
<testcase name="testNegativeAcks" time="0.306" classname="org.apache.pulsar.client.impl.NegativeAcksTest" />
<testcase name="testNegativeAcks" time="0.251" classname="org.apache.pulsar.client.impl.NegativeAcksTest" />
<testcase name="testNegativeAcks" time="0.275" classname="org.apache.pulsar.client.impl.NegativeAcksTest" />
<testcase name="testNegativeAcks" time="0.334" classname="org.apache.pulsar.client.impl.NegativeAcksTest" />
<testcase name="testNegativeAcks" time="0.293" classname="org.apache.pulsar.client.impl.NegativeAcksTest" />
<testcase name="testNegativeAcks" time="0.401" classname="org.apache.pulsar.client.impl.NegativeAcksTest" />
<testcase name="testNegativeAcks" time="0.691" classname="org.apache.pulsar.client.impl.NegativeAcksTest" />
<testcase name="testNegativeAcks" time="0.296" classname="org.apache.pulsar.client.impl.NegativeAcksTest" />
<testcase name="testNegativeAcks" time="0.385" classname="org.apache.pulsar.client.impl.NegativeAcksTest" />
<testcase name="testNegativeAcks" time="0.318" classname="org.apache.pulsar.client.impl.NegativeAcksTest" />
<testcase name="testNegativeAcks" time="0.370" classname="org.apache.pulsar.client.impl.NegativeAcksTest" />
<testcase name="testNegativeAcks" time="0.344" classname="org.apache.pulsar.client.impl.NegativeAcksTest" />
<testcase name="testNegativeAcks" time="0.343" classname="org.apache.pulsar.client.impl.NegativeAcksTest" />
<testcase name="testNegativeAcks" time="0.312" classname="org.apache.pulsar.client.impl.NegativeAcksTest" />
<testcase name="testNegativeAcks" time="0.307" classname="org.apache.pulsar.client.impl.NegativeAcksTest" />
<testcase name="testNegativeAcks" time="0.322" classname="org.apache.pulsar.client.impl.NegativeAcksTest" />
<testcase name="testNegativeAcks" time="0.308" classname="org.apache.pulsar.client.impl.NegativeAcksTest" />
<testcase name="testNegativeAcks" time="0.293" classname="org.apache.pulsar.client.impl.NegativeAcksTest" />
<testcase name="testNegativeAcks" time="0.420" classname="org.apache.pulsar.client.impl.NegativeAcksTest" />
<testcase name="testNegativeAcks" time="0.406" classname="org.apache.pulsar.client.impl.NegativeAcksTest" />
<testcase name="testNegativeAcks" time="0.330" classname="org.apache.pulsar.client.impl.NegativeAcksTest" />
<testcase name="testNegativeAcks" time="0.307" classname="org.apache.pulsar.client.impl.NegativeAcksTest" />
<testcase name="testNegativeAcks" time="0.308" classname="org.apache.pulsar.client.impl.NegativeAcksTest" />
<testcase name="testNegativeAcks" time="0.274" classname="org.apache.pulsar.client.impl.NegativeAcksTest" />
<testcase name="testNegativeAcks" time="0.270" classname="org.apache.pulsar.client.impl.NegativeAcksTest" />
<testcase name="testNegativeAcks" time="0.344" classname="org.apache.pulsar.client.impl.NegativeAcksTest" />
<testcase name="testNegativeAcks" time="0.289" classname="org.apache.pulsar.client.impl.NegativeAcksTest" />
<testcase name="testNegativeAcks" time="0.321" classname="org.apache.pulsar.client.impl.NegativeAcksTest" />
<testcase name="testNegativeAcks" time="0.307" classname="org.apache.pulsar.client.impl.NegativeAcksTest" />
<testcase name="testNegativeAcks" time="0.318" classname="org.apache.pulsar.client.impl.NegativeAcksTest" />
<testcase name="testNegativeAcks" time="0.313" classname="org.apache.pulsar.client.impl.NegativeAcksTest" />
</testsuite><testsuite name="org.apache.pulsar.client.impl.PatternTopicsConsumerImplTest" tests="11" errors="0" failures="0" skipped="0" time="62.62"><testcase name="testStartEmptyPatternConsumer" time="7.254" classname="org.apache.pulsar.client.impl.PatternTopicsConsumerImplTest" />
<testcase name="testBinaryProtoToGetTopicsOfNamespaceAll" time="5.205" classname="org.apache.pulsar.client.impl.PatternTopicsConsumerImplTest" />
<testcase name="testPatternTopicsSubscribeWithBuilderFail" time="2.329" classname="org.apache.pulsar.client.impl.PatternTopicsConsumerImplTest" />
<testcase name="testPubRateOnNonPersistent" time="10.899" classname="org.apache.pulsar.client.impl.PatternTopicsConsumerImplTest" />
<testcase name="testTopicDeletion" time="4.834" classname="org.apache.pulsar.client.impl.PatternTopicsConsumerImplTest" />
<testcase name="testAutoUnbubscribePatternConsumer" time="6.349" classname="org.apache.pulsar.client.impl.PatternTopicsConsumerImplTest" />
<testcase name="testTopicsPatternFilter" time="3.481" classname="org.apache.pulsar.client.impl.PatternTopicsConsumerImplTest" />
<testcase name="testBinaryProtoToGetTopicsOfNamespaceNonPersistent" time="5.179" classname="org.apache.pulsar.client.impl.PatternTopicsConsumerImplTest" />
<testcase name="testBinaryProtoToGetTopicsOfNamespacePersistent" time="2.716" classname="org.apache.pulsar.client.impl.PatternTopicsConsumerImplTest" />
<testcase name="testTopicsListMinus" time="7.952" classname="org.apache.pulsar.client.impl.PatternTopicsConsumerImplTest" />
<testcase name="testAutoSubscribePatternConsumer" time="6.422" classname="org.apache.pulsar.client.impl.PatternTopicsConsumerImplTest" />
</testsuite><testsuite name="org.apache.pulsar.client.impl.PerMessageUnAcknowledgedRedeliveryTest" tests="5" errors="0" failures="0" skipped="0" time="33.504"><testcase name="testSharedAckedNormalTopic" time="8.135" classname="org.apache.pulsar.client.impl.PerMessageUnAcknowledgedRedeliveryTest" />
<testcase name="testUnAckedMessageTrackerSize" time="4.256" classname="org.apache.pulsar.client.impl.PerMessageUnAcknowledgedRedeliveryTest" />
<testcase name="testSharedAckedPartitionedTopic" time="6.138" classname="org.apache.pulsar.client.impl.PerMessageUnAcknowledgedRedeliveryTest" />
<testcase name="testExclusiveAckedNormalTopic" time="7.381" classname="org.apache.pulsar.client.impl.PerMessageUnAcknowledgedRedeliveryTest" />
<testcase name="testFailoverAckedNormalTopic" time="7.594" classname="org.apache.pulsar.client.impl.PerMessageUnAcknowledgedRedeliveryTest" />
</testsuite><testsuite name="org.apache.pulsar.client.impl.PulsarMultiHostClientTest" tests="3" errors="0" failures="0" skipped="0" time="15.314"><testcase name="testMultiHostUrlRetrySuccess" time="3.646" classname="org.apache.pulsar.client.impl.PulsarMultiHostClientTest" />
<testcase name="testGetPartitionedTopicDataTimeout" time="5.677" classname="org.apache.pulsar.client.impl.PulsarMultiHostClientTest" />
<testcase name="testGetPartitionedTopicMetaData" time="5.991" classname="org.apache.pulsar.client.impl.PulsarMultiHostClientTest" />
</testsuite><testsuite name="org.apache.pulsar.client.impl.RawMessageSerDeserTest" tests="1" errors="0" failures="0" skipped="0" time="0.01"><testcase name="testSerializationAndDeserialization" time="0.010" classname="org.apache.pulsar.client.impl.RawMessageSerDeserTest" />
</testsuite><testsuite name="org.apache.pulsar.client.impl.SchemaDeleteTest" tests="1" errors="0" failures="0" skipped="0" time="1.937"><testcase name="createTopicDeleteTopicCreateTopic" time="1.937" classname="org.apache.pulsar.client.impl.SchemaDeleteTest" />
</testsuite><testsuite name="org.apache.pulsar.client.impl.SequenceIdWithErrorTest" tests="5" errors="0" failures="0" skipped="2" time="17.976"><testcase name="testCheckSequenceId" time="4.085" classname="org.apache.pulsar.client.impl.SequenceIdWithErrorTest" />
<testcase name="testDeleteTopicWithMissingData" time="5.987" classname="org.apache.pulsar.client.impl.SequenceIdWithErrorTest" />
<testcase name="testTopicWithWildCardChar" time="7.904" classname="org.apache.pulsar.client.impl.SequenceIdWithErrorTest" />
<testcase name="testCrashBrokerWithoutCursorLedgerLeak" classname="org.apache.pulsar.client.impl.SequenceIdWithErrorTest">
<skipped />
</testcase>
<testcase name="testSkipCorruptDataLedger" classname="org.apache.pulsar.client.impl.SequenceIdWithErrorTest">
<skipped />
</testcase>
</testsuite><testsuite name="org.apache.pulsar.client.impl.TopicDoesNotExistsTest" tests="2" errors="0" failures="0" skipped="0" time="4.053"><testcase name="testCreateConsumerOnNotExistsTopic" time="2.030" classname="org.apache.pulsar.client.impl.TopicDoesNotExistsTest" />
<testcase name="testCreateProducerOnNotExistsTopic" time="2.023" classname="org.apache.pulsar.client.impl.TopicDoesNotExistsTest" />
</testsuite><testsuite name="org.apache.pulsar.client.impl.TopicFromMessageTest" tests="5" errors="0" failures="0" skipped="0" time="13.659"><testcase name="testSingleTopicConsumerNoBatchFullName" time="2.554" classname="org.apache.pulsar.client.impl.TopicFromMessageTest" />
<testcase name="testMultiTopicConsumerBatchShortName" time="2.488" classname="org.apache.pulsar.client.impl.TopicFromMessageTest" />
<testcase name="testSingleTopicConsumerNoBatchShortName" time="2.704" classname="org.apache.pulsar.client.impl.TopicFromMessageTest" />
<testcase name="testMultiTopicConsumerNoBatchShortName" time="3.400" classname="org.apache.pulsar.client.impl.TopicFromMessageTest" />
<testcase name="testSingleTopicConsumerBatchShortName" time="2.513" classname="org.apache.pulsar.client.impl.TopicFromMessageTest" />
</testsuite><testsuite name="org.apache.pulsar.client.impl.TopicsConsumerImplTest" tests="17" errors="0" failures="0" skipped="0" time="133.44500000000002"><testcase name="testTopicAutoUpdatePartitions" time="5.573" classname="org.apache.pulsar.client.impl.TopicsConsumerImplTest" />
<testcase name="testDifferentTopicsNameSubscribe" time="3.010" classname="org.apache.pulsar.client.impl.TopicsConsumerImplTest" />
<testcase name="testGetLastMessageId" time="5.249" classname="org.apache.pulsar.client.impl.TopicsConsumerImplTest" />
<testcase name="testConsumerUnackedRedelivery" time="17.692" classname="org.apache.pulsar.client.impl.TopicsConsumerImplTest" />
<testcase name="testSubscriptionMustCompleteWhenOperationTimeoutOnMultipleTopics" time="5.704" classname="org.apache.pulsar.client.impl.TopicsConsumerImplTest" />
<testcase name="testConsumerDistributionInFailoverSubscriptionWhenUpdatePartitions" time="2.862" classname="org.apache.pulsar.client.impl.TopicsConsumerImplTest" />
<testcase name="multiTopicsInDifferentNameSpace" time="8.198" classname="org.apache.pulsar.client.impl.TopicsConsumerImplTest" />
<testcase name="testDefaultBacklogTTL" time="10.677" classname="org.apache.pulsar.client.impl.TopicsConsumerImplTest" />
<testcase name="testGetConsumersAndGetTopics" time="6.497" classname="org.apache.pulsar.client.impl.TopicsConsumerImplTest" />
<testcase name="testSubscribeUnsubscribeSingleTopic" time="4.287" classname="org.apache.pulsar.client.impl.TopicsConsumerImplTest" />
<testcase name="testResubscribeSameTopic" time="6.183" classname="org.apache.pulsar.client.impl.TopicsConsumerImplTest" />
<testcase name="testSyncProducerAndConsumer" time="4.209" classname="org.apache.pulsar.client.impl.TopicsConsumerImplTest" />
<testcase name="testPartitionsUpdatesForMultipleTopics" time="5.657" classname="org.apache.pulsar.client.impl.TopicsConsumerImplTest" />
<testcase name="testTopicsNameSubscribeWithBuilderFail" time="2.639" classname="org.apache.pulsar.client.impl.TopicsConsumerImplTest" />
<testcase name="testMultiTopicsMessageListener" time="8.150" classname="org.apache.pulsar.client.impl.TopicsConsumerImplTest" />
<testcase name="testTopicNameValid" time="6.882" classname="org.apache.pulsar.client.impl.TopicsConsumerImplTest" />
<testcase name="testAsyncConsumer" time="29.976" classname="org.apache.pulsar.client.impl.TopicsConsumerImplTest" />
</testsuite><testsuite name="org.apache.pulsar.client.impl.UnAcknowledgedMessagesTimeoutTest" tests="7" errors="0" failures="0" skipped="0" time="43.828"><testcase name="testCheckUnAcknowledgedMessageTimer" time="8.669" classname="org.apache.pulsar.client.impl.UnAcknowledgedMessagesTimeoutTest" />
<testcase name="testExclusiveSingleAckedNormalTopic" time="5.291" classname="org.apache.pulsar.client.impl.UnAcknowledgedMessagesTimeoutTest" />
<testcase name="testFailoverSingleAckedPartitionedTopic" time="7.119" classname="org.apache.pulsar.client.impl.UnAcknowledgedMessagesTimeoutTest" />
<testcase name="testSharedSingleAckedPartitionedTopic" time="12.054" classname="org.apache.pulsar.client.impl.UnAcknowledgedMessagesTimeoutTest" />
<testcase name="testAckTimeoutMinValue" time="2.075" classname="org.apache.pulsar.client.impl.UnAcknowledgedMessagesTimeoutTest" />
<testcase name="testExclusiveCumulativeAckedNormalTopic" time="6.772" classname="org.apache.pulsar.client.impl.UnAcknowledgedMessagesTimeoutTest" />
<testcase name="testSingleMessageBatch" time="1.848" classname="org.apache.pulsar.client.impl.UnAcknowledgedMessagesTimeoutTest" />
</testsuite><testsuite name="org.apache.pulsar.client.impl.ZeroQueueSizeTest" tests="14" errors="0" failures="0" skipped="0" time="15.712"><testcase name="zeroQueueSizeSharedSubscription" time="0.197" classname="org.apache.pulsar.client.impl.ZeroQueueSizeTest" />
<testcase name="testPauseAndResume" time="2.574" classname="org.apache.pulsar.client.impl.ZeroQueueSizeTest" />
<testcase name="testZeroQueueSizeMessageRedeliveryForAsyncReceive" time="2.155" classname="org.apache.pulsar.client.impl.ZeroQueueSizeTest" />
<testcase name="zeroQueueSizeConsumerListener" time="0.139" classname="org.apache.pulsar.client.impl.ZeroQueueSizeTest" />
<testcase name="zeroQueueSizeFailoverSubscription" time="0.227" classname="org.apache.pulsar.client.impl.ZeroQueueSizeTest" />
<testcase name="validQueueSizeConfig" time="0.013" classname="org.apache.pulsar.client.impl.ZeroQueueSizeTest" />
<testcase name="zeroQueueSizeNormalConsumer" time="0.123" classname="org.apache.pulsar.client.impl.ZeroQueueSizeTest" />
<testcase name="zeroQueueSizeReceieveAsyncInCompatibility" time="0.037" classname="org.apache.pulsar.client.impl.ZeroQueueSizeTest" />
<testcase name="InvalidQueueSizeConfig" time="0.139" classname="org.apache.pulsar.client.impl.ZeroQueueSizeTest" />
<testcase name="testZeroQueueSizeMessageRedeliveryForListener" time="2.206" classname="org.apache.pulsar.client.impl.ZeroQueueSizeTest" />
<testcase name="testZeroQueueSizeMessageRedelivery" time="2.227" classname="org.apache.pulsar.client.impl.ZeroQueueSizeTest" />
<testcase name="zeroQueueSizePartitionedTopicInCompatibility" time="0.161" classname="org.apache.pulsar.client.impl.ZeroQueueSizeTest" />
<testcase name="testFailedZeroQueueSizeBatchMessage" time="3.302" classname="org.apache.pulsar.client.impl.ZeroQueueSizeTest" />
<testcase name="testPauseAndResumeWithUnloading" time="2.212" classname="org.apache.pulsar.client.impl.ZeroQueueSizeTest" />
</testsuite><testsuite name="org.apache.pulsar.common.api.raw.RawMessageImplTest" tests="1" errors="0" failures="0" skipped="0" time="0.316"><testcase name="testGetProperties" time="0.316" classname="org.apache.pulsar.common.api.raw.RawMessageImplTest" />
</testsuite><testsuite name="org.apache.pulsar.common.compression.CommandsTest" tests="1" errors="0" failures="0" skipped="0" time="0.03"><testcase name="testChecksumSendCommand" time="0.030" classname="org.apache.pulsar.common.compression.CommandsTest" />
</testsuite><testsuite name="org.apache.pulsar.common.compression.CompressorCodecBackwardCompatTest" tests="6" errors="0" failures="0" skipped="0" time="0.22300000000000003"><testcase name="testCompressDecompress" time="0.130" classname="org.apache.pulsar.common.compression.CompressorCodecBackwardCompatTest" />
<testcase name="testCompressDecompress" time="0.019" classname="org.apache.pulsar.common.compression.CompressorCodecBackwardCompatTest" />
<testcase name="testCompressDecompress" time="0.013" classname="org.apache.pulsar.common.compression.CompressorCodecBackwardCompatTest" />
<testcase name="testCompressDecompress" time="0.043" classname="org.apache.pulsar.common.compression.CompressorCodecBackwardCompatTest" />
<testcase name="testCompressDecompress" time="0.011" classname="org.apache.pulsar.common.compression.CompressorCodecBackwardCompatTest" />
<testcase name="testCompressDecompress" time="0.007" classname="org.apache.pulsar.common.compression.CompressorCodecBackwardCompatTest" />
</testsuite><testsuite name="org.apache.pulsar.common.compression.CompressorCodecTest" tests="45" errors="0" failures="0" skipped="0" time="0.7370000000000004"><testcase name="testCompressDecompress" time="0.040" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testMultpileUsages" time="0.015" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testMultpileUsages" time="0.002" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testCompressDecompress" time="0.055" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testMultpileUsages" time="0.013" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testCompressDecompress" time="0.018" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testMultpileUsages" time="0.037" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testCompressDecompress" time="0.008" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testDecompressFromSampleBuffer" time="0.018" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testDecompressReadonlyByteBuf" time="0.026" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testDecompressReadonlyByteBuf" time="0.006" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testCodecProvider" time="0.029" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testEmptyInput" time="0.011" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testEmptyInput" time="0.006" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testCompressDecompress" time="0.022" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testCodecProvider" time="0.010" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testDecompressFromSampleBuffer" time="0.010" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testMultpileUsages" time="0.012" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testCodecProvider" time="0.030" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testEmptyInput" time="0.005" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testDecompressReadonlyByteBuf" time="0.011" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testCompressDecompress" time="0.011" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testDecompressReadonlyByteBuf" time="0.019" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testCompressDecompress" time="0.020" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testCompressDecompress" time="0.004" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testMultpileUsages" time="0.002" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testEmptyInput" time="0.011" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testDecompressReadonlyByteBuf" time="0.007" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testDecompressFromSampleBuffer" time="0.018" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testDecompressFromSampleBuffer" time="0.014" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testDecompressFromSampleBuffer" time="0.016" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testDecompressReadonlyByteBuf" time="0.032" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testDecompressReadonlyByteBuf" time="0.018" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testMultpileUsages" time="0.032" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testCompressDecompress" time="0.023" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testCodecProvider" time="0.017" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testMultpileUsages" time="0.001" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testCompressDecompress" time="0.020" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testMultpileUsages" time="0.003" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testDecompressReadonlyByteBuf" time="0.009" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testEmptyInput" time="0.017" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testCodecProvider" time="0.011" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testDecompressReadonlyByteBuf" time="0.035" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testDecompressReadonlyByteBuf" time="0.012" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
<testcase name="testMultpileUsages" time="0.001" classname="org.apache.pulsar.common.compression.CompressorCodecTest" />
</testsuite><testsuite name="org.apache.pulsar.common.compression.Crc32cChecksumTest" tests="6" errors="0" failures="0" skipped="0" time="5.4030000000000005"><testcase name="testCrc32cHardware" time="0.012" classname="org.apache.pulsar.common.compression.Crc32cChecksumTest" />
<testcase name="testCrc32cDirectMemoryHardware" time="0.061" classname="org.apache.pulsar.common.compression.Crc32cChecksumTest" />
<testcase name="testCrc32c" time="0.014" classname="org.apache.pulsar.common.compression.Crc32cChecksumTest" />
<testcase name="testCrc32cSoftware" time="0.011" classname="org.apache.pulsar.common.compression.Crc32cChecksumTest" />
<testcase name="testCrc32cIncremental" time="5.296" classname="org.apache.pulsar.common.compression.Crc32cChecksumTest" />
<testcase name="testCrc32cIncrementalUsingProvider" time="0.009" classname="org.apache.pulsar.common.compression.Crc32cChecksumTest" />
</testsuite><testsuite name="org.apache.pulsar.common.lookup.data.LookupDataTest" tests="4" errors="0" failures="0" skipped="0" time="1.53"><testcase name="testLoadReportSerialization" time="0.456" classname="org.apache.pulsar.common.lookup.data.LookupDataTest" />
<testcase name="testUrlEncoder" time="0.025" classname="org.apache.pulsar.common.lookup.data.LookupDataTest" />
<testcase name="serializeToJsonTest" time="1.032" classname="org.apache.pulsar.common.lookup.data.LookupDataTest" />
<testcase name="withConstructor" time="0.017" classname="org.apache.pulsar.common.lookup.data.LookupDataTest" />
</testsuite><testsuite name="org.apache.pulsar.common.naming.MetadataTests" tests="2" errors="0" failures="0" skipped="0" time="0.161"><testcase name="testInvalidMetadata" time="0.066" classname="org.apache.pulsar.common.naming.MetadataTests" />
<testcase name="testValidMetadata" time="0.095" classname="org.apache.pulsar.common.naming.MetadataTests" />
</testsuite><testsuite name="org.apache.pulsar.common.naming.NamespaceBundleTest" tests="6" errors="0" failures="0" skipped="0" time="0.064"><testcase name="testIncludes" time="0.010" classname="org.apache.pulsar.common.naming.NamespaceBundleTest" />
<testcase name="testGetBundle" time="0.014" classname="org.apache.pulsar.common.naming.NamespaceBundleTest" />
<testcase name="testCompareTo" time="0.013" classname="org.apache.pulsar.common.naming.NamespaceBundleTest" />
<testcase name="testConstructor" time="0.010" classname="org.apache.pulsar.common.naming.NamespaceBundleTest" />
<testcase name="testToString" time="0.008" classname="org.apache.pulsar.common.naming.NamespaceBundleTest" />
<testcase name="testEquals" time="0.009" classname="org.apache.pulsar.common.naming.NamespaceBundleTest" />
</testsuite><testsuite name="org.apache.pulsar.common.naming.NamespaceBundlesTest" tests="5" errors="0" failures="0" skipped="0" time="0.09899999999999999"><testcase name="testConstructor" time="0.018" classname="org.apache.pulsar.common.naming.NamespaceBundlesTest" />
<testcase name="testSplitBundleInTwo" time="0.013" classname="org.apache.pulsar.common.naming.NamespaceBundlesTest" />
<testcase name="testsplitBundles" time="0.043" classname="org.apache.pulsar.common.naming.NamespaceBundlesTest" />
<testcase name="testFindBundle" time="0.012" classname="org.apache.pulsar.common.naming.NamespaceBundlesTest" />
<testcase name="testSplitBundleByFixBoundary" time="0.013" classname="org.apache.pulsar.common.naming.NamespaceBundlesTest" />
</testsuite><testsuite name="org.apache.pulsar.common.naming.NamespaceNameTest" tests="2" errors="0" failures="0" skipped="0" time="0.207"><testcase name="namespace" time="0.206" classname="org.apache.pulsar.common.naming.NamespaceNameTest" />
<testcase name="testNewScheme" time="0.001" classname="org.apache.pulsar.common.naming.NamespaceNameTest" />
</testsuite><testsuite name="org.apache.pulsar.common.naming.ServiceConfigurationTest" tests="4" errors="0" failures="0" skipped="0" time="0.048"><testcase name="testOptionalSettingPresent" time="0.005" classname="org.apache.pulsar.common.naming.ServiceConfigurationTest" />
<testcase name="testOptionalSettingEmpty" time="0.005" classname="org.apache.pulsar.common.naming.ServiceConfigurationTest" />
<testcase name="testInit" time="0.024" classname="org.apache.pulsar.common.naming.ServiceConfigurationTest" />
<testcase name="testInitFailure" time="0.014" classname="org.apache.pulsar.common.naming.ServiceConfigurationTest" />
</testsuite><testsuite name="org.apache.pulsar.common.naming.TopicNameTest" tests="4" errors="0" failures="0" skipped="0" time="0.529"><testcase name="testShortTopicName" time="0.029" classname="org.apache.pulsar.common.naming.TopicNameTest" />
<testcase name="topic" time="0.035" classname="org.apache.pulsar.common.naming.TopicNameTest" />
<testcase name="testTopicNameWithoutCluster" time="0.016" classname="org.apache.pulsar.common.naming.TopicNameTest" />
<testcase name="testDecodeEncode" time="0.449" classname="org.apache.pulsar.common.naming.TopicNameTest" />
</testsuite><testsuite name="org.apache.pulsar.common.net.ServiceURITest" tests="21" errors="0" failures="0" skipped="0" time="0.23700000000000004"><testcase name="testEmptyServiceUriString" time="0.029" classname="org.apache.pulsar.common.net.ServiceURITest" />
<testcase name="testMultipleHostsSemiColon" time="0.005" classname="org.apache.pulsar.common.net.ServiceURITest" />
<testcase name="testInvalidServiceUris" time="0.018" classname="org.apache.pulsar.common.net.ServiceURITest" />
<testcase name="testMultipleHostsWithoutHttpPorts" time="0.000" classname="org.apache.pulsar.common.net.ServiceURITest" />
<testcase name="testRootPath" time="0.009" classname="org.apache.pulsar.common.net.ServiceURITest" />
<testcase name="testMultipleHostsMixedPorts" time="0.001" classname="org.apache.pulsar.common.net.ServiceURITest" />
<testcase name="testMultipleHostsWithoutPulsarTlsPorts" time="0.001" classname="org.apache.pulsar.common.net.ServiceURITest" />
<testcase name="testUserInfoWithMultipleHosts" time="0.008" classname="org.apache.pulsar.common.net.ServiceURITest" />
<testcase name="testMultipleHostsComma" time="0.000" classname="org.apache.pulsar.common.net.ServiceURITest" />
<testcase name="testMultipleHostsMixed" time="0.001" classname="org.apache.pulsar.common.net.ServiceURITest" />
<testcase name="testUserInfo" time="0.003" classname="org.apache.pulsar.common.net.ServiceURITest" />
<testcase name="testIpv6UriWithoutPulsarPort" time="0.003" classname="org.apache.pulsar.common.net.ServiceURITest" />
<testcase name="testMultiIpv6Uri" time="0.011" classname="org.apache.pulsar.common.net.ServiceURITest" />
<testcase name="testMultiIpv6UriWithoutPulsarPort" time="0.013" classname="org.apache.pulsar.common.net.ServiceURITest" />
<testcase name="testEmptyPath" time="0.115" classname="org.apache.pulsar.common.net.ServiceURITest" />
<testcase name="testNullServiceUriString" time="0.009" classname="org.apache.pulsar.common.net.ServiceURITest" />
<testcase name="testNullServiceUriInstance" time="0.001" classname="org.apache.pulsar.common.net.ServiceURITest" />
<testcase name="testMissingServiceName" time="0.006" classname="org.apache.pulsar.common.net.ServiceURITest" />
<testcase name="testMultipleHostsWithoutHttpsPorts" time="0.000" classname="org.apache.pulsar.common.net.ServiceURITest" />
<testcase name="testMultipleHostsWithoutPulsarPorts" time="0.000" classname="org.apache.pulsar.common.net.ServiceURITest" />
<testcase name="testIpv6Uri" time="0.004" classname="org.apache.pulsar.common.net.ServiceURITest" />
</testsuite><testsuite name="org.apache.pulsar.common.policies.data.AutoFailoverPolicyDataTest" tests="1" errors="0" failures="0" skipped="0" time="0.015"><testcase name="testAutoFailoverPolicyData" time="0.015" classname="org.apache.pulsar.common.policies.data.AutoFailoverPolicyDataTest" />
</testsuite><testsuite name="org.apache.pulsar.common.policies.data.AutoFailoverPolicyTypeTest" tests="1" errors="0" failures="0" skipped="0" time="0.019"><testcase name="testAutoFailoverPolicyType" time="0.019" classname="org.apache.pulsar.common.policies.data.AutoFailoverPolicyTypeTest" />
</testsuite><testsuite name="org.apache.pulsar.common.policies.data.AutoTopicCreationOverrideTest" tests="6" errors="0" failures="0" skipped="0" time="0.064"><testcase name="testInvalidTopicType" time="0.012" classname="org.apache.pulsar.common.policies.data.AutoTopicCreationOverrideTest" />
<testcase name="testNumPartitionsTooLow" time="0.006" classname="org.apache.pulsar.common.policies.data.AutoTopicCreationOverrideTest" />
<testcase name="testNumPartitionsNotSet" time="0.003" classname="org.apache.pulsar.common.policies.data.AutoTopicCreationOverrideTest" />
<testcase name="testValidOverrideNonPartitioned" time="0.021" classname="org.apache.pulsar.common.policies.data.AutoTopicCreationOverrideTest" />
<testcase name="testNumPartitionsOnNonPartitioned" time="0.018" classname="org.apache.pulsar.common.policies.data.AutoTopicCreationOverrideTest" />
<testcase name="testValidOverridePartitioned" time="0.004" classname="org.apache.pulsar.common.policies.data.AutoTopicCreationOverrideTest" />
</testsuite><testsuite name="org.apache.pulsar.common.policies.data.BacklogQuotaTest" tests="1" errors="0" failures="0" skipped="0" time="0.012"><testcase name="testBacklogQuotaIdentity" time="0.012" classname="org.apache.pulsar.common.policies.data.BacklogQuotaTest" />
</testsuite><testsuite name="org.apache.pulsar.common.policies.data.ClusterDataTest" tests="1" errors="0" failures="0" skipped="0" time="0.009"><testcase name="simple" time="0.009" classname="org.apache.pulsar.common.policies.data.ClusterDataTest" />
</testsuite><testsuite name="org.apache.pulsar.common.policies.data.ConsumerStatsTest" tests="1" errors="0" failures="0" skipped="0" time="0.008"><testcase name="testConsumerStats" time="0.008" classname="org.apache.pulsar.common.policies.data.ConsumerStatsTest" />
</testsuite><testsuite name="org.apache.pulsar.common.policies.data.EnsemblePlacementPolicyConfigTest" tests="2" errors="0" failures="0" skipped="0" time="0.948"><testcase name="testDecodeFailed" time="0.475" classname="org.apache.pulsar.common.policies.data.EnsemblePlacementPolicyConfigTest" />
<testcase name="testEncodeDecodeSuccessfully" time="0.473" classname="org.apache.pulsar.common.policies.data.EnsemblePlacementPolicyConfigTest" />
</testsuite><testsuite name="org.apache.pulsar.common.policies.data.LocalPolicesTest" tests="1" errors="0" failures="0" skipped="0" time="0.048"><testcase name="testLocalPolices" time="0.048" classname="org.apache.pulsar.common.policies.data.LocalPolicesTest" />
</testsuite><testsuite name="org.apache.pulsar.common.policies.data.NamespaceIsolationDataTest" tests="1" errors="0" failures="0" skipped="0" time="0.076"><testcase name="testNamespaceIsolationData" time="0.076" classname="org.apache.pulsar.common.policies.data.NamespaceIsolationDataTest" />
</testsuite><testsuite name="org.apache.pulsar.common.policies.data.NamespaceOwnershipStatusTest" tests="1" errors="0" failures="0" skipped="0" time="0.045"><testcase name="testSerialization" time="0.045" classname="org.apache.pulsar.common.policies.data.NamespaceOwnershipStatusTest" />
</testsuite><testsuite name="org.apache.pulsar.common.policies.data.OffloadPoliciesTest" tests="6" errors="0" failures="0" skipped="0" time="0.216"><testcase name="testGcsConfiguration" time="0.011" classname="org.apache.pulsar.common.policies.data.OffloadPoliciesTest" />
<testcase name="mergeTest" time="0.005" classname="org.apache.pulsar.common.policies.data.OffloadPoliciesTest" />
<testcase name="compatibleWithConfigFileTest" time="0.154" classname="org.apache.pulsar.common.policies.data.OffloadPoliciesTest" />
<testcase name="testCreateByProperties" time="0.012" classname="org.apache.pulsar.common.policies.data.OffloadPoliciesTest" />
<testcase name="testS3Configuration" time="0.009" classname="org.apache.pulsar.common.policies.data.OffloadPoliciesTest" />
<testcase name="oldPoliciesCompatibleTest" time="0.025" classname="org.apache.pulsar.common.policies.data.OffloadPoliciesTest" />
</testsuite><testsuite name="org.apache.pulsar.common.policies.data.PartitionedTopicStatsTest" tests="1" errors="0" failures="0" skipped="0" time="0.012"><testcase name="testPartitionedTopicStats" time="0.012" classname="org.apache.pulsar.common.policies.data.PartitionedTopicStatsTest" />
</testsuite><testsuite name="org.apache.pulsar.common.policies.data.PersistencePoliciesTest" tests="1" errors="0" failures="0" skipped="0" time="0.019"><testcase name="testPersistencePolicies" time="0.019" classname="org.apache.pulsar.common.policies.data.PersistencePoliciesTest" />
</testsuite><testsuite name="org.apache.pulsar.common.policies.data.PersistentOfflineTopicStatsTest" tests="1" errors="0" failures="0" skipped="0" time="0.029"><testcase name="testPersistentOfflineTopicStats" time="0.029" classname="org.apache.pulsar.common.policies.data.PersistentOfflineTopicStatsTest" />
</testsuite><testsuite name="org.apache.pulsar.common.policies.data.PersistentTopicStatsTest" tests="2" errors="0" failures="0" skipped="0" time="0.051"><testcase name="testPersistentTopicStatsAggregation" time="0.015" classname="org.apache.pulsar.common.policies.data.PersistentTopicStatsTest" />
<testcase name="testPersistentTopicStats" time="0.036" classname="org.apache.pulsar.common.policies.data.PersistentTopicStatsTest" />
</testsuite><testsuite name="org.apache.pulsar.common.policies.data.PoliciesDataTest" tests="4" errors="0" failures="0" skipped="0" time="1.386"><testcase name="propertyAdmin" time="0.044" classname="org.apache.pulsar.common.policies.data.PoliciesDataTest" />
<testcase name="policies" time="0.011" classname="org.apache.pulsar.common.policies.data.PoliciesDataTest" />
<testcase name="bundlesData" time="1.224" classname="org.apache.pulsar.common.policies.data.PoliciesDataTest" />
<testcase name="bundlesPolicies" time="0.107" classname="org.apache.pulsar.common.policies.data.PoliciesDataTest" />
</testsuite><testsuite name="org.apache.pulsar.common.policies.data.PublisherStatsTest" tests="2" errors="0" failures="0" skipped="0" time="0.037"><testcase name="testPublisherStats" time="0.027" classname="org.apache.pulsar.common.policies.data.PublisherStatsTest" />
<testcase name="testPublisherStatsAggregation" time="0.010" classname="org.apache.pulsar.common.policies.data.PublisherStatsTest" />
</testsuite><testsuite name="org.apache.pulsar.common.policies.data.ReplicatorStatsTest" tests="2" errors="0" failures="0" skipped="0" time="0.03"><testcase name="testReplicatorStatsAdd" time="0.019" classname="org.apache.pulsar.common.policies.data.ReplicatorStatsTest" />
<testcase name="testReplicatorStatsNull" time="0.011" classname="org.apache.pulsar.common.policies.data.ReplicatorStatsTest" />
</testsuite><testsuite name="org.apache.pulsar.common.policies.data.ResourceQuotaTest" tests="2" errors="0" failures="0" skipped="0" time="0.045"><testcase name="testResourceQuotaDefault" time="0.038" classname="org.apache.pulsar.common.policies.data.ResourceQuotaTest" />
<testcase name="testResourceQuotaEqual" time="0.007" classname="org.apache.pulsar.common.policies.data.ResourceQuotaTest" />
</testsuite><testsuite name="org.apache.pulsar.common.policies.data.RetentionPolicesTest" tests="1" errors="0" failures="0" skipped="0" time="0.008"><testcase name="testRetentionPolices" time="0.008" classname="org.apache.pulsar.common.policies.data.RetentionPolicesTest" />
</testsuite><testsuite name="org.apache.pulsar.common.policies.impl.AutoFailoverPolicyFactoryTest" tests="1" errors="0" failures="0" skipped="0" time="0.022"><testcase name="testAutoFailoverPolicyFactory" time="0.022" classname="org.apache.pulsar.common.policies.impl.AutoFailoverPolicyFactoryTest" />
</testsuite><testsuite name="org.apache.pulsar.common.policies.impl.MinAvailablePolicyTest" tests="1" errors="0" failures="0" skipped="0" time="0.001"><testcase name="testMinAvailablePolicty" time="0.001" classname="org.apache.pulsar.common.policies.impl.MinAvailablePolicyTest" />
</testsuite><testsuite name="org.apache.pulsar.common.policies.impl.NamespaceIsolationPoliciesTest" tests="7" errors="0" failures="0" skipped="0" time="0.265"><testcase name="testBrokerAssignment" time="0.204" classname="org.apache.pulsar.common.policies.impl.NamespaceIsolationPoliciesTest" />
<testcase name="testGetNamespaceIsolationPolicyByName" time="0.012" classname="org.apache.pulsar.common.policies.impl.NamespaceIsolationPoliciesTest" />
<testcase name="testDeletePolicy" time="0.003" classname="org.apache.pulsar.common.policies.impl.NamespaceIsolationPoliciesTest" />
<testcase name="testSetPolicy" time="0.007" classname="org.apache.pulsar.common.policies.impl.NamespaceIsolationPoliciesTest" />
<testcase name="testJsonSerialization" time="0.025" classname="org.apache.pulsar.common.policies.impl.NamespaceIsolationPoliciesTest" />
<testcase name="testDefaultConstructor" time="0.011" classname="org.apache.pulsar.common.policies.impl.NamespaceIsolationPoliciesTest" />
<testcase name="testGetNamespaceIsolationPolicyByNamespace" time="0.003" classname="org.apache.pulsar.common.policies.impl.NamespaceIsolationPoliciesTest" />
</testsuite><testsuite name="org.apache.pulsar.common.policies.impl.NamespaceIsolationPolicyImplTest" tests="7" errors="0" failures="0" skipped="0" time="0.30900000000000005"><testcase name="testFindBrokers" time="0.168" classname="org.apache.pulsar.common.policies.impl.NamespaceIsolationPolicyImplTest" />
<testcase name="testGetSecondaryBrokers" time="0.018" classname="org.apache.pulsar.common.policies.impl.NamespaceIsolationPolicyImplTest" />
<testcase name="testShouldFailover" time="0.010" classname="org.apache.pulsar.common.policies.impl.NamespaceIsolationPolicyImplTest" />
<testcase name="testGetPrimaryBrokers" time="0.007" classname="org.apache.pulsar.common.policies.impl.NamespaceIsolationPolicyImplTest" />
<testcase name="testGetAvailablePrimaryBrokers" time="0.028" classname="org.apache.pulsar.common.policies.impl.NamespaceIsolationPolicyImplTest" />
<testcase name="testConstructor" time="0.070" classname="org.apache.pulsar.common.policies.impl.NamespaceIsolationPolicyImplTest" />
<testcase name="testIsPrimaryOrSecondaryBroker" time="0.008" classname="org.apache.pulsar.common.policies.impl.NamespaceIsolationPolicyImplTest" />
</testsuite><testsuite name="org.apache.pulsar.common.protocol.ByteBufPairTest" tests="2" errors="0" failures="0" skipped="0" time="4.9990000000000006"><testcase name="testEncoder" time="2.376" classname="org.apache.pulsar.common.protocol.ByteBufPairTest" />
<testcase name="testDoubleByteBuf" time="2.623" classname="org.apache.pulsar.common.protocol.ByteBufPairTest" />
</testsuite><testsuite name="org.apache.pulsar.common.protocol.CommandUtilsTests" tests="7" errors="0" failures="0" skipped="0" time="2.8120000000000003"><testcase name="testSkipBrokerEntryMetadata" time="0.014" classname="org.apache.pulsar.common.protocol.CommandUtilsTests" />
<testcase name="testPeekBrokerEntryMetadata" time="0.006" classname="org.apache.pulsar.common.protocol.CommandUtilsTests" />
<testcase name="testParseBrokerEntryMetadata" time="0.011" classname="org.apache.pulsar.common.protocol.CommandUtilsTests" />
<testcase name="testMetadataFromCommandSubscribe" time="0.013" classname="org.apache.pulsar.common.protocol.CommandUtilsTests" />
<testcase name="testMetadataFromCommandProducer" time="0.032" classname="org.apache.pulsar.common.protocol.CommandUtilsTests" />
<testcase name="testAddBrokerEntryMetadata" time="2.728" classname="org.apache.pulsar.common.protocol.CommandUtilsTests" />
<testcase name="testByteBufComposite" time="0.008" classname="org.apache.pulsar.common.protocol.CommandUtilsTests" />
</testsuite><testsuite name="org.apache.pulsar.common.protocol.MarkersTest" tests="6" errors="0" failures="0" skipped="0" time="3.2329999999999997"><testcase name="testSnapshot" time="3.129" classname="org.apache.pulsar.common.protocol.MarkersTest" />
<testcase name="testTxnAbortMarker" time="0.038" classname="org.apache.pulsar.common.protocol.MarkersTest" />
<testcase name="testUpdate" time="0.017" classname="org.apache.pulsar.common.protocol.MarkersTest" />
<testcase name="testTxnCommitMarker" time="0.012" classname="org.apache.pulsar.common.protocol.MarkersTest" />
<testcase name="testSnapshotRequest" time="0.022" classname="org.apache.pulsar.common.protocol.MarkersTest" />
<testcase name="testSnapshotResponse" time="0.015" classname="org.apache.pulsar.common.protocol.MarkersTest" />
</testsuite><testsuite name="org.apache.pulsar.common.protocol.PulsarDecoderTest" tests="1" errors="0" failures="0" skipped="0" time="3.69"><testcase name="testChannelRead" time="3.690" classname="org.apache.pulsar.common.protocol.PulsarDecoderTest" />
</testsuite><testsuite name="org.apache.pulsar.common.stats.JvmDefaultGCMetricsLoggerTest" tests="1" errors="0" failures="0" skipped="0" time="0.082"><testcase name="testInvokeJVMInternals" time="0.082" classname="org.apache.pulsar.common.stats.JvmDefaultGCMetricsLoggerTest" />
</testsuite><testsuite name="org.apache.pulsar.common.util.FieldParserTest" tests="1" errors="0" failures="0" skipped="0" time="0.242"><testcase name="testMap" time="0.242" classname="org.apache.pulsar.common.util.FieldParserTest" />
</testsuite><testsuite name="org.apache.pulsar.common.util.FileModifiedTimeUpdaterTest" tests="6" errors="0" failures="0" skipped="0" time="6.1610000000000005"><testcase name="testFileNotModified" time="0.021" classname="org.apache.pulsar.common.util.FileModifiedTimeUpdaterTest" />
<testcase name="testFileModified" time="2.036" classname="org.apache.pulsar.common.util.FileModifiedTimeUpdaterTest" />
<testcase name="testFileModified" time="2.014" classname="org.apache.pulsar.common.util.FileModifiedTimeUpdaterTest" />
<testcase name="testFileNotModified" time="0.037" classname="org.apache.pulsar.common.util.FileModifiedTimeUpdaterTest" />
<testcase name="testFileModified" time="2.020" classname="org.apache.pulsar.common.util.FileModifiedTimeUpdaterTest" />
<testcase name="testFileNotModified" time="0.033" classname="org.apache.pulsar.common.util.FileModifiedTimeUpdaterTest" />
</testsuite><testsuite name="org.apache.pulsar.common.util.RateLimiterTest" tests="11" errors="0" failures="0" skipped="0" time="7.199999999999998"><testcase name="testMultipleTryAcquire" time="0.014" classname="org.apache.pulsar.common.util.RateLimiterTest" />
<testcase name="testRateLimiterWithPermitUpdater" time="3.023" classname="org.apache.pulsar.common.util.RateLimiterTest" />
<testcase name="testTryAcquire" time="0.020" classname="org.apache.pulsar.common.util.RateLimiterTest" />
<testcase name="testTryAcquireNoPermits" time="0.002" classname="org.apache.pulsar.common.util.RateLimiterTest" />
<testcase name="testClose" time="0.012" classname="org.apache.pulsar.common.util.RateLimiterTest" />
<testcase name="testResetRate" time="3.024" classname="org.apache.pulsar.common.util.RateLimiterTest" />
<testcase name="testMultipleAcquire" time="0.021" classname="org.apache.pulsar.common.util.RateLimiterTest" />
<testcase name="testAcquire" time="0.044" classname="org.apache.pulsar.common.util.RateLimiterTest" />
<testcase name="testInvalidRenewTime" time="0.015" classname="org.apache.pulsar.common.util.RateLimiterTest" />
<testcase name="testRateLimiterWithFunction" time="0.007" classname="org.apache.pulsar.common.util.RateLimiterTest" />
<testcase name="testAcquireBlock" time="1.018" classname="org.apache.pulsar.common.util.RateLimiterTest" />
</testsuite><testsuite name="org.apache.pulsar.common.util.ReflectionsTest" tests="12" errors="0" failures="0" skipped="0" time="0.17200000000000001"><testcase name="testCreateInstanceNoNoArgConstructor" time="0.012" classname="org.apache.pulsar.common.util.ReflectionsTest" />
<testcase name="testCreateInstanceConstructorThrowsException" time="0.040" classname="org.apache.pulsar.common.util.ReflectionsTest" />
<testcase name="testCreateInstanceAbstractClass" time="0.013" classname="org.apache.pulsar.common.util.ReflectionsTest" />
<testcase name="testCreateTypedInstanceUnassignableClass" time="0.012" classname="org.apache.pulsar.common.util.ReflectionsTest" />
<testcase name="testCreateInstanceClassNotFound" time="0.010" classname="org.apache.pulsar.common.util.ReflectionsTest" />
<testcase name="testCreateTypedInstanceConstructorThrowsException" time="0.012" classname="org.apache.pulsar.common.util.ReflectionsTest" />
<testcase name="testClassExists" time="0.022" classname="org.apache.pulsar.common.util.ReflectionsTest" />
<testcase name="testCreateTypedInstanceAbstractClass" time="0.003" classname="org.apache.pulsar.common.util.ReflectionsTest" />
<testcase name="testCreateTypedInstanceClassNotFound" time="0.014" classname="org.apache.pulsar.common.util.ReflectionsTest" />
<testcase name="testCreateTypedInstanceNoNoArgConstructor" time="0.004" classname="org.apache.pulsar.common.util.ReflectionsTest" />
<testcase name="testLoadClass" time="0.021" classname="org.apache.pulsar.common.util.ReflectionsTest" />
<testcase name="testClassInJarImplementsIface" time="0.009" classname="org.apache.pulsar.common.util.ReflectionsTest" />
</testsuite><testsuite name="org.apache.pulsar.common.util.RelativeTimeUtilTest" tests="1" errors="0" failures="0" skipped="0" time="0.039"><testcase name="testParseRelativeTime" time="0.039" classname="org.apache.pulsar.common.util.RelativeTimeUtilTest" />
</testsuite><testsuite name="org.apache.pulsar.common.util.collections.BitSetRecyclableRecyclableTest" tests="2" errors="0" failures="0" skipped="0" time="0.013000000000000001"><testcase name="testResetWords" time="0.001" classname="org.apache.pulsar.common.util.collections.BitSetRecyclableRecyclableTest" />
<testcase name="testRecycle" time="0.012" classname="org.apache.pulsar.common.util.collections.BitSetRecyclableRecyclableTest" />
</testsuite><testsuite name="org.apache.pulsar.common.util.collections.ConcurrentBitSetRecyclableTest" tests="2" errors="0" failures="0" skipped="0" time="0.063"><testcase name="testRecycle" time="0.044" classname="org.apache.pulsar.common.util.collections.ConcurrentBitSetRecyclableTest" />
<testcase name="testGenerateByBitSet" time="0.019" classname="org.apache.pulsar.common.util.collections.ConcurrentBitSetRecyclableTest" />
</testsuite><testsuite name="org.apache.pulsar.common.util.collections.ConcurrentLongHashMapTest" tests="13" errors="0" failures="0" skipped="0" time="28.351000000000003"><testcase name="testRehashingWithDeletes" time="0.010" classname="org.apache.pulsar.common.util.collections.ConcurrentLongHashMapTest" />
<testcase name="concurrentInsertionsAndReads" time="1.487" classname="org.apache.pulsar.common.util.collections.ConcurrentLongHashMapTest" />
<testcase name="testRemove" time="0.017" classname="org.apache.pulsar.common.util.collections.ConcurrentLongHashMapTest" />
<testcase name="testRehashing" time="0.014" classname="org.apache.pulsar.common.util.collections.ConcurrentLongHashMapTest" />
<testcase name="simpleInsertions" time="0.014" classname="org.apache.pulsar.common.util.collections.ConcurrentLongHashMapTest" />
<testcase name="testComputeIfAbsent" time="0.008" classname="org.apache.pulsar.common.util.collections.ConcurrentLongHashMapTest" />
<testcase name="testConstructor" time="0.001" classname="org.apache.pulsar.common.util.collections.ConcurrentLongHashMapTest" />
<testcase name="testPutIfAbsent" time="0.006" classname="org.apache.pulsar.common.util.collections.ConcurrentLongHashMapTest" />
<testcase name="testIteration" time="0.006" classname="org.apache.pulsar.common.util.collections.ConcurrentLongHashMapTest" />
<testcase name="testHashConflictWithDeletion" time="0.002" classname="org.apache.pulsar.common.util.collections.ConcurrentLongHashMapTest" />
<testcase name="concurrentInsertions" time="1.329" classname="org.apache.pulsar.common.util.collections.ConcurrentLongHashMapTest" />
<testcase name="stressConcurrentInsertionsAndReads" time="25.447" classname="org.apache.pulsar.common.util.collections.ConcurrentLongHashMapTest" />
<testcase name="testNegativeUsedBucketCount" time="0.010" classname="org.apache.pulsar.common.util.collections.ConcurrentLongHashMapTest" />
</testsuite><testsuite name="org.apache.pulsar.common.util.collections.ConcurrentLongPairSetTest" tests="15" errors="0" failures="0" skipped="0" time="1.5190000000000001"><testcase name="concurrentInsertionsAndReads" time="0.674" classname="org.apache.pulsar.common.util.collections.ConcurrentLongPairSetTest" />
<testcase name="testEqualsObjects" time="0.005" classname="org.apache.pulsar.common.util.collections.ConcurrentLongPairSetTest" />
<testcase name="testIfRemoval" time="0.010" classname="org.apache.pulsar.common.util.collections.ConcurrentLongPairSetTest" />
<testcase name="testRehashing" time="0.007" classname="org.apache.pulsar.common.util.collections.ConcurrentLongPairSetTest" />
<testcase name="testToString" time="0.008" classname="org.apache.pulsar.common.util.collections.ConcurrentLongPairSetTest" />
<testcase name="testRemove" time="0.005" classname="org.apache.pulsar.common.util.collections.ConcurrentLongPairSetTest" />
<testcase name="testItems" time="0.019" classname="org.apache.pulsar.common.util.collections.ConcurrentLongPairSetTest" />
<testcase name="testRehashingWithDeletes" time="0.007" classname="org.apache.pulsar.common.util.collections.ConcurrentLongPairSetTest" />
<testcase name="testHashConflictWithDeletion" time="0.003" classname="org.apache.pulsar.common.util.collections.ConcurrentLongPairSetTest" />
<testcase name="testIteration" time="0.008" classname="org.apache.pulsar.common.util.collections.ConcurrentLongPairSetTest" />
<testcase name="simpleInsertions" time="0.014" classname="org.apache.pulsar.common.util.collections.ConcurrentLongPairSetTest" />
<testcase name="testRehashingRemoval" time="0.036" classname="org.apache.pulsar.common.util.collections.ConcurrentLongPairSetTest" />
<testcase name="testRemoval" time="0.021" classname="org.apache.pulsar.common.util.collections.ConcurrentLongPairSetTest" />
<testcase name="testConstructor" time="0.003" classname="org.apache.pulsar.common.util.collections.ConcurrentLongPairSetTest" />
<testcase name="concurrentInsertions" time="0.699" classname="org.apache.pulsar.common.util.collections.ConcurrentLongPairSetTest" />
</testsuite><testsuite name="org.apache.pulsar.common.util.collections.ConcurrentOpenHashMapTest" tests="12" errors="0" failures="0" skipped="0" time="9.241"><testcase name="testRemove" time="0.019" classname="org.apache.pulsar.common.util.collections.ConcurrentOpenHashMapTest" />
<testcase name="simpleInsertions" time="0.038" classname="org.apache.pulsar.common.util.collections.ConcurrentOpenHashMapTest" />
<testcase name="testPutIfAbsent" time="0.009" classname="org.apache.pulsar.common.util.collections.ConcurrentOpenHashMapTest" />
<testcase name="concurrentInsertions" time="3.153" classname="org.apache.pulsar.common.util.collections.ConcurrentOpenHashMapTest" />
<testcase name="testHashConflictWithDeletion" time="0.013" classname="org.apache.pulsar.common.util.collections.ConcurrentOpenHashMapTest" />
<testcase name="testRehashingWithDeletes" time="0.023" classname="org.apache.pulsar.common.util.collections.ConcurrentOpenHashMapTest" />
<testcase name="testComputeIfAbsent" time="0.019" classname="org.apache.pulsar.common.util.collections.ConcurrentOpenHashMapTest" />
<testcase name="testRehashing" time="0.025" classname="org.apache.pulsar.common.util.collections.ConcurrentOpenHashMapTest" />
<testcase name="testIteration" time="0.016" classname="org.apache.pulsar.common.util.collections.ConcurrentOpenHashMapTest" />
<testcase name="testEqualsKeys" time="0.001" classname="org.apache.pulsar.common.util.collections.ConcurrentOpenHashMapTest" />
<testcase name="concurrentInsertionsAndReads" time="5.909" classname="org.apache.pulsar.common.util.collections.ConcurrentOpenHashMapTest" />
<testcase name="testConstructor" time="0.016" classname="org.apache.pulsar.common.util.collections.ConcurrentOpenHashMapTest" />
</testsuite><testsuite name="org.apache.pulsar.common.util.collections.ConcurrentOpenHashSetTest" tests="11" errors="0" failures="0" skipped="0" time="7.114999999999999"><testcase name="concurrentInsertions" time="5.262" classname="org.apache.pulsar.common.util.collections.ConcurrentOpenHashSetTest" />
<testcase name="testRehashing" time="0.009" classname="org.apache.pulsar.common.util.collections.ConcurrentOpenHashSetTest" />
<testcase name="testRemoval" time="0.024" classname="org.apache.pulsar.common.util.collections.ConcurrentOpenHashSetTest" />
<testcase name="testEqualsObjects" time="0.009" classname="org.apache.pulsar.common.util.collections.ConcurrentOpenHashSetTest" />
<testcase name="testHashConflictWithDeletion" time="0.014" classname="org.apache.pulsar.common.util.collections.ConcurrentOpenHashSetTest" />
<testcase name="testConstructor" time="0.004" classname="org.apache.pulsar.common.util.collections.ConcurrentOpenHashSetTest" />
<testcase name="concurrentInsertionsAndReads" time="1.736" classname="org.apache.pulsar.common.util.collections.ConcurrentOpenHashSetTest" />
<testcase name="testIteration" time="0.010" classname="org.apache.pulsar.common.util.collections.ConcurrentOpenHashSetTest" />
<testcase name="simpleInsertions" time="0.015" classname="org.apache.pulsar.common.util.collections.ConcurrentOpenHashSetTest" />
<testcase name="testRehashingWithDeletes" time="0.016" classname="org.apache.pulsar.common.util.collections.ConcurrentOpenHashSetTest" />
<testcase name="testRemove" time="0.016" classname="org.apache.pulsar.common.util.collections.ConcurrentOpenHashSetTest" />
</testsuite><testsuite name="org.apache.pulsar.common.util.collections.ConcurrentOpenLongPairRangeSetTest" tests="13" errors="0" failures="0" skipped="0" time="1.3559999999999999"><testcase name="testAddForDifferentKey" time="0.019" classname="org.apache.pulsar.common.util.collections.ConcurrentOpenLongPairRangeSetTest" />
<testcase name="testToString" time="0.016" classname="org.apache.pulsar.common.util.collections.ConcurrentOpenLongPairRangeSetTest" />
<testcase name="testCacheFlagConflict" time="0.084" classname="org.apache.pulsar.common.util.collections.ConcurrentOpenLongPairRangeSetTest" />
<testcase name="testDeleteWithLeastMost" time="0.011" classname="org.apache.pulsar.common.util.collections.ConcurrentOpenLongPairRangeSetTest" />
<testcase name="testDeleteForDifferentKey" time="0.069" classname="org.apache.pulsar.common.util.collections.ConcurrentOpenLongPairRangeSetTest" />
<testcase name="testLastRange" time="0.009" classname="org.apache.pulsar.common.util.collections.ConcurrentOpenLongPairRangeSetTest" />
<testcase name="testAddCompareCompareWithGuava" time="0.585" classname="org.apache.pulsar.common.util.collections.ConcurrentOpenLongPairRangeSetTest" />
<testcase name="testSpanWithGuava" time="0.020" classname="org.apache.pulsar.common.util.collections.ConcurrentOpenLongPairRangeSetTest" />
<testcase name="testDeleteCompareWithGuava" time="0.473" classname="org.apache.pulsar.common.util.collections.ConcurrentOpenLongPairRangeSetTest" />
<testcase name="testFirstRange" time="0.011" classname="org.apache.pulsar.common.util.collections.ConcurrentOpenLongPairRangeSetTest" />
<testcase name="testAddForSameKey" time="0.037" classname="org.apache.pulsar.common.util.collections.ConcurrentOpenLongPairRangeSetTest" />
<testcase name="testDeleteWithAtMost" time="0.008" classname="org.apache.pulsar.common.util.collections.ConcurrentOpenLongPairRangeSetTest" />
<testcase name="testRangeContaining" time="0.014" classname="org.apache.pulsar.common.util.collections.ConcurrentOpenLongPairRangeSetTest" />
</testsuite><testsuite name="org.apache.pulsar.common.util.collections.ConcurrentSortedLongPairSetTest" tests="9" errors="0" failures="0" skipped="0" time="0.342"><testcase name="concurrentInsertions" time="0.101" classname="org.apache.pulsar.common.util.collections.ConcurrentSortedLongPairSetTest" />
<testcase name="testIfRemoval" time="0.041" classname="org.apache.pulsar.common.util.collections.ConcurrentSortedLongPairSetTest" />
<testcase name="testRemoval" time="0.057" classname="org.apache.pulsar.common.util.collections.ConcurrentSortedLongPairSetTest" />
<testcase name="testRemove" time="0.016" classname="org.apache.pulsar.common.util.collections.ConcurrentSortedLongPairSetTest" />
<testcase name="testItems" time="0.022" classname="org.apache.pulsar.common.util.collections.ConcurrentSortedLongPairSetTest" />
<testcase name="testEqualsObjects" time="0.007" classname="org.apache.pulsar.common.util.collections.ConcurrentSortedLongPairSetTest" />
<testcase name="simpleInsertions" time="0.016" classname="org.apache.pulsar.common.util.collections.ConcurrentSortedLongPairSetTest" />
<testcase name="testIteration" time="0.035" classname="org.apache.pulsar.common.util.collections.ConcurrentSortedLongPairSetTest" />
<testcase name="testToString" time="0.047" classname="org.apache.pulsar.common.util.collections.ConcurrentSortedLongPairSetTest" />
</testsuite><testsuite name="org.apache.pulsar.common.util.collections.FieldParserTest" tests="2" errors="0" failures="0" skipped="0" time="0.064"><testcase name="testUpdateObject" time="0.023" classname="org.apache.pulsar.common.util.collections.FieldParserTest" />
<testcase name="testConversion" time="0.041" classname="org.apache.pulsar.common.util.collections.FieldParserTest" />
</testsuite><testsuite name="org.apache.pulsar.common.util.collections.GrowableArrayBlockingQueueTest" tests="6" errors="0" failures="0" skipped="0" time="0.35"><testcase name="removeTest" time="0.014" classname="org.apache.pulsar.common.util.collections.GrowableArrayBlockingQueueTest" />
<testcase name="growArray" time="0.032" classname="org.apache.pulsar.common.util.collections.GrowableArrayBlockingQueueTest" />
<testcase name="pollTimeout" time="0.039" classname="org.apache.pulsar.common.util.collections.GrowableArrayBlockingQueueTest" />
<testcase name="simple" time="0.029" classname="org.apache.pulsar.common.util.collections.GrowableArrayBlockingQueueTest" />
<testcase name="pollTimeout2" time="0.111" classname="org.apache.pulsar.common.util.collections.GrowableArrayBlockingQueueTest" />
<testcase name="blockingTake" time="0.125" classname="org.apache.pulsar.common.util.collections.GrowableArrayBlockingQueueTest" />
</testsuite><testsuite name="org.apache.pulsar.common.util.collections.GrowablePriorityLongPairQueueTest" tests="15" errors="0" failures="0" skipped="0" time="3.0929999999999995"><testcase name="testItems" time="0.014" classname="org.apache.pulsar.common.util.collections.GrowablePriorityLongPairQueueTest" />
<testcase name="testRemove" time="0.009" classname="org.apache.pulsar.common.util.collections.GrowablePriorityLongPairQueueTest" />
<testcase name="testExpandQueue" time="0.000" classname="org.apache.pulsar.common.util.collections.GrowablePriorityLongPairQueueTest" />
<testcase name="testInsertAndRemove" time="0.018" classname="org.apache.pulsar.common.util.collections.GrowablePriorityLongPairQueueTest" />
<testcase name="testEqualsObjects" time="0.010" classname="org.apache.pulsar.common.util.collections.GrowablePriorityLongPairQueueTest" />
<testcase name="testExpandRemoval" time="1.711" classname="org.apache.pulsar.common.util.collections.GrowablePriorityLongPairQueueTest" />
<testcase name="testIteration" time="0.019" classname="org.apache.pulsar.common.util.collections.GrowablePriorityLongPairQueueTest" />
<testcase name="simpleInsertions" time="0.117" classname="org.apache.pulsar.common.util.collections.GrowablePriorityLongPairQueueTest" />
<testcase name="concurrentInsertions" time="0.679" classname="org.apache.pulsar.common.util.collections.GrowablePriorityLongPairQueueTest" />
<testcase name="testConstructor" time="0.020" classname="org.apache.pulsar.common.util.collections.GrowablePriorityLongPairQueueTest" />
<testcase name="testSetWithDuplicateInsert" time="0.010" classname="org.apache.pulsar.common.util.collections.GrowablePriorityLongPairQueueTest" />
<testcase name="testExpandWithDeletes" time="0.018" classname="org.apache.pulsar.common.util.collections.GrowablePriorityLongPairQueueTest" />
<testcase name="concurrentInsertionsAndReads" time="0.401" classname="org.apache.pulsar.common.util.collections.GrowablePriorityLongPairQueueTest" />
<testcase name="testRemoval" time="0.010" classname="org.apache.pulsar.common.util.collections.GrowablePriorityLongPairQueueTest" />
<testcase name="testIfRemoval" time="0.057" classname="org.apache.pulsar.common.util.collections.GrowablePriorityLongPairQueueTest" />
</testsuite><testsuite name="org.apache.pulsar.common.util.collections.TripleLongPriorityQueueTest" tests="3" errors="0" failures="0" skipped="0" time="0.238"><testcase name="testQueue" time="0.096" classname="org.apache.pulsar.common.util.collections.TripleLongPriorityQueueTest" />
<testcase name="testCheckForEmpty" time="0.118" classname="org.apache.pulsar.common.util.collections.TripleLongPriorityQueueTest" />
<testcase name="testCompareWithSamePrefix" time="0.024" classname="org.apache.pulsar.common.util.collections.TripleLongPriorityQueueTest" />
</testsuite><testsuite name="org.apache.pulsar.common.util.netty.ChannelFuturesTest" tests="5" errors="0" failures="0" skipped="0" time="1.5490000000000002"><testcase name="toCompletableFuture_shouldCompleteExceptionally_channelFutureCompletedAfter" time="0.050" classname="org.apache.pulsar.common.util.netty.ChannelFuturesTest" />
<testcase name="toCompletableFuture_shouldCompleteSuccessfully_channelFutureCompletedAfter" time="0.031" classname="org.apache.pulsar.common.util.netty.ChannelFuturesTest" />
<testcase name="toCompletableFuture_shouldCompleteSuccessfully_channelFutureCompletedBefore" time="0.008" classname="org.apache.pulsar.common.util.netty.ChannelFuturesTest" />
<testcase name="toCompletableFuture_shouldCompleteExceptionally_channelFutureCompletedBefore" time="0.009" classname="org.apache.pulsar.common.util.netty.ChannelFuturesTest" />
<testcase name="toCompletableFuture_shouldRequireNonNullArgument" time="1.451" classname="org.apache.pulsar.common.util.netty.ChannelFuturesTest" />
</testsuite><testsuite name="org.apache.pulsar.discovery.service.web.DiscoveryServiceWebTest" tests="1" errors="0" failures="0" skipped="0" time="4.904"><testcase name="testRedirectUrlWithServerStarted" time="4.904" classname="org.apache.pulsar.discovery.service.web.DiscoveryServiceWebTest" />
</testsuite><testsuite name="org.apache.pulsar.functions.worker.PulsarFunctionE2ESecurityTest" tests="2" errors="0" failures="0" skipped="0" time="27.527"><testcase name="testAuthorizationWithAnonymousUser" time="10.923" classname="org.apache.pulsar.functions.worker.PulsarFunctionE2ESecurityTest" />
<testcase name="testAuthorization" time="16.604" classname="org.apache.pulsar.functions.worker.PulsarFunctionE2ESecurityTest" />
</testsuite><testsuite name="org.apache.pulsar.functions.worker.PulsarFunctionPublishTest" tests="3" errors="0" failures="0" skipped="0" time="42.238"><testcase name="testPulsarFunctionState" time="10.642" classname="org.apache.pulsar.functions.worker.PulsarFunctionPublishTest" />
<testcase name="testMultipleAddress" time="12.951" classname="org.apache.pulsar.functions.worker.PulsarFunctionPublishTest" />
<testcase name="testPulsarFunctionBKCleanup" time="18.645" classname="org.apache.pulsar.functions.worker.PulsarFunctionPublishTest" />
</testsuite><testsuite name="org.apache.pulsar.functions.worker.PulsarFunctionTlsTest" tests="1" errors="0" failures="0" skipped="0" time="12.012"><testcase name="testFunctionsCreation" time="12.012" classname="org.apache.pulsar.functions.worker.PulsarFunctionTlsTest" />
</testsuite><testsuite name="org.apache.pulsar.io.PulsarFunctionTlsTest" tests="1" errors="0" failures="0" skipped="0" time="30.213"><testcase name="testAuthorization" time="30.213" classname="org.apache.pulsar.io.PulsarFunctionTlsTest" />
</testsuite><testsuite name="org.apache.pulsar.proxy.server.AdminProxyHandlerTest" tests="1" errors="0" failures="0" skipped="0" time="0.474"><testcase name="replayableProxyContentProviderTest" time="0.474" classname="org.apache.pulsar.proxy.server.AdminProxyHandlerTest" />
</testsuite><testsuite name="org.apache.pulsar.proxy.server.AuthedAdminProxyHandlerTest" tests="1" errors="0" failures="0" skipped="0" time="2.159"><testcase name="testAuthenticatedProxyAsNonAdmin" time="2.159" classname="org.apache.pulsar.proxy.server.AuthedAdminProxyHandlerTest" />
</testsuite><testsuite name="org.apache.pulsar.proxy.server.FunctionWorkerRoutingTest" tests="1" errors="0" failures="0" skipped="0" time="0.01"><testcase name="testFunctionWorkerRedirect" time="0.010" classname="org.apache.pulsar.proxy.server.FunctionWorkerRoutingTest" />
</testsuite><testsuite name="org.apache.pulsar.proxy.server.ProxyAdditionalServletTest" tests="1" errors="0" failures="0" skipped="0" time="0.125"><testcase name="test" time="0.125" classname="org.apache.pulsar.proxy.server.ProxyAdditionalServletTest" />
</testsuite><testsuite name="org.apache.pulsar.proxy.server.ProxyAuthenticatedProducerConsumerTest" tests="1" errors="0" failures="0" skipped="0" time="2.279"><testcase name="testTlsSyncProducerAndConsumer" time="2.279" classname="org.apache.pulsar.proxy.server.ProxyAuthenticatedProducerConsumerTest" />
</testsuite><testsuite name="org.apache.pulsar.proxy.server.ProxyAuthenticationTest" tests="1" errors="0" failures="0" skipped="0" time="16.696"><testcase name="testAuthentication" time="16.696" classname="org.apache.pulsar.proxy.server.ProxyAuthenticationTest" />
</testsuite><testsuite name="org.apache.pulsar.proxy.server.ProxyConnectionThrottlingTest" tests="1" errors="0" failures="0" skipped="0" time="1.792"><testcase name="testInboundConnection" time="1.792" classname="org.apache.pulsar.proxy.server.ProxyConnectionThrottlingTest" />
</testsuite><testsuite name="org.apache.pulsar.proxy.server.ProxyEnableHAProxyProtocolTest" tests="1" errors="0" failures="0" skipped="0" time="0.511"><testcase name="testSimpleProduceAndConsume" time="0.511" classname="org.apache.pulsar.proxy.server.ProxyEnableHAProxyProtocolTest" />
</testsuite><testsuite name="org.apache.pulsar.proxy.server.ProxyForwardAuthDataTest" tests="1" errors="0" failures="0" skipped="0" time="31.924"><testcase name="testForwardAuthData" time="31.924" classname="org.apache.pulsar.proxy.server.ProxyForwardAuthDataTest" />
</testsuite><testsuite name="org.apache.pulsar.proxy.server.ProxyIsAHttpProxyTest" tests="10" errors="0" failures="0" skipped="0" time="1.66"><testcase name="testProxyToEndsInSlash" time="0.232" classname="org.apache.pulsar.proxy.server.ProxyIsAHttpProxyTest" />
<testcase name="testStreaming" time="0.460" classname="org.apache.pulsar.proxy.server.ProxyIsAHttpProxyTest" />
<testcase name="testLongPath" time="0.230" classname="org.apache.pulsar.proxy.server.ProxyIsAHttpProxyTest" />
<testcase name="testLongPathInProxyTo" time="0.220" classname="org.apache.pulsar.proxy.server.ProxyIsAHttpProxyTest" />
<testcase name="testPathEndsInSlash" time="0.144" classname="org.apache.pulsar.proxy.server.ProxyIsAHttpProxyTest" />
<testcase name="testPathNotSpecified" time="0.002" classname="org.apache.pulsar.proxy.server.ProxyIsAHttpProxyTest" />
<testcase name="testTryingToUseExistingPath" time="0.025" classname="org.apache.pulsar.proxy.server.ProxyIsAHttpProxyTest" />
<testcase name="testMultipleRedirect" time="0.178" classname="org.apache.pulsar.proxy.server.ProxyIsAHttpProxyTest" />
<testcase name="testSingleRedirect" time="0.167" classname="org.apache.pulsar.proxy.server.ProxyIsAHttpProxyTest" />
<testcase name="testRedirectNotSpecified" time="0.002" classname="org.apache.pulsar.proxy.server.ProxyIsAHttpProxyTest" />
</testsuite><testsuite name="org.apache.pulsar.proxy.server.ProxyKeyStoreTlsTestWithAuth" tests="3" errors="0" failures="0" skipped="0" time="6.7010000000000005"><testcase name="testProducerFailed" time="3.049" classname="org.apache.pulsar.proxy.server.ProxyKeyStoreTlsTestWithAuth" />
<testcase name="testPartitions" time="1.856" classname="org.apache.pulsar.proxy.server.ProxyKeyStoreTlsTestWithAuth" />
<testcase name="testProducer" time="1.796" classname="org.apache.pulsar.proxy.server.ProxyKeyStoreTlsTestWithAuth" />
</testsuite><testsuite name="org.apache.pulsar.proxy.server.ProxyKeyStoreTlsTestWithoutAuth" tests="3" errors="0" failures="0" skipped="0" time="7.220000000000001"><testcase name="testPartitions" time="2.438" classname="org.apache.pulsar.proxy.server.ProxyKeyStoreTlsTestWithoutAuth" />
<testcase name="testProducerFailed" time="2.837" classname="org.apache.pulsar.proxy.server.ProxyKeyStoreTlsTestWithoutAuth" />
<testcase name="testProducer" time="1.945" classname="org.apache.pulsar.proxy.server.ProxyKeyStoreTlsTestWithoutAuth" />
</testsuite><testsuite name="org.apache.pulsar.proxy.server.ProxyLookupThrottlingTest" tests="1" errors="0" failures="0" skipped="0" time="2.568"><testcase name="testLookup" time="2.568" classname="org.apache.pulsar.proxy.server.ProxyLookupThrottlingTest" />
</testsuite><testsuite name="org.apache.pulsar.proxy.server.ProxyParserTest" tests="5" errors="0" failures="0" skipped="0" time="1.3459999999999999"><testcase name="testRegexSubscription" time="0.300" classname="org.apache.pulsar.proxy.server.ProxyParserTest" />
<testcase name="testProducerConsumer" time="0.147" classname="org.apache.pulsar.proxy.server.ProxyParserTest" />
<testcase name="testProducer" time="0.111" classname="org.apache.pulsar.proxy.server.ProxyParserTest" />
<testcase name="testPartitions" time="0.641" classname="org.apache.pulsar.proxy.server.ProxyParserTest" />
<testcase name="testProtocolVersionAdvertisement" time="0.147" classname="org.apache.pulsar.proxy.server.ProxyParserTest" />
</testsuite><testsuite name="org.apache.pulsar.proxy.server.ProxyRolesEnforcementTest" tests="1" errors="0" failures="0" skipped="0" time="10.403"><testcase name="testIncorrectRoles" time="10.403" classname="org.apache.pulsar.proxy.server.ProxyRolesEnforcementTest" />
</testsuite><testsuite name="org.apache.pulsar.proxy.server.ProxyStatsTest" tests="3" errors="0" failures="0" skipped="0" time="0.533"><testcase name="testChangeLogLevel" time="0.031" classname="org.apache.pulsar.proxy.server.ProxyStatsTest" />
<testcase name="testConnectionsStats" time="0.268" classname="org.apache.pulsar.proxy.server.ProxyStatsTest" />
<testcase name="testTopicStats" time="0.234" classname="org.apache.pulsar.proxy.server.ProxyStatsTest" />
</testsuite><testsuite name="org.apache.pulsar.proxy.server.ProxyTest" tests="6" errors="0" failures="0" skipped="0" time="2.9469999999999996"><testcase name="testPartitions" time="1.162" classname="org.apache.pulsar.proxy.server.ProxyTest" />
<testcase name="testRegexSubscription" time="0.336" classname="org.apache.pulsar.proxy.server.ProxyTest" />
<testcase name="testProtocolVersionAdvertisement" time="0.158" classname="org.apache.pulsar.proxy.server.ProxyTest" />
<testcase name="testGetSchema" time="0.982" classname="org.apache.pulsar.proxy.server.ProxyTest" />
<testcase name="testProducer" time="0.151" classname="org.apache.pulsar.proxy.server.ProxyTest" />
<testcase name="testProducerConsumer" time="0.158" classname="org.apache.pulsar.proxy.server.ProxyTest" />
</testsuite><testsuite name="org.apache.pulsar.proxy.server.ProxyTlsTest" tests="2" errors="0" failures="0" skipped="0" time="0.41400000000000003"><testcase name="testProducer" time="0.100" classname="org.apache.pulsar.proxy.server.ProxyTlsTest" />
<testcase name="testPartitions" time="0.314" classname="org.apache.pulsar.proxy.server.ProxyTlsTest" />
</testsuite><testsuite name="org.apache.pulsar.proxy.server.ProxyTlsTestWithAuth" tests="1" errors="0" failures="0" skipped="0" time="0.004"><testcase name="testServiceStartup" time="0.004" classname="org.apache.pulsar.proxy.server.ProxyTlsTestWithAuth" />
</testsuite><testsuite name="org.apache.pulsar.proxy.server.ProxyWithAuthorizationNegTest" tests="1" errors="0" failures="0" skipped="0" time="2.128"><testcase name="testProxyAuthorization" time="2.128" classname="org.apache.pulsar.proxy.server.ProxyWithAuthorizationNegTest" />
</testsuite><testsuite name="org.apache.pulsar.proxy.server.ProxyWithAuthorizationTest" tests="13" errors="0" failures="0" skipped="0" time="32.897"><testcase name="tlsCiphersAndProtocols" time="3.181" classname="org.apache.pulsar.proxy.server.ProxyWithAuthorizationTest" />
<testcase name="testTlsHostVerificationProxyToClient" time="3.092" classname="org.apache.pulsar.proxy.server.ProxyWithAuthorizationTest" />
<testcase name="tlsCiphersAndProtocols" time="2.974" classname="org.apache.pulsar.proxy.server.ProxyWithAuthorizationTest" />
<testcase name="testProxyAuthorization" time="2.294" classname="org.apache.pulsar.proxy.server.ProxyWithAuthorizationTest" />
<testcase name="tlsCiphersAndProtocols" time="1.998" classname="org.apache.pulsar.proxy.server.ProxyWithAuthorizationTest" />
<testcase name="testTlsHostVerificationProxyToBroker" time="2.446" classname="org.apache.pulsar.proxy.server.ProxyWithAuthorizationTest" />
<testcase name="tlsCiphersAndProtocols" time="2.990" classname="org.apache.pulsar.proxy.server.ProxyWithAuthorizationTest" />
<testcase name="tlsCiphersAndProtocols" time="2.056" classname="org.apache.pulsar.proxy.server.ProxyWithAuthorizationTest" />
<testcase name="tlsCiphersAndProtocols" time="2.104" classname="org.apache.pulsar.proxy.server.ProxyWithAuthorizationTest" />
<testcase name="testTlsHostVerificationProxyToBroker" time="3.554" classname="org.apache.pulsar.proxy.server.ProxyWithAuthorizationTest" />
<testcase name="tlsCiphersAndProtocols" time="1.921" classname="org.apache.pulsar.proxy.server.ProxyWithAuthorizationTest" />
<testcase name="testTlsHostVerificationProxyToClient" time="2.164" classname="org.apache.pulsar.proxy.server.ProxyWithAuthorizationTest" />
<testcase name="tlsCiphersAndProtocols" time="2.123" classname="org.apache.pulsar.proxy.server.ProxyWithAuthorizationTest" />
</testsuite><testsuite name="org.apache.pulsar.proxy.server.ProxyWithoutServiceDiscoveryTest" tests="1" errors="0" failures="0" skipped="0" time="2.045"><testcase name="testDiscoveryService" time="2.045" classname="org.apache.pulsar.proxy.server.ProxyWithoutServiceDiscoveryTest" />
</testsuite><testsuite name="org.apache.pulsar.proxy.server.SuperUserAuthedAdminProxyHandlerTest" tests="3" errors="0" failures="0" skipped="0" time="8.235"><testcase name="testAuthWithRandoCert" time="3.184" classname="org.apache.pulsar.proxy.server.SuperUserAuthedAdminProxyHandlerTest" />
<testcase name="testAuthenticatedProxyAsAdmin" time="2.549" classname="org.apache.pulsar.proxy.server.SuperUserAuthedAdminProxyHandlerTest" />
<testcase name="testAuthenticatedProxyAsNonAdmin" time="2.502" classname="org.apache.pulsar.proxy.server.SuperUserAuthedAdminProxyHandlerTest" />
</testsuite><testsuite name="org.apache.pulsar.proxy.server.UnauthedAdminProxyHandlerTest" tests="2" errors="0" failures="0" skipped="0" time="0.11399999999999999"><testcase name="testUnauthenticatedProxy" time="0.072" classname="org.apache.pulsar.proxy.server.UnauthedAdminProxyHandlerTest" />
<testcase name="testVipStatus" time="0.042" classname="org.apache.pulsar.proxy.server.UnauthedAdminProxyHandlerTest" />
</testsuite><testsuite name="org.apache.pulsar.schema.PartitionedTopicSchemaTest" tests="1" errors="0" failures="0" skipped="0" time="29.041"><testcase name="test" time="29.041" classname="org.apache.pulsar.schema.PartitionedTopicSchemaTest" />
</testsuite><testsuite name="org.apache.pulsar.schema.SchemaTest" tests="3" errors="0" failures="0" skipped="0" time="30.858999999999998"><testcase name="testIsUsingAvroSchemaParser" time="15.549" classname="org.apache.pulsar.schema.SchemaTest" />
<testcase name="testBytesSchemaDeserialize" time="9.226" classname="org.apache.pulsar.schema.SchemaTest" />
<testcase name="testMultiTopicSetSchemaProvider" time="6.084" classname="org.apache.pulsar.schema.SchemaTest" />
</testsuite><testsuite name="org.apache.pulsar.schema.compatibility.SchemaCompatibilityCheckTest" tests="23" errors="0" failures="0" skipped="0" time="107.43700000000001"><testcase name="testConsumerCompatibilityCheckCanReadLastTest" time="2.532" classname="org.apache.pulsar.schema.compatibility.SchemaCompatibilityCheckTest" />
<testcase name="testConsumerWithNotCompatibilitySchema" time="3.386" classname="org.apache.pulsar.schema.compatibility.SchemaCompatibilityCheckTest" />
<testcase name="testProducerSendWithOldSchemaAndConsumerCanRead" time="4.159" classname="org.apache.pulsar.schema.compatibility.SchemaCompatibilityCheckTest" />
<testcase name="testConsumerCompatibilityCheckCanReadLastTest" time="8.513" classname="org.apache.pulsar.schema.compatibility.SchemaCompatibilityCheckTest" />
<testcase name="testProducerSendWithOldSchemaAndConsumerCanRead" time="4.927" classname="org.apache.pulsar.schema.compatibility.SchemaCompatibilityCheckTest" />
<testcase name="testSchemaComparison" time="5.111" classname="org.apache.pulsar.schema.compatibility.SchemaCompatibilityCheckTest" />
<testcase name="testConsumerCompatibilityCheckCanReadLastTest" time="2.560" classname="org.apache.pulsar.schema.compatibility.SchemaCompatibilityCheckTest" />
<testcase name="testConsumerCompatibilityReadAllCheckTest" time="4.842" classname="org.apache.pulsar.schema.compatibility.SchemaCompatibilityCheckTest" />
<testcase name="testConsumerWithNotCompatibilitySchema" time="5.097" classname="org.apache.pulsar.schema.compatibility.SchemaCompatibilityCheckTest" />
<testcase name="testIsAutoUpdateSchema" time="4.996" classname="org.apache.pulsar.schema.compatibility.SchemaCompatibilityCheckTest" />
<testcase name="testProducerSendWithOldSchemaAndConsumerCanRead" time="3.708" classname="org.apache.pulsar.schema.compatibility.SchemaCompatibilityCheckTest" />
<testcase name="testConsumerCompatibilityReadAllCheckTest" time="5.646" classname="org.apache.pulsar.schema.compatibility.SchemaCompatibilityCheckTest" />
<testcase name="testIsAutoUpdateSchema" time="5.362" classname="org.apache.pulsar.schema.compatibility.SchemaCompatibilityCheckTest" />
<testcase name="testProducerSendWithOldSchemaAndConsumerCanRead" time="3.960" classname="org.apache.pulsar.schema.compatibility.SchemaCompatibilityCheckTest" />
<testcase name="testConsumerWithNotCompatibilitySchema" time="7.686" classname="org.apache.pulsar.schema.compatibility.SchemaCompatibilityCheckTest" />
<testcase name="testIsAutoUpdateSchema" time="3.021" classname="org.apache.pulsar.schema.compatibility.SchemaCompatibilityCheckTest" />
<testcase name="testProducerSendWithOldSchemaAndConsumerCanRead" time="3.654" classname="org.apache.pulsar.schema.compatibility.SchemaCompatibilityCheckTest" />
<testcase name="testConsumerWithNotCompatibilitySchema" time="4.217" classname="org.apache.pulsar.schema.compatibility.SchemaCompatibilityCheckTest" />
<testcase name="testProducerSendWithOldSchemaAndConsumerCanRead" time="4.805" classname="org.apache.pulsar.schema.compatibility.SchemaCompatibilityCheckTest" />
<testcase name="testIsAutoUpdateSchema" time="4.487" classname="org.apache.pulsar.schema.compatibility.SchemaCompatibilityCheckTest" />
<testcase name="testIsAutoUpdateSchema" time="5.471" classname="org.apache.pulsar.schema.compatibility.SchemaCompatibilityCheckTest" />
<testcase name="testConsumerCompatibilityCheckCanReadLastTest" time="3.544" classname="org.apache.pulsar.schema.compatibility.SchemaCompatibilityCheckTest" />
<testcase name="testIsAutoUpdateSchema" time="5.753" classname="org.apache.pulsar.schema.compatibility.SchemaCompatibilityCheckTest" />
</testsuite><testsuite name="org.apache.pulsar.stats.client.PulsarBrokerStatsClientTest" tests="2" errors="0" failures="0" skipped="0" time="40.751999999999995"><testcase name="testServiceException" time="8.855" classname="org.apache.pulsar.stats.client.PulsarBrokerStatsClientTest" />
<testcase name="testTopicInternalStats" time="31.897" classname="org.apache.pulsar.stats.client.PulsarBrokerStatsClientTest" />
</testsuite><testsuite name="org.apache.pulsar.tests.EnumValuesDataProviderTest" tests="6" errors="0" failures="0" skipped="0" time="0.023"><testcase name="shouldFailIfEnumParameterIsMissing" time="0.002" classname="org.apache.pulsar.tests.EnumValuesDataProviderTest" />
<testcase name="testEnumValuesProvider" time="0.001" classname="org.apache.pulsar.tests.EnumValuesDataProviderTest" />
<testcase name="testEnumValuesProvider" time="0.001" classname="org.apache.pulsar.tests.EnumValuesDataProviderTest" />
<testcase name="shouldDetermineEnumValuesFromMethod" time="0.005" classname="org.apache.pulsar.tests.EnumValuesDataProviderTest" />
<testcase name="shouldContainAllEnumValues" time="0.014" classname="org.apache.pulsar.tests.EnumValuesDataProviderTest" />
<testcase name="testEnumValuesProvider" time="0.000" classname="org.apache.pulsar.tests.EnumValuesDataProviderTest" />
</testsuite><testsuite name="org.apache.pulsar.tests.TestRetrySupportBeforeMethodRetryTest" tests="5" errors="0" failures="0" skipped="4" time="0.036000000000000004"><testcase name="shouldNotDoAnythingWhenThereIsBeforeAndAfterMethod" time="0.005" classname="org.apache.pulsar.tests.TestRetrySupportBeforeMethodRetryTest" />
<testcase name="shouldNotDoAnythingWhenThereIsBeforeAndAfterMethod" time="0.006" classname="org.apache.pulsar.tests.TestRetrySupportBeforeMethodRetryTest">
<skipped />
</testcase>
<testcase name="shouldNotDoAnythingWhenThereIsBeforeAndAfterMethod" time="0.012" classname="org.apache.pulsar.tests.TestRetrySupportBeforeMethodRetryTest">
<skipped />
</testcase>
<testcase name="shouldNotDoAnythingWhenThereIsBeforeAndAfterMethod" time="0.005" classname="org.apache.pulsar.tests.TestRetrySupportBeforeMethodRetryTest">
<skipped />
</testcase>
<testcase name="shouldNotDoAnythingWhenThereIsBeforeAndAfterMethod" time="0.008" classname="org.apache.pulsar.tests.TestRetrySupportBeforeMethodRetryTest">
<skipped />
</testcase>
</testsuite><testsuite name="org.apache.pulsar.tests.TestRetrySupportRetryTest" tests="5" errors="0" failures="0" skipped="4" time="0.027"><testcase name="shouldCallSetupBeforeRetrying" time="0.004" classname="org.apache.pulsar.tests.TestRetrySupportRetryTest">
<skipped />
</testcase>
<testcase name="shouldCallSetupBeforeRetrying" time="0.001" classname="org.apache.pulsar.tests.TestRetrySupportRetryTest" />
<testcase name="shouldCallSetupBeforeRetrying" time="0.006" classname="org.apache.pulsar.tests.TestRetrySupportRetryTest">
<skipped />
</testcase>
<testcase name="shouldCallSetupBeforeRetrying" time="0.012" classname="org.apache.pulsar.tests.TestRetrySupportRetryTest">
<skipped />
</testcase>
<testcase name="shouldCallSetupBeforeRetrying" time="0.004" classname="org.apache.pulsar.tests.TestRetrySupportRetryTest">
<skipped />
</testcase>
</testsuite><testsuite name="org.apache.pulsar.tests.TestRetrySupportSuccessTest" tests="3" errors="0" failures="0" skipped="0" time="0.001"><testcase name="shouldCallSetupOnce1" time="0.000" classname="org.apache.pulsar.tests.TestRetrySupportSuccessTest" />
<testcase name="shouldCallSetupOnce3" time="0.001" classname="org.apache.pulsar.tests.TestRetrySupportSuccessTest" />
<testcase name="shouldCallSetupOnce2" time="0.000" classname="org.apache.pulsar.tests.TestRetrySupportSuccessTest" />
</testsuite><testsuite name="org.apache.pulsar.tests.ThreadDumpUtilTest" tests="2" errors="0" failures="0" skipped="0" time="0.017"><testcase name="testHelp" time="0.002" classname="org.apache.pulsar.tests.ThreadDumpUtilTest" />
<testcase name="testThreadDump" time="0.015" classname="org.apache.pulsar.tests.ThreadDumpUtilTest" />
</testsuite><testsuite name="org.apache.pulsar.utils.SimpleTextOutputStreamTest" tests="4" errors="0" failures="0" skipped="0" time="0.049999999999999996"><testcase name="testBooleanFormat" time="0.006" classname="org.apache.pulsar.utils.SimpleTextOutputStreamTest" />
<testcase name="testDoubleFormat" time="0.023" classname="org.apache.pulsar.utils.SimpleTextOutputStreamTest" />
<testcase name="testLongFormat" time="0.008" classname="org.apache.pulsar.utils.SimpleTextOutputStreamTest" />
<testcase name="testString" time="0.013" classname="org.apache.pulsar.utils.SimpleTextOutputStreamTest" />
</testsuite><testsuite name="org.apache.pulsar.utils.StatsOutputStreamTest" tests="6" errors="0" failures="0" skipped="0" time="0.059"><testcase name="testLists" time="0.013" classname="org.apache.pulsar.utils.StatsOutputStreamTest" />
<testcase name="testNamedObjects" time="0.009" classname="org.apache.pulsar.utils.StatsOutputStreamTest" />
<testcase name="testNestedObjects" time="0.006" classname="org.apache.pulsar.utils.StatsOutputStreamTest" />
<testcase name="testNamedLists" time="0.012" classname="org.apache.pulsar.utils.StatsOutputStreamTest" />
<testcase name="testPairs" time="0.008" classname="org.apache.pulsar.utils.StatsOutputStreamTest" />
<testcase name="testObjects" time="0.011" classname="org.apache.pulsar.utils.StatsOutputStreamTest" />
</testsuite><testsuite name="org.apache.pulsar.websocket.proxy.ProxyAuthenticationTest" tests="4" errors="0" failures="0" skipped="0" time="28.904000000000003"><testcase name="unauthenticatedSocketTest" time="6.510" classname="org.apache.pulsar.websocket.proxy.ProxyAuthenticationTest" />
<testcase name="authenticatedSocketTest" time="7.780" classname="org.apache.pulsar.websocket.proxy.ProxyAuthenticationTest" />
<testcase name="statsTest" time="6.682" classname="org.apache.pulsar.websocket.proxy.ProxyAuthenticationTest" />
<testcase name="anonymousSocketTest" time="7.932" classname="org.apache.pulsar.websocket.proxy.ProxyAuthenticationTest" />
</testsuite><testsuite name="org.apache.pulsar.websocket.proxy.ProxyAuthorizationTest" tests="1" errors="0" failures="0" skipped="0" time="1.263"><testcase name="test" time="1.263" classname="org.apache.pulsar.websocket.proxy.ProxyAuthorizationTest" />
</testsuite><testsuite name="org.apache.pulsar.websocket.proxy.ProxyConfigurationTest" tests="2" errors="0" failures="0" skipped="0" time="8.943"><testcase name="configTest" time="4.667" classname="org.apache.pulsar.websocket.proxy.ProxyConfigurationTest" />
<testcase name="configTest" time="4.276" classname="org.apache.pulsar.websocket.proxy.ProxyConfigurationTest" />
</testsuite><testsuite name="org.apache.pulsar.websocket.proxy.ProxyPublishConsumeTlsTest" tests="1" errors="0" failures="0" skipped="0" time="10.821"><testcase name="socketTest" time="10.821" classname="org.apache.pulsar.websocket.proxy.ProxyPublishConsumeTlsTest" />
</testsuite><testsuite name="org.apache.pulsar.websocket.proxy.ProxyPublishConsumeWithoutZKTest" tests="1" errors="0" failures="0" skipped="0" time="7.28"><testcase name="socketTest" time="7.280" classname="org.apache.pulsar.websocket.proxy.ProxyPublishConsumeWithoutZKTest" />
</testsuite><testsuite name="org.apache.pulsar.websocket.proxy.v1.V1_ProxyAuthenticationTest" tests="4" errors="0" failures="0" skipped="0" time="29.941000000000003"><testcase name="anonymousSocketTest" time="8.880" classname="org.apache.pulsar.websocket.proxy.v1.V1_ProxyAuthenticationTest" />
<testcase name="authenticatedSocketTest" time="8.345" classname="org.apache.pulsar.websocket.proxy.v1.V1_ProxyAuthenticationTest" />
<testcase name="statsTest" time="5.366" classname="org.apache.pulsar.websocket.proxy.v1.V1_ProxyAuthenticationTest" />
<testcase name="unauthenticatedSocketTest" time="7.350" classname="org.apache.pulsar.websocket.proxy.v1.V1_ProxyAuthenticationTest" />
</testsuite></testsuites>

File diff suppressed because it is too large Load diff

View file

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<testsuites name="React components test" tests="1" failures="0" errors="0" time="1.0">
<testsuite name="&lt;Component /&gt;" errors="0" failures="0" skipped="0" timestamp="2021-01-24T19:21:45" time="0.798" tests="1">
<testcase classname="" name="&lt;Component /&gt; should render properly" time="0.704">
</testcase>
</testsuite>
</testsuites>

File diff suppressed because it is too large Load diff

View file

@ -1,516 +0,0 @@
.browserslistrc
.editorconfig
.eleventy.js
.eslintignore
.eslintrc.yml
.fossaignore
.gitattributes
.github/CODE_OF_CONDUCT.md
.github/CONTRIBUTING.md
.github/FUNDING.yml
.github/ISSUE_TEMPLATE/bug_report.md
.github/ISSUE_TEMPLATE/feature_request.md
.github/ISSUE_TEMPLATE/support-question.md
.github/PULL_REQUEST_TEMPLATE.md
.github/stale.yml
.github/workflows/mocha.yml
.github/workflows/nightly-site-deploy.yml
.github/workflows/purge-expired-artifacts.yml
.gitignore
.lintstagedrc.json
.mailmap
.markdownlint.json
.mocharc.yml
.npmrc
.nycrc
.wallaby.js
AUTHORS
CHANGELOG.md
LICENSE
MAINTAINERS.md
PROJECT_CHARTER.md
README.md
assets/growl/error.png
assets/growl/ok.png
assets/mocha-banner-192.png
assets/mocha-banner.svg
assets/mocha-fixture-wizard.sketch
assets/mocha-logo-128.png
assets/mocha-logo-192.png
assets/mocha-logo-64.png
assets/mocha-logo-96.png
assets/mocha-logo.svg
assets/opencollective-header.png
bin/_mocha
bin/mocha
browser-entry.js
docs/.browserslistrc
docs/.eleventyignore
docs/API.md
docs/CNAME
docs/LICENSE-CC-BY-4.0
docs/README.md
docs/_data/blocklist.json
docs/_data/files.js
docs/_data/supporters.js
docs/_data/toc.js
docs/_data/usage.js
docs/_headers
docs/_includes/default.liquid
docs/_includes/fixture-wizard.html
docs/_includes/supporters.md
docs/api-tutorials/custom-reporter.md
docs/api-tutorials/jsdoc.tutorials.json
docs/changelogs/CHANGELOG_V3_older.md
docs/changelogs/CHANGELOG_V4.md
docs/changelogs/README.md
docs/css/normalize.css
docs/css/prism.css
docs/css/style.css
docs/css/supporters.css
docs/example/Array.js
docs/example/async-dump.js
docs/example/debug-hanging-mocha.js
docs/example/tests.html
docs/favicon.ico
docs/images/emacs.png
docs/images/jetbrains-plugin.png
docs/images/join-chat.svg
docs/images/link-icon.svg
docs/images/matomo-logo.png
docs/images/mocha-logo.svg
docs/images/mocha_side_bar.png
docs/images/openjsf-logo.svg
docs/images/reporter-doc.png
docs/images/reporter-dot.png
docs/images/reporter-html.png
docs/images/reporter-json-stream.png
docs/images/reporter-json.png
docs/images/reporter-landing-fail.png
docs/images/reporter-landing.png
docs/images/reporter-list.png
docs/images/reporter-min.png
docs/images/reporter-nyan.png
docs/images/reporter-progress.png
docs/images/reporter-spec-duration.png
docs/images/reporter-spec-fail.png
docs/images/reporter-spec.png
docs/images/reporter-string-diffs.png
docs/images/reporter-tap.png
docs/images/test-duration-range.png
docs/images/wallaby-logo.png
docs/images/wallaby.png
docs/index.md
docs/js/html5shiv.min.js
example/config/.mocharc.js
example/config/.mocharc.json
example/config/.mocharc.jsonc
example/config/.mocharc.yml
example/config/README.md
index.js
jsdoc.conf.json
karma.conf.js
lib/browser/growl.js
lib/browser/highlight-tags.js
lib/browser/parse-query.js
lib/browser/progress.js
lib/browser/template.html
lib/cli/cli.js
lib/cli/collect-files.js
lib/cli/commands.js
lib/cli/config.js
lib/cli/index.js
lib/cli/init.js
lib/cli/lookup-files.js
lib/cli/node-flags.js
lib/cli/one-and-dones.js
lib/cli/options.js
lib/cli/run-helpers.js
lib/cli/run-option-metadata.js
lib/cli/run.js
lib/cli/watch-run.js
lib/context.js
lib/errors.js
lib/esm-utils.js
lib/hook.js
lib/interfaces/bdd.js
lib/interfaces/common.js
lib/interfaces/exports.js
lib/interfaces/index.js
lib/interfaces/qunit.js
lib/interfaces/tdd.js
lib/mocha.js
lib/mocharc.json
lib/nodejs/buffered-worker-pool.js
lib/nodejs/file-unloader.js
lib/nodejs/growl.js
lib/nodejs/parallel-buffered-runner.js
lib/nodejs/reporters/parallel-buffered.js
lib/nodejs/serializer.js
lib/nodejs/worker.js
lib/pending.js
lib/plugin-loader.js
lib/reporters/base.js
lib/reporters/doc.js
lib/reporters/dot.js
lib/reporters/html.js
lib/reporters/index.js
lib/reporters/json-stream.js
lib/reporters/json.js
lib/reporters/landing.js
lib/reporters/list.js
lib/reporters/markdown.js
lib/reporters/min.js
lib/reporters/nyan.js
lib/reporters/progress.js
lib/reporters/spec.js
lib/reporters/tap.js
lib/reporters/xunit.js
lib/runnable.js
lib/runner.js
lib/stats-collector.js
lib/suite.js
lib/test.js
lib/utils.js
mocha.css
netlify.toml
package-lock.json
package-scripts.js
package.json
rollup.config.js
scripts/karma-rollup-plugin.js
scripts/linkify-changelog.js
scripts/netlify-headers.js
scripts/pick-from-package-json.js
scripts/update-authors.js
test/README.md
test/assertions.js
test/browser-specific/esm.spec.mjs
test/browser-specific/fixtures/esm.fixture.mjs
test/browser-specific/fixtures/requirejs/lib.fixture.js
test/browser-specific/fixtures/requirejs/main.fixture.js
test/browser-specific/fixtures/webpack/webpack.config.js
test/browser-specific/fixtures/webpack/webpack.fixture.mjs
test/browser-specific/requirejs-setup.js
test/browser-specific/setup.js
test/compiler-fixtures/foo.fixture.js
test/compiler/test.coffee
test/compiler/test.foo
test/integration/README.md
test/integration/color.spec.js
test/integration/common-js-require.spec.js
test/integration/compiler-globbing.spec.js
test/integration/config.spec.js
test/integration/deprecate.spec.js
test/integration/diffs.spec.js
test/integration/duplicate-arguments.spec.js
test/integration/esm.spec.js
test/integration/events.spec.js
test/integration/file-utils.spec.js
test/integration/fixtures/__default__.fixture.js
test/integration/fixtures/cascade.fixture.js
test/integration/fixtures/common-js-require.fixture.js
test/integration/fixtures/config/mocha-config/index.js
test/integration/fixtures/config/mocha-config/package.json
test/integration/fixtures/config/mocharc.cjs
test/integration/fixtures/config/mocharc.js
test/integration/fixtures/config/mocharc.json
test/integration/fixtures/config/mocharc.yaml
test/integration/fixtures/current-test-title.fixture.js
test/integration/fixtures/deprecate.fixture.js
test/integration/fixtures/diffs/diffs.css.in
test/integration/fixtures/diffs/diffs.css.out
test/integration/fixtures/diffs/diffs.fixture.js
test/integration/fixtures/diffs/output
test/integration/fixtures/esm/add.mjs
test/integration/fixtures/esm/esm-failure.fixture.mjs
test/integration/fixtures/esm/esm-success.fixture.mjs
test/integration/fixtures/esm/js-folder/add.js
test/integration/fixtures/esm/js-folder/esm-in-js.fixture.js
test/integration/fixtures/esm/js-folder/package.json
test/integration/fixtures/esm/syntax-error/esm-syntax-error.fixture.mjs
test/integration/fixtures/exit.fixture.js
test/integration/fixtures/glob/glob.spec.js
test/integration/fixtures/glob/nested/glob.spec.js
test/integration/fixtures/hooks/after-each-hook-async-error.fixture.js
test/integration/fixtures/hooks/after-each-hook-error.fixture.js
test/integration/fixtures/hooks/after-each-this-test-error.fixture.js
test/integration/fixtures/hooks/after-hook-async-error.fixture.js
test/integration/fixtures/hooks/after-hook-deepnested-error.fixture.js
test/integration/fixtures/hooks/after-hook-error.fixture.js
test/integration/fixtures/hooks/after-hook-nested-error.fixture.js
test/integration/fixtures/hooks/before-each-hook-async-error.fixture.js
test/integration/fixtures/hooks/before-each-hook-error.fixture.js
test/integration/fixtures/hooks/before-hook-async-error-tip.fixture.js
test/integration/fixtures/hooks/before-hook-async-error.fixture.js
test/integration/fixtures/hooks/before-hook-deepnested-error.fixture.js
test/integration/fixtures/hooks/before-hook-error-tip.fixture.js
test/integration/fixtures/hooks/before-hook-error.fixture.js
test/integration/fixtures/hooks/before-hook-nested-error.fixture.js
test/integration/fixtures/hooks/before-hook-root-error.fixture.js
test/integration/fixtures/hooks/multiple-hook-async-error.fixture.js
test/integration/fixtures/hooks/multiple-hook-error.fixture.js
test/integration/fixtures/multiple-done-async.fixture.js
test/integration/fixtures/multiple-done-before-each.fixture.js
test/integration/fixtures/multiple-done-before.fixture.js
test/integration/fixtures/multiple-done-specs.fixture.js
test/integration/fixtures/multiple-done-with-error.fixture.js
test/integration/fixtures/multiple-done.fixture.js
test/integration/fixtures/multiple-runs/clean-references.fixture.js
test/integration/fixtures/multiple-runs/dispose.fixture.js
test/integration/fixtures/multiple-runs/multiple-runs-with-different-output-suite.fixture.js
test/integration/fixtures/multiple-runs/multiple-runs-with-flaky-before-each-suite.fixture.js
test/integration/fixtures/multiple-runs/multiple-runs-with-flaky-before-each.fixture.js
test/integration/fixtures/multiple-runs/run-thrice-helper.js
test/integration/fixtures/multiple-runs/run-thrice.fixture.js
test/integration/fixtures/multiple-runs/start-second-run-if-previous-is-still-running-suite.fixture.js
test/integration/fixtures/multiple-runs/start-second-run-if-previous-is-still-running.fixture.js
test/integration/fixtures/no-diff.fixture.js
test/integration/fixtures/options/allow-uncaught/propagate.fixture.js
test/integration/fixtures/options/allow-uncaught/this-skip-it.fixture.js
test/integration/fixtures/options/async-only-async.fixture.js
test/integration/fixtures/options/async-only-sync.fixture.js
test/integration/fixtures/options/bail-async.fixture.js
test/integration/fixtures/options/bail-with-after.fixture.js
test/integration/fixtures/options/bail-with-afterEach.fixture.js
test/integration/fixtures/options/bail-with-before.fixture.js
test/integration/fixtures/options/bail-with-beforeEach.fixture.js
test/integration/fixtures/options/bail-with-test.fixture.js
test/integration/fixtures/options/bail.fixture.js
test/integration/fixtures/options/delay-fail.fixture.js
test/integration/fixtures/options/delay-only.fixture.js
test/integration/fixtures/options/delay.fixture.js
test/integration/fixtures/options/extension/test1.fixture.js
test/integration/fixtures/options/extension/test2.fixture.coffee
test/integration/fixtures/options/file-alpha.fixture.js
test/integration/fixtures/options/file-beta.fixture.js
test/integration/fixtures/options/file-theta.fixture.js
test/integration/fixtures/options/forbid-only/only-before-each.fixture.js
test/integration/fixtures/options/forbid-only/only-before.fixture.js
test/integration/fixtures/options/forbid-only/only-empty-suite.fixture.js
test/integration/fixtures/options/forbid-only/only-suite.fixture.js
test/integration/fixtures/options/forbid-only/only.fixture.js
test/integration/fixtures/options/forbid-only/passed.fixture.js
test/integration/fixtures/options/forbid-pending/before-this-skip.fixture.js
test/integration/fixtures/options/forbid-pending/beforeEach-this-skip.fixture.js
test/integration/fixtures/options/forbid-pending/passed.fixture.js
test/integration/fixtures/options/forbid-pending/pending.fixture.js
test/integration/fixtures/options/forbid-pending/skip-empty-suite.fixture.js
test/integration/fixtures/options/forbid-pending/skip-suite.fixture.js
test/integration/fixtures/options/forbid-pending/skip.fixture.js
test/integration/fixtures/options/forbid-pending/this-skip.fixture.js
test/integration/fixtures/options/grep.fixture.js
test/integration/fixtures/options/ignore/fail.fixture.js
test/integration/fixtures/options/ignore/nested/fail.fixture.js
test/integration/fixtures/options/ignore/nested/pass.fixture.js
test/integration/fixtures/options/ignore/pass.fixture.js
test/integration/fixtures/options/jobs/fail-in-parallel.fixture.js
test/integration/fixtures/options/only/bdd.fixture.js
test/integration/fixtures/options/only/qunit.fixture.js
test/integration/fixtures/options/only/tdd.fixture.js
test/integration/fixtures/options/parallel/bail.fixture.js
test/integration/fixtures/options/parallel/exclusive-test-a.fixture.js
test/integration/fixtures/options/parallel/exclusive-test-b.fixture.js
test/integration/fixtures/options/parallel/retries-a.fixture.js
test/integration/fixtures/options/parallel/retries-b.fixture.js
test/integration/fixtures/options/parallel/syntax-err.fixture.js
test/integration/fixtures/options/parallel/test-a.fixture.js
test/integration/fixtures/options/parallel/test-b.fixture.js
test/integration/fixtures/options/parallel/test-c.fixture.js
test/integration/fixtures/options/parallel/test-d.fixture.js
test/integration/fixtures/options/parallel/uncaught.fixture.js
test/integration/fixtures/options/reporter-with-options.fixture.js
test/integration/fixtures/options/retries.fixture.js
test/integration/fixtures/options/slow-test.fixture.js
test/integration/fixtures/options/sort-alpha.fixture.js
test/integration/fixtures/options/sort-beta.fixture.js
test/integration/fixtures/options/watch/dependency.fixture.js
test/integration/fixtures/options/watch/hook.fixture.js
test/integration/fixtures/options/watch/test-file-change.fixture.js
test/integration/fixtures/options/watch/test-with-dependency.fixture.js
test/integration/fixtures/parallel/test1.mjs
test/integration/fixtures/parallel/test2.mjs
test/integration/fixtures/parallel/test3.mjs
test/integration/fixtures/passing-async.fixture.js
test/integration/fixtures/passing-sync.fixture.js
test/integration/fixtures/passing.fixture.js
test/integration/fixtures/pending/programmatic.fixture.js
test/integration/fixtures/pending/skip-async-before-hooks.fixture.js
test/integration/fixtures/pending/skip-async-before-nested.fixture.js
test/integration/fixtures/pending/skip-async-before.fixture.js
test/integration/fixtures/pending/skip-async-beforeEach.fixture.js
test/integration/fixtures/pending/skip-async-spec.fixture.js
test/integration/fixtures/pending/skip-hierarchy.fixture.js
test/integration/fixtures/pending/skip-shorthand.fixture.js
test/integration/fixtures/pending/skip-sync-after.fixture.js
test/integration/fixtures/pending/skip-sync-before-hooks.fixture.js
test/integration/fixtures/pending/skip-sync-before-inner.fixture.js
test/integration/fixtures/pending/skip-sync-before-nested.fixture.js
test/integration/fixtures/pending/skip-sync-before.fixture.js
test/integration/fixtures/pending/skip-sync-beforeEach-cond.fixture.js
test/integration/fixtures/pending/skip-sync-beforeEach.fixture.js
test/integration/fixtures/pending/skip-sync-spec.fixture.js
test/integration/fixtures/pending/spec.fixture.js
test/integration/fixtures/plugins/global-fixtures/global-setup-teardown-multiple.fixture.js
test/integration/fixtures/plugins/global-fixtures/global-setup-teardown.fixture.js
test/integration/fixtures/plugins/global-fixtures/global-setup.fixture.js
test/integration/fixtures/plugins/global-fixtures/global-teardown.fixture.js
test/integration/fixtures/plugins/root-hooks/esm/package.json
test/integration/fixtures/plugins/root-hooks/esm/root-hook-defs-esm.fixture.js
test/integration/fixtures/plugins/root-hooks/root-hook-defs-a.fixture.js
test/integration/fixtures/plugins/root-hooks/root-hook-defs-b.fixture.js
test/integration/fixtures/plugins/root-hooks/root-hook-defs-c.fixture.js
test/integration/fixtures/plugins/root-hooks/root-hook-defs-d.fixture.js
test/integration/fixtures/plugins/root-hooks/root-hook-defs-esm-broken.fixture.js
test/integration/fixtures/plugins/root-hooks/root-hook-defs-esm.fixture.mjs
test/integration/fixtures/plugins/root-hooks/root-hook-test-2.fixture.js
test/integration/fixtures/plugins/root-hooks/root-hook-test.fixture.js
test/integration/fixtures/regression/issue-1991.fixture.js
test/integration/fixtures/regression/issue-2315.fixture.js
test/integration/fixtures/regression/issue-2406.fixture.js
test/integration/fixtures/regression/issue-2417.fixture.js
test/integration/fixtures/reporters.fixture.js
test/integration/fixtures/retries/async.fixture.js
test/integration/fixtures/retries/early-pass.fixture.js
test/integration/fixtures/retries/hooks.fixture.js
test/integration/fixtures/retries/nested.fixture.js
test/integration/fixtures/runner/events-bail-retries.fixture.js
test/integration/fixtures/runner/events-bail.fixture.js
test/integration/fixtures/runner/events-basic.fixture.js
test/integration/fixtures/runner/events-delay.fixture.js
test/integration/fixtures/runner/events-retries.fixture.js
test/integration/fixtures/simple-reporter.js
test/integration/fixtures/simple-ui.fixture.js
test/integration/fixtures/suite/suite-no-callback.fixture.js
test/integration/fixtures/suite/suite-returning-value.fixture.js
test/integration/fixtures/suite/suite-skipped-callback.fixture.js
test/integration/fixtures/suite/suite-skipped-no-callback.fixture.js
test/integration/fixtures/test-for-simple-ui.fixture.js
test/integration/fixtures/timeout-override.fixture.js
test/integration/fixtures/timeout.fixture.js
test/integration/fixtures/uncaught/after-runner.fixture.js
test/integration/fixtures/uncaught/double.fixture.js
test/integration/fixtures/uncaught/fatal.fixture.js
test/integration/fixtures/uncaught/hook.fixture.js
test/integration/fixtures/uncaught/issue-1327.fixture.js
test/integration/fixtures/uncaught/issue-1417.fixture.js
test/integration/fixtures/uncaught/listeners.fixture.js
test/integration/fixtures/uncaught/pending.fixture.js
test/integration/fixtures/uncaught/recover.fixture.js
test/integration/fixtures/uncaught/unhandled.fixture.js
test/integration/glob.spec.js
test/integration/helpers.js
test/integration/hook-err.spec.js
test/integration/hooks.spec.js
test/integration/init.spec.js
test/integration/invalid-arguments.spec.js
test/integration/multiple-done.spec.js
test/integration/multiple-runs.spec.js
test/integration/no-diff.spec.js
test/integration/only.spec.js
test/integration/options/allowUncaught.spec.js
test/integration/options/asyncOnly.spec.js
test/integration/options/bail.spec.js
test/integration/options/compilers.spec.js
test/integration/options/delay.spec.js
test/integration/options/exit.spec.js
test/integration/options/extension.spec.js
test/integration/options/file.spec.js
test/integration/options/forbidOnly.spec.js
test/integration/options/forbidPending.spec.js
test/integration/options/grep.spec.js
test/integration/options/ignore.spec.js
test/integration/options/invert.spec.js
test/integration/options/jobs.spec.js
test/integration/options/listInterfaces.spec.js
test/integration/options/listReporters.spec.js
test/integration/options/node-flags.spec.js
test/integration/options/opts.spec.js
test/integration/options/parallel.spec.js
test/integration/options/reporter-option.spec.js
test/integration/options/retries.spec.js
test/integration/options/sort.spec.js
test/integration/options/timeout.spec.js
test/integration/options/ui.spec.js
test/integration/options/watch.spec.js
test/integration/parallel.spec.js
test/integration/pending.spec.js
test/integration/plugins/global-fixtures.spec.js
test/integration/plugins/root-hooks.spec.js
test/integration/regression.spec.js
test/integration/reporters.spec.js
test/integration/retries.spec.js
test/integration/suite.spec.js
test/integration/timeout.spec.js
test/integration/uncaught.spec.js
test/interfaces/bdd.spec.js
test/interfaces/exports.spec.js
test/interfaces/qunit.spec.js
test/interfaces/tdd.spec.js
test/jsapi/index.js
test/node-unit/buffered-worker-pool.spec.js
test/node-unit/cli/config.spec.js
test/node-unit/cli/fixtures/bad-module.fixture.js
test/node-unit/cli/node-flags.spec.js
test/node-unit/cli/options.spec.js
test/node-unit/cli/run-helpers.spec.js
test/node-unit/cli/run.spec.js
test/node-unit/fixtures/dumb-module.fixture.js
test/node-unit/fixtures/dumber-module.fixture.js
test/node-unit/fixtures/wonky-reporter.fixture.js
test/node-unit/mocha.spec.js
test/node-unit/parallel-buffered-runner.spec.js
test/node-unit/reporters/parallel-buffered.spec.js
test/node-unit/serializer.spec.js
test/node-unit/stack-trace-filter.spec.js
test/node-unit/utils.spec.js
test/node-unit/worker.spec.js
test/only/bdd-require.spec.js
test/only/global/bdd.spec.js
test/only/global/qunit.spec.js
test/only/global/tdd.spec.js
test/reporters/base.spec.js
test/reporters/doc.spec.js
test/reporters/dot.spec.js
test/reporters/helpers.js
test/reporters/json-stream.spec.js
test/reporters/json.spec.js
test/reporters/landing.spec.js
test/reporters/list.spec.js
test/reporters/markdown.spec.js
test/reporters/min.spec.js
test/reporters/nyan.spec.js
test/reporters/progress.spec.js
test/reporters/spec.spec.js
test/reporters/tap.spec.js
test/reporters/xunit.spec.js
test/require/a.js
test/require/b.coffee
test/require/c.js
test/require/d.coffee
test/require/require.spec.js
test/setup.js
test/smoke/smoke.spec.js
test/unit/context.spec.js
test/unit/duration.spec.js
test/unit/errors.spec.js
test/unit/globals.spec.js
test/unit/grep.spec.js
test/unit/hook-async.spec.js
test/unit/hook-sync-nested.spec.js
test/unit/hook-sync.spec.js
test/unit/hook-timeout.spec.js
test/unit/hook.spec.js
test/unit/mocha.spec.js
test/unit/overspecified-async.spec.js
test/unit/parse-query.spec.js
test/unit/plugin-loader.spec.js
test/unit/required-tokens.spec.js
test/unit/root.spec.js
test/unit/runnable.spec.js
test/unit/runner.spec.js
test/unit/suite.spec.js
test/unit/test.spec.js
test/unit/throw.spec.js
test/unit/timeout.spec.js
test/unit/utils.spec.js

File diff suppressed because it is too large Load diff

View file

@ -1,61 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<testsuites name="jest tests" tests="6" failures="4" errors="0" time="1.36">
<testsuite name="__tests__\main.test.js" errors="0" failures="3" skipped="0" timestamp="2020-10-27T21:39:41" time="0.486" tests="4">
<testcase classname="Test 1" name="Passing test" time="0.001">
</testcase>
<testcase classname="Test 1 Test 1.1" name="Failing test" time="0.002">
<failure>Error: expect(received).toBeTruthy()
Received: false
at Object.&lt;anonymous&gt; (C:\Users\Michal\Workspace\dorny\test-check\reports\jest\__tests__\main.test.js:10:21)
at Object.asyncJestTest (C:\Users\Michal\Workspace\dorny\test-check\reports\jest\node_modules\jest-jasmine2\build\jasmineAsyncInstall.js:106:37)
at C:\Users\Michal\Workspace\dorny\test-check\reports\jest\node_modules\jest-jasmine2\build\queueRunner.js:45:12
at new Promise (&lt;anonymous&gt;)
at mapper (C:\Users\Michal\Workspace\dorny\test-check\reports\jest\node_modules\jest-jasmine2\build\queueRunner.js:28:19)
at C:\Users\Michal\Workspace\dorny\test-check\reports\jest\node_modules\jest-jasmine2\build\queueRunner.js:75:41
at processTicksAndRejections (internal/process/task_queues.js:97:5)</failure>
</testcase>
<testcase classname="Test 1 Test 1.1" name="Exception in target unit" time="0">
<failure>Error: Some error
at Object.throwError (C:\Users\Michal\Workspace\dorny\test-check\reports\jest\lib\main.js:2:9)
at Object.&lt;anonymous&gt; (C:\Users\Michal\Workspace\dorny\test-check\reports\jest\__tests__\main.test.js:14:11)
at Object.asyncJestTest (C:\Users\Michal\Workspace\dorny\test-check\reports\jest\node_modules\jest-jasmine2\build\jasmineAsyncInstall.js:106:37)
at C:\Users\Michal\Workspace\dorny\test-check\reports\jest\node_modules\jest-jasmine2\build\queueRunner.js:45:12
at new Promise (&lt;anonymous&gt;)
at mapper (C:\Users\Michal\Workspace\dorny\test-check\reports\jest\node_modules\jest-jasmine2\build\queueRunner.js:28:19)
at C:\Users\Michal\Workspace\dorny\test-check\reports\jest\node_modules\jest-jasmine2\build\queueRunner.js:75:41
at processTicksAndRejections (internal/process/task_queues.js:97:5)</failure>
</testcase>
<testcase classname="Test 2" name="Exception in test" time="0">
<failure>Error: Some error
at Object.&lt;anonymous&gt; (C:\Users\Michal\Workspace\dorny\test-check\reports\jest\__tests__\main.test.js:21:11)
at Object.asyncJestTest (C:\Users\Michal\Workspace\dorny\test-check\reports\jest\node_modules\jest-jasmine2\build\jasmineAsyncInstall.js:106:37)
at C:\Users\Michal\Workspace\dorny\test-check\reports\jest\node_modules\jest-jasmine2\build\queueRunner.js:45:12
at new Promise (&lt;anonymous&gt;)
at mapper (C:\Users\Michal\Workspace\dorny\test-check\reports\jest\node_modules\jest-jasmine2\build\queueRunner.js:28:19)
at C:\Users\Michal\Workspace\dorny\test-check\reports\jest\node_modules\jest-jasmine2\build\queueRunner.js:75:41
at processTicksAndRejections (internal/process/task_queues.js:97:5)</failure>
</testcase>
</testsuite>
<testsuite name="__tests__\second.test.js" errors="0" failures="1" skipped="1" timestamp="2020-10-27T21:39:41" time="0.082" tests="2">
<testcase classname="" name="Timeout test" time="0.004">
<failure>: Timeout - Async callback was not invoked within the 1 ms timeout specified by jest.setTimeout.Timeout - Async callback was not invoked within the 1 ms timeout specified by jest.setTimeout.Error:
at new Spec (C:\Users\Michal\Workspace\dorny\test-check\reports\jest\node_modules\jest-jasmine2\build\jasmine\Spec.js:116:22)
at new Spec (C:\Users\Michal\Workspace\dorny\test-check\reports\jest\node_modules\jest-jasmine2\build\setup_jest_globals.js:78:9)
at specFactory (C:\Users\Michal\Workspace\dorny\test-check\reports\jest\node_modules\jest-jasmine2\build\jasmine\Env.js:523:24)
at Env.it (C:\Users\Michal\Workspace\dorny\test-check\reports\jest\node_modules\jest-jasmine2\build\jasmine\Env.js:592:24)
at Env.it (C:\Users\Michal\Workspace\dorny\test-check\reports\jest\node_modules\jest-jasmine2\build\jasmineAsyncInstall.js:134:23)
at it (C:\Users\Michal\Workspace\dorny\test-check\reports\jest\node_modules\jest-jasmine2\build\jasmine\jasmineLight.js:100:21)
at Object.&lt;anonymous&gt; (C:\Users\Michal\Workspace\dorny\test-check\reports\jest\__tests__\second.test.js:1:34)
at Runtime._execModule (C:\Users\Michal\Workspace\dorny\test-check\reports\jest\node_modules\jest-runtime\build\index.js:1245:24)
at Runtime._loadModule (C:\Users\Michal\Workspace\dorny\test-check\reports\jest\node_modules\jest-runtime\build\index.js:844:12)
at Runtime.requireModule (C:\Users\Michal\Workspace\dorny\test-check\reports\jest\node_modules\jest-runtime\build\index.js:694:10)
at jasmine2 (C:\Users\Michal\Workspace\dorny\test-check\reports\jest\node_modules\jest-jasmine2\build\index.js:230:13)
at runTestInternal (C:\Users\Michal\Workspace\dorny\test-check\reports\jest\node_modules\jest-runner\build\runTest.js:380:22)
at runTest (C:\Users\Michal\Workspace\dorny\test-check\reports\jest\node_modules\jest-runner\build\runTest.js:472:34)</failure>
</testcase>
<testcase classname="" name="Skipped test" time="0">
<skipped/>
</testcase>
</testsuite>
</testsuites>

View file

@ -1,158 +0,0 @@
{
"stats": {
"suites": 3,
"tests": 6,
"passes": 1,
"pending": 1,
"failures": 4,
"start": "2021-02-24T20:26:09.297Z",
"end": "2021-02-24T20:26:09.309Z",
"duration": 12
},
"tests": [
{
"title": "Timeout test",
"fullTitle": "Timeout test",
"file": "C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\mocha\\test\\second.test.js",
"duration": 8,
"currentRetry": 0,
"err": {
"stack": "Error: Timeout of 1ms exceeded. For async tests and hooks, ensure \"done()\" is called; if returning a Promise, ensure it resolves. (C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\mocha\\test\\second.test.js)\n at listOnTimeout (internal/timers.js:554:17)\n at processTimers (internal/timers.js:497:7)",
"message": "Timeout of 1ms exceeded. For async tests and hooks, ensure \"done()\" is called; if returning a Promise, ensure it resolves. (C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\mocha\\test\\second.test.js)",
"code": "ERR_MOCHA_TIMEOUT",
"timeout": 1,
"file": "C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\mocha\\test\\second.test.js"
}
},
{
"title": "Skipped test",
"fullTitle": "Skipped test",
"file": "C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\mocha\\test\\second.test.js",
"currentRetry": 0,
"err": {}
},
{
"title": "Passing test",
"fullTitle": "Test 1 Passing test",
"file": "C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\mocha\\test\\main.test.js",
"duration": 0,
"currentRetry": 0,
"speed": "fast",
"err": {}
},
{
"title": "Failing test",
"fullTitle": "Test 1 Test 1.1 Failing test",
"file": "C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\mocha\\test\\main.test.js",
"duration": 1,
"currentRetry": 0,
"err": {
"stack": "AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:\n\nfalse !== true\n\n at Context.<anonymous> (test\\main.test.js:11:14)\n at processImmediate (internal/timers.js:461:21)",
"message": "Expected values to be strictly equal:\n\nfalse !== true\n",
"generatedMessage": true,
"name": "AssertionError",
"code": "ERR_ASSERTION",
"actual": "false",
"expected": "true",
"operator": "strictEqual"
}
},
{
"title": "Exception in target unit",
"fullTitle": "Test 1 Test 1.1 Exception in target unit",
"file": "C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\mocha\\test\\main.test.js",
"duration": 0,
"currentRetry": 0,
"err": {
"stack": "Error: Some error\n at Object.throwError (lib\\main.js:2:9)\n at Context.<anonymous> (test\\main.test.js:15:11)\n at processImmediate (internal/timers.js:461:21)",
"message": "Some error"
}
},
{
"title": "Exception in test",
"fullTitle": "Test 2 Exception in test",
"file": "C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\mocha\\test\\main.test.js",
"duration": 0,
"currentRetry": 0,
"err": {
"stack": "Error: Some error\n at Context.<anonymous> (test\\main.test.js:22:11)\n at processImmediate (internal/timers.js:461:21)",
"message": "Some error"
}
}
],
"pending": [
{
"title": "Skipped test",
"fullTitle": "Skipped test",
"file": "C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\mocha\\test\\second.test.js",
"currentRetry": 0,
"err": {}
}
],
"failures": [
{
"title": "Timeout test",
"fullTitle": "Timeout test",
"file": "C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\mocha\\test\\second.test.js",
"duration": 8,
"currentRetry": 0,
"err": {
"stack": "Error: Timeout of 1ms exceeded. For async tests and hooks, ensure \"done()\" is called; if returning a Promise, ensure it resolves. (C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\mocha\\test\\second.test.js)\n at listOnTimeout (internal/timers.js:554:17)\n at processTimers (internal/timers.js:497:7)",
"message": "Timeout of 1ms exceeded. For async tests and hooks, ensure \"done()\" is called; if returning a Promise, ensure it resolves. (C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\mocha\\test\\second.test.js)",
"code": "ERR_MOCHA_TIMEOUT",
"timeout": 1,
"file": "C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\mocha\\test\\second.test.js"
}
},
{
"title": "Failing test",
"fullTitle": "Test 1 Test 1.1 Failing test",
"file": "C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\mocha\\test\\main.test.js",
"duration": 1,
"currentRetry": 0,
"err": {
"stack": "AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:\n\nfalse !== true\n\n at Context.<anonymous> (test\\main.test.js:11:14)\n at processImmediate (internal/timers.js:461:21)",
"message": "Expected values to be strictly equal:\n\nfalse !== true\n",
"generatedMessage": true,
"name": "AssertionError",
"code": "ERR_ASSERTION",
"actual": "false",
"expected": "true",
"operator": "strictEqual"
}
},
{
"title": "Exception in target unit",
"fullTitle": "Test 1 Test 1.1 Exception in target unit",
"file": "C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\mocha\\test\\main.test.js",
"duration": 0,
"currentRetry": 0,
"err": {
"stack": "Error: Some error\n at Object.throwError (lib\\main.js:2:9)\n at Context.<anonymous> (test\\main.test.js:15:11)\n at processImmediate (internal/timers.js:461:21)",
"message": "Some error"
}
},
{
"title": "Exception in test",
"fullTitle": "Test 2 Exception in test",
"file": "C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\mocha\\test\\main.test.js",
"duration": 0,
"currentRetry": 0,
"err": {
"stack": "Error: Some error\n at Context.<anonymous> (test\\main.test.js:22:11)\n at processImmediate (internal/timers.js:461:21)",
"message": "Some error"
}
}
],
"passes": [
{
"title": "Passing test",
"fullTitle": "Test 1 Passing test",
"file": "C:\\Users\\Michal\\Workspace\\dorny\\test-reporter\\reports\\mocha\\test\\main.test.js",
"duration": 0,
"currentRetry": 0,
"speed": "fast",
"err": {}
}
]
}

View file

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<testsuites>
<testsuite name="TestResults" errors="0" tests="3" failures="1" time="0.22047725">
<testcase classname="AcmeLibTests.AcmeLibTests" name="test_always_pass" time="0.036386333">
</testcase>
<testcase classname="AcmeLibTests.AcmeLibTests" name="test_always_skip" time="0.092039167">
</testcase>
<testcase classname="AcmeLibTests.AcmeLibTests" name="test_always_fail" time="0.09205175">
<failure message="failed"></failure>
</testcase>
</testsuite>
</testsuites>

View file

@ -1,93 +0,0 @@
import * as fs from 'fs'
import * as path from 'path'
import {JavaJunitParser} from '../src/parsers/java-junit/java-junit-parser'
import {ParseOptions} from '../src/test-parser'
import {getReport} from '../src/report/get-report'
import {normalizeFilePath} from '../src/utils/path-utils'
describe('java-junit tests', () => {
it('produces empty test run result when there are no test cases', async () => {
const fixturePath = path.join(__dirname, 'fixtures', 'empty', 'java-junit.xml')
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
const opts: ParseOptions = {
parseErrors: true,
trackedFiles: []
}
const parser = new JavaJunitParser(opts)
const result = await parser.parse(filePath, fileContent)
expect(result.tests).toBe(0)
expect(result.result).toBe('success')
})
it('report from apache/pulsar single suite test results matches snapshot', async () => {
const fixturePath = path.join(
__dirname,
'fixtures',
'external',
'java',
'TEST-org.apache.pulsar.AddMissingPatchVersionTest.xml'
)
const trackedFilesPath = path.join(__dirname, 'fixtures', 'external', 'java', 'files.txt')
const outputPath = path.join(__dirname, '__outputs__', 'pulsar-test-results-no-merge.md')
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
const trackedFiles = fs.readFileSync(trackedFilesPath, {encoding: 'utf8'}).split(/\n\r?/g)
const opts: ParseOptions = {
parseErrors: true,
trackedFiles
}
const parser = new JavaJunitParser(opts)
const result = await parser.parse(filePath, fileContent)
expect(result).toMatchSnapshot()
const report = getReport([result])
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
fs.writeFileSync(outputPath, report)
})
it('report from apache/pulsar test results matches snapshot', async () => {
const fixturePath = path.join(__dirname, 'fixtures', 'external', 'java', 'pulsar-test-report.xml')
const trackedFilesPath = path.join(__dirname, 'fixtures', 'external', 'java', 'files.txt')
const outputPath = path.join(__dirname, '__outputs__', 'pulsar-test-results.md')
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
const trackedFiles = fs.readFileSync(trackedFilesPath, {encoding: 'utf8'}).split(/\n\r?/g)
const opts: ParseOptions = {
parseErrors: true,
trackedFiles
}
const parser = new JavaJunitParser(opts)
const result = await parser.parse(filePath, fileContent)
expect(result).toMatchSnapshot()
const report = getReport([result])
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
fs.writeFileSync(outputPath, report)
})
it('parses empty failures in test results', async () => {
const fixturePath = path.join(__dirname, 'fixtures', 'external', 'java', 'empty_failures.xml')
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
const trackedFiles: string[] = []
const opts: ParseOptions = {
parseErrors: true,
trackedFiles
}
const parser = new JavaJunitParser(opts)
const result = await parser.parse(filePath, fileContent)
expect(result.result === 'failed')
expect(result.failed === 1)
})
})

View file

@ -1,75 +0,0 @@
import {parseStackTraceElement} from '../src/parsers/java-junit/java-stack-trace-element-parser'
describe('parseStackTraceLine tests', () => {
it('empty line is not parsed', async () => {
const line = ''
expect(parseStackTraceElement(line)).toBe(undefined)
})
describe('java class', () => {
it('simple', async () => {
const line =
'at org.apache.pulsar.AddMissingPatchVersionTest.testVersionStrings(AddMissingPatchVersionTest.java:29)'
expect(parseStackTraceElement(line)).toEqual({
tracePath: 'org.apache.pulsar.AddMissingPatchVersionTest.testVersionStrings',
fileName: 'AddMissingPatchVersionTest.java',
lineStr: '29'
})
})
it('inner class', async () => {
const line = 'at com.foo.Main$Inner.run(Main.java:29)'
expect(parseStackTraceElement(line)).toEqual({
tracePath: 'com.foo.Main$Inner.run',
fileName: 'Main.java',
lineStr: '29'
})
})
it('starts with whitespaces', async () => {
const line =
' \tat org.apache.pulsar.AddMissingPatchVersionTest.testVersionStrings(AddMissingPatchVersionTest.java:29)'
expect(parseStackTraceElement(line)).toEqual({
tracePath: 'org.apache.pulsar.AddMissingPatchVersionTest.testVersionStrings',
fileName: 'AddMissingPatchVersionTest.java',
lineStr: '29'
})
})
describe('since Java 9', () => {
it('with classloader and module', async () => {
// Based on Java 9 StackTraceElement.toString() Doc: https://docs.oracle.com/javase/9/docs/api/java/lang/StackTraceElement.html#toString--
const line = 'at com.foo.loader/foo@9.0/com.foo.Main.run(Main.java:101)'
expect(parseStackTraceElement(line)).toEqual({
classLoader: 'com.foo.loader',
moduleNameAndVersion: 'foo@9.0',
tracePath: 'com.foo.Main.run',
fileName: 'Main.java',
lineStr: '101'
})
})
it('with classloader', async () => {
const line = 'at com.foo.loader//com.foo.Main.run(Main.java:101)'
expect(parseStackTraceElement(line)).toEqual({
classLoader: 'com.foo.loader',
moduleNameAndVersion: undefined,
tracePath: 'com.foo.Main.run',
fileName: 'Main.java',
lineStr: '101'
})
})
})
})
describe('Kotlin class', () => {
it('method name containing whitespaces', async () => {
const line = 'at com.foo.Main.method with whitespaces(Main.kt:18)'
expect(parseStackTraceElement(line)).toEqual({
tracePath: 'com.foo.Main.method with whitespaces',
fileName: 'Main.kt',
lineStr: '18'
})
})
})
})

View file

@ -1,108 +0,0 @@
import * as fs from 'fs'
import * as path from 'path'
import {JestJunitParser} from '../src/parsers/jest-junit/jest-junit-parser'
import {ParseOptions} from '../src/test-parser'
import {getReport} from '../src/report/get-report'
import {normalizeFilePath} from '../src/utils/path-utils'
describe('jest-junit tests', () => {
it('produces empty test run result when there are no test cases in the testsuites element', async () => {
const fixturePath = path.join(__dirname, 'fixtures', 'empty', 'jest-junit.xml')
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
const opts: ParseOptions = {
parseErrors: true,
trackedFiles: []
}
const parser = new JestJunitParser(opts)
const result = await parser.parse(filePath, fileContent)
expect(result.tests).toBe(0)
expect(result.result).toBe('success')
})
it('produces empty test run result when there are no test cases in a nested testsuite element', async () => {
const fixturePath = path.join(__dirname, 'fixtures', 'empty', 'jest-junit-empty-testsuite.xml')
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
const opts: ParseOptions = {
parseErrors: true,
trackedFiles: []
}
const parser = new JestJunitParser(opts)
const result = await parser.parse(filePath, fileContent)
expect(result.tests).toBe(0)
expect(result.result).toBe('success')
})
it('report from ./reports/jest test results matches snapshot', async () => {
const fixturePath = path.join(__dirname, 'fixtures', 'jest-junit.xml')
const outputPath = path.join(__dirname, '__outputs__', 'jest-junit.md')
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
const opts: ParseOptions = {
parseErrors: true,
trackedFiles: ['__tests__/main.test.js', '__tests__/second.test.js', 'lib/main.js']
//workDir: 'C:/Users/Michal/Workspace/dorny/test-check/reports/jest/'
}
const parser = new JestJunitParser(opts)
const result = await parser.parse(filePath, fileContent)
expect(result).toMatchSnapshot()
const report = getReport([result])
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
fs.writeFileSync(outputPath, report)
})
it('report from facebook/jest test results matches snapshot', async () => {
const fixturePath = path.join(__dirname, 'fixtures', 'external', 'jest', 'jest-test-results.xml')
const trackedFilesPath = path.join(__dirname, 'fixtures', 'external', 'jest', 'files.txt')
const outputPath = path.join(__dirname, '__outputs__', 'jest-test-results.md')
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
const trackedFiles = fs.readFileSync(trackedFilesPath, {encoding: 'utf8'}).split(/\n\r?/g)
const opts: ParseOptions = {
parseErrors: true,
trackedFiles
//workDir: '/home/dorny/dorny/jest/'
}
const parser = new JestJunitParser(opts)
const result = await parser.parse(filePath, fileContent)
expect(result).toMatchSnapshot()
const report = getReport([result])
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
fs.writeFileSync(outputPath, report)
})
it('report from #235 testing react components named <ComponentName />', async () => {
const fixturePath = path.join(__dirname, 'fixtures', 'external', 'jest', 'jest-react-component-test-results.xml')
const trackedFilesPath = path.join(__dirname, 'fixtures', 'external', 'jest', 'files.txt')
const outputPath = path.join(__dirname, '__outputs__', 'jest-react-component-test-results.md')
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
const trackedFiles = fs.readFileSync(trackedFilesPath, {encoding: 'utf8'}).split(/\n\r?/g)
const opts: ParseOptions = {
parseErrors: true,
trackedFiles
//workDir: '/home/dorny/dorny/jest/'
}
const parser = new JestJunitParser(opts)
const result = await parser.parse(filePath, fileContent)
expect(result).toMatchSnapshot()
const report = getReport([result])
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
fs.writeFileSync(outputPath, report)
})
})

View file

@ -1,67 +0,0 @@
import * as fs from 'fs'
import * as path from 'path'
import {MochaJsonParser} from '../src/parsers/mocha-json/mocha-json-parser'
import {ParseOptions} from '../src/test-parser'
import {getReport} from '../src/report/get-report'
import {normalizeFilePath} from '../src/utils/path-utils'
describe('mocha-json tests', () => {
it('produces empty test run result when there are no test cases', async () => {
const fixturePath = path.join(__dirname, 'fixtures', 'empty', 'mocha-json.json')
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
const opts: ParseOptions = {
parseErrors: true,
trackedFiles: []
}
const parser = new MochaJsonParser(opts)
const result = await parser.parse(filePath, fileContent)
expect(result.tests).toBe(0)
expect(result.result).toBe('success')
})
it('report from ./reports/mocha-json test results matches snapshot', async () => {
const fixturePath = path.join(__dirname, 'fixtures', 'mocha-json.json')
const outputPath = path.join(__dirname, '__outputs__', 'mocha-json.md')
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
const opts: ParseOptions = {
parseErrors: true,
trackedFiles: ['test/main.test.js', 'test/second.test.js', 'lib/main.js']
}
const parser = new MochaJsonParser(opts)
const result = await parser.parse(filePath, fileContent)
expect(result).toMatchSnapshot()
const report = getReport([result])
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
fs.writeFileSync(outputPath, report)
})
it('report from mochajs/mocha test results matches snapshot', async () => {
const fixturePath = path.join(__dirname, 'fixtures', 'external', 'mocha', 'mocha-test-results.json')
const trackedFilesPath = path.join(__dirname, 'fixtures', 'external', 'mocha', 'files.txt')
const outputPath = path.join(__dirname, '__outputs__', 'mocha-test-results.md')
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
const trackedFiles = fs.readFileSync(trackedFilesPath, {encoding: 'utf8'}).split(/\n\r?/g)
const opts: ParseOptions = {
parseErrors: true,
trackedFiles
}
const parser = new MochaJsonParser(opts)
const result = await parser.parse(filePath, fileContent)
expect(result).toMatchSnapshot()
const report = getReport([result])
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
fs.writeFileSync(outputPath, report)
})
})

View file

@ -1,30 +0,0 @@
import * as fs from 'fs'
import * as path from 'path'
import {SwiftXunitParser} from '../src/parsers/swift-xunit/swift-xunit-parser'
import {ParseOptions} from '../src/test-parser'
import {getReport} from '../src/report/get-report'
import {normalizeFilePath} from '../src/utils/path-utils'
describe('swift-xunit tests', () => {
it('report from swift test results matches snapshot', async () => {
const fixturePath = path.join(__dirname, 'fixtures', 'swift-xunit.xml')
const outputPath = path.join(__dirname, '__outputs__', 'swift-xunit.md')
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
const trackedFiles = ['Package.swift', 'Sources/AcmeLib/AcmeLib.swift', 'Tests/AcmeLibTests/AcmeLibTests.swift']
const opts: ParseOptions = {
parseErrors: true,
trackedFiles
}
const parser = new SwiftXunitParser(opts)
const result = await parser.parse(filePath, fileContent)
expect(result).toMatchSnapshot()
const report = getReport([result])
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
fs.writeFileSync(outputPath, report)
})
})

10368
dist/index.js generated vendored

File diff suppressed because one or more lines are too long

445
dist/licenses.txt generated vendored
View file

@ -331,6 +331,31 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
@sec-ant/readable-stream
MIT
MIT License
Copyright (c) 2022 Ze-Zheng Wu
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
@sindresorhus/is
MIT
MIT License
@ -346,6 +371,30 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
@slack/webhook
MIT
MIT License
Copyright (c) 2014- Slack Technologies, LLC
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@szmarczak/http-timer
MIT
@ -372,16 +421,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
@vercel/ncc
MIT
Copyright 2018 ZEIT, Inc.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
adm-zip
MIT
MIT License
@ -655,7 +694,7 @@ braces
MIT
The MIT License (MIT)
Copyright (c) 2014-2018, Jon Schlinkert.
Copyright (c) 2014-present, Jon Schlinkert.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@ -706,6 +745,51 @@ SOFTWARE.
cacheable-request
MIT
MIT License
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
call-bind-apply-helpers
MIT
MIT License
Copyright (c) 2024 Jordan Harband
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
caseless
Apache-2.0
@ -865,6 +949,131 @@ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
dunder-proto
MIT
MIT License
Copyright (c) 2024 ECMAScript Shims
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
es-define-property
MIT
MIT License
Copyright (c) 2024 Jordan Harband
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
es-errors
MIT
MIT License
Copyright (c) 2024 Jordan Harband
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
es-object-atoms
MIT
MIT License
Copyright (c) 2024 Jordan Harband
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
es-set-tostringtag
MIT
MIT License
Copyright (c) 2022 ECMAScript Shims
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
fast-glob
MIT
The MIT License (MIT)
@ -1002,6 +1211,80 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
function-bind
MIT
Copyright (c) 2013 Raynos.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
get-intrinsic
MIT
MIT License
Copyright (c) 2020 Jordan Harband
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
get-proto
MIT
MIT License
Copyright (c) 2025 Jordan Harband
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
get-stream
MIT
MIT License
@ -1034,6 +1317,31 @@ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
gopd
MIT
MIT License
Copyright (c) 2022 Jordan Harband
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
got
MIT
MIT License
@ -1060,6 +1368,81 @@ The above copyright notice and this permission notice shall be included in all c
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
has-symbols
MIT
MIT License
Copyright (c) 2016 Jordan Harband
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
has-tostringtag
MIT
MIT License
Copyright (c) 2021 Inspect JS
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
hasown
MIT
MIT License
Copyright (c) Jordan Harband and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
http-cache-semantics
BSD-2-Clause
Copyright 2016-2018 Kornel Lesiński
@ -1228,6 +1611,31 @@ The above copyright notice and this permission notice shall be included in all c
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
math-intrinsics
MIT
MIT License
Copyright (c) 2024 ECMAScript Shims
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
merge2
MIT
The MIT License (MIT)
@ -1349,7 +1757,7 @@ ms
MIT
The MIT License (MIT)
Copyright (c) 2016 Zeit, Inc.
Copyright (c) 2020 Vercel, Inc.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@ -1735,19 +2143,6 @@ Permission to use, copy, modify, and/or distribute this software for any purpose
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
uuid
MIT
The MIT License (MIT)
Copyright (c) 2010-2020 Robert Kieffer and other contributors
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
wrappy
ISC
The ISC License

2956
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -14,10 +14,7 @@
"test": "jest --ci --reporters=default --reporters=jest-junit",
"jest:updatesnapshot": "jest --updateSnapshot",
"all": "npm run build && npm run format && npm run lint && npm run package && npm test",
"dart-fixture": "cd \"reports/dart\" && dart test --file-reporter=\"json:../../__tests__/fixtures/dart-json.json\"",
"dotnet-fixture": "dotnet test reports/dotnet/DotnetTests.XUnitTests --logger \"trx;LogFileName=../../../../__tests__/fixtures/dotnet-trx.trx\"",
"jest-fixture": "cd \"reports/jest\" && npm test",
"mocha-fixture": "cd \"reports/mocha\" && npm test"
"dotnet-fixture": "dotnet test reports/dotnet/DotnetTests.XUnitTests --logger \"trx;LogFileName=../../../../__tests__/fixtures/dotnet-trx.trx\""
},
"repository": {
"type": "git",
@ -32,46 +29,46 @@
"author": "Michal Dorner <dorner.michal@gmail.com>",
"license": "MIT",
"dependencies": {
"@actions/core": "^1.10.1",
"@actions/core": "^1.11.1",
"@actions/exec": "^1.1.1",
"@actions/github": "^6.0.0",
"@slack/webhook": "^7.0.2",
"adm-zip": "^0.5.10",
"@slack/webhook": "^7.0.5",
"adm-zip": "^0.5.16",
"bent": "^7.3.12",
"fast-glob": "^3.3.2",
"got": "^14.0.0",
"picomatch": "^3.0.1",
"fast-glob": "^3.3.3",
"got": "^14.4.6",
"picomatch": "^4.0.2",
"xml2js": "^0.6.2"
},
"devDependencies": {
"@octokit/types": "^12.4.0",
"@octokit/webhooks": "^12.0.11",
"@octokit/webhooks-types": "^7.3.1",
"@types/adm-zip": "^0.5.5",
"@types/adm-zip": "^0.5.7",
"@types/bent": "^7.3.8",
"@types/github-slugger": "^2.0.0",
"@types/jest": "^29.5.11",
"@types/jest": "^29.5.14",
"@types/node": "^20.11.4",
"@types/picomatch": "^2.3.3",
"@types/got": "^9.6.12",
"@types/xml2js": "^0.4.14",
"@typescript-eslint/eslint-plugin": "^6.19.0",
"@typescript-eslint/parser": "^6.19.0",
"@vercel/ncc": "^0.38.1",
"eol-converter-cli": "^1.0.8",
"@vercel/ncc": "^0.38.3",
"eol-converter-cli": "^1.1.0",
"eslint": "^8.56.0",
"eslint-import-resolver-typescript": "^3.6.1",
"eslint-import-resolver-typescript": "^4.2.2",
"eslint-plugin-github": "^4.10.1",
"eslint-plugin-import": "^2.29.1",
"eslint-plugin-jest": "^27.6.3",
"eslint-plugin-prettier": "^5.1.3",
"eslint-plugin-import": "^2.31.0",
"eslint-plugin-jest": "^28.11.0",
"eslint-plugin-prettier": "^5.2.3",
"jest": "^29.7.0",
"jest-circus": "^29.7.0",
"jest-junit": "^16.0.0",
"js-yaml": "^4.1.0",
"prettier": "^3.2.2",
"ts-jest": "^29.1.1",
"typescript": "^5.3.3"
"prettier": "^3.5.3",
"ts-jest": "^29.2.6",
"typescript": "^5.8.2"
},
"jest-junit": {
"suiteName": "jest tests",

View file

@ -1,9 +0,0 @@
# Files and directories created by pub
.dart_tool/
.packages
# Conventional directory for build outputs
build/
# Directory created by dartdoc
doc/api/

View file

@ -1,14 +0,0 @@
# Defines a default set of lint rules enforced for
# projects at Google. For details and rationale,
# see https://github.com/dart-lang/pedantic#enabled-lints.
include: package:pedantic/analysis_options.yaml
# For lint rules and documentation, see http://dart-lang.github.io/linter/lints.
# Uncomment to specify additional rules.
# linter:
# rules:
# - camel_case_types
analyzer:
# exclude:
# - path/to/excluded/files/**

View file

@ -1,3 +0,0 @@
void throwError() {
throw Exception('Some error');
}

View file

@ -1,348 +0,0 @@
# Generated by pub
# See https://dart.dev/tools/pub/glossary#lockfile
packages:
_fe_analyzer_shared:
dependency: transitive
description:
name: _fe_analyzer_shared
url: "https://pub.dartlang.org"
source: hosted
version: "11.0.0"
analyzer:
dependency: transitive
description:
name: analyzer
url: "https://pub.dartlang.org"
source: hosted
version: "0.40.4"
args:
dependency: transitive
description:
name: args
url: "https://pub.dartlang.org"
source: hosted
version: "1.6.0"
async:
dependency: transitive
description:
name: async
url: "https://pub.dartlang.org"
source: hosted
version: "2.4.2"
boolean_selector:
dependency: transitive
description:
name: boolean_selector
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
charcode:
dependency: transitive
description:
name: charcode
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.3"
cli_util:
dependency: transitive
description:
name: cli_util
url: "https://pub.dartlang.org"
source: hosted
version: "0.2.0"
collection:
dependency: transitive
description:
name: collection
url: "https://pub.dartlang.org"
source: hosted
version: "1.14.13"
convert:
dependency: transitive
description:
name: convert
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.1"
coverage:
dependency: transitive
description:
name: coverage
url: "https://pub.dartlang.org"
source: hosted
version: "0.14.1"
crypto:
dependency: transitive
description:
name: crypto
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.5"
glob:
dependency: transitive
description:
name: glob
url: "https://pub.dartlang.org"
source: hosted
version: "1.2.0"
http:
dependency: transitive
description:
name: http
url: "https://pub.dartlang.org"
source: hosted
version: "0.12.2"
http_multi_server:
dependency: transitive
description:
name: http_multi_server
url: "https://pub.dartlang.org"
source: hosted
version: "2.2.0"
http_parser:
dependency: transitive
description:
name: http_parser
url: "https://pub.dartlang.org"
source: hosted
version: "3.1.4"
io:
dependency: transitive
description:
name: io
url: "https://pub.dartlang.org"
source: hosted
version: "0.3.4"
js:
dependency: transitive
description:
name: js
url: "https://pub.dartlang.org"
source: hosted
version: "0.6.2"
logging:
dependency: transitive
description:
name: logging
url: "https://pub.dartlang.org"
source: hosted
version: "0.11.4"
matcher:
dependency: transitive
description:
name: matcher
url: "https://pub.dartlang.org"
source: hosted
version: "0.12.9"
meta:
dependency: transitive
description:
name: meta
url: "https://pub.dartlang.org"
source: hosted
version: "1.2.3"
mime:
dependency: transitive
description:
name: mime
url: "https://pub.dartlang.org"
source: hosted
version: "0.9.7"
node_interop:
dependency: transitive
description:
name: node_interop
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.1"
node_io:
dependency: transitive
description:
name: node_io
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.1"
node_preamble:
dependency: transitive
description:
name: node_preamble
url: "https://pub.dartlang.org"
source: hosted
version: "1.4.12"
package_config:
dependency: transitive
description:
name: package_config
url: "https://pub.dartlang.org"
source: hosted
version: "1.9.3"
path:
dependency: transitive
description:
name: path
url: "https://pub.dartlang.org"
source: hosted
version: "1.7.0"
pedantic:
dependency: "direct dev"
description:
name: pedantic
url: "https://pub.dartlang.org"
source: hosted
version: "1.9.2"
pool:
dependency: transitive
description:
name: pool
url: "https://pub.dartlang.org"
source: hosted
version: "1.4.0"
pub_semver:
dependency: transitive
description:
name: pub_semver
url: "https://pub.dartlang.org"
source: hosted
version: "1.4.4"
shelf:
dependency: transitive
description:
name: shelf
url: "https://pub.dartlang.org"
source: hosted
version: "0.7.9"
shelf_packages_handler:
dependency: transitive
description:
name: shelf_packages_handler
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
shelf_static:
dependency: transitive
description:
name: shelf_static
url: "https://pub.dartlang.org"
source: hosted
version: "0.2.8"
shelf_web_socket:
dependency: transitive
description:
name: shelf_web_socket
url: "https://pub.dartlang.org"
source: hosted
version: "0.2.3"
source_map_stack_trace:
dependency: transitive
description:
name: source_map_stack_trace
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
source_maps:
dependency: transitive
description:
name: source_maps
url: "https://pub.dartlang.org"
source: hosted
version: "0.10.9"
source_span:
dependency: transitive
description:
name: source_span
url: "https://pub.dartlang.org"
source: hosted
version: "1.7.0"
stack_trace:
dependency: transitive
description:
name: stack_trace
url: "https://pub.dartlang.org"
source: hosted
version: "1.9.5"
stream_channel:
dependency: transitive
description:
name: stream_channel
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
string_scanner:
dependency: transitive
description:
name: string_scanner
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.5"
term_glyph:
dependency: transitive
description:
name: term_glyph
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0"
test:
dependency: "direct dev"
description:
name: test
url: "https://pub.dartlang.org"
source: hosted
version: "1.15.4"
test_api:
dependency: transitive
description:
name: test_api
url: "https://pub.dartlang.org"
source: hosted
version: "0.2.18"
test_core:
dependency: transitive
description:
name: test_core
url: "https://pub.dartlang.org"
source: hosted
version: "0.3.11+1"
typed_data:
dependency: transitive
description:
name: typed_data
url: "https://pub.dartlang.org"
source: hosted
version: "1.2.0"
vm_service:
dependency: transitive
description:
name: vm_service
url: "https://pub.dartlang.org"
source: hosted
version: "4.2.0"
watcher:
dependency: transitive
description:
name: watcher
url: "https://pub.dartlang.org"
source: hosted
version: "0.9.7+15"
web_socket_channel:
dependency: transitive
description:
name: web_socket_channel
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0"
webkit_inspection_protocol:
dependency: transitive
description:
name: webkit_inspection_protocol
url: "https://pub.dartlang.org"
source: hosted
version: "0.7.3"
yaml:
dependency: transitive
description:
name: yaml
url: "https://pub.dartlang.org"
source: hosted
version: "2.2.1"
sdks:
dart: ">=2.8.1 <3.0.0"

View file

@ -1,9 +0,0 @@
name: darttest
description: A simple command-line application.
environment:
sdk: '>=2.8.1 <3.0.0'
dev_dependencies:
pedantic: ^1.9.0
test: ^1.15.4

View file

@ -1,29 +0,0 @@
import 'package:darttest/main.dart';
import 'package:test/test.dart';
import 'dart:io';
void main() {
group('Test 1', () {
test('Passing test', () {
expect(1, equals(1));
});
group('Test 1.1', () {
test('Failing test', () {
expect(1, equals(2));
});
test('Exception in target unit', () {
throwError();
});
});
});
group('Test 2', () {
test('Exception in test', () {
throw Exception('Some error');
});
});
print('Hello from the test');
}

View file

@ -1,12 +0,0 @@
import 'dart:async';
import 'package:test/test.dart';
void main() {
test('Timeout test', () async {
await Future.delayed(const Duration(seconds: 1));
}, timeout: Timeout(Duration(microseconds: 1)));
test('Skipped test', () {
// do nothing
}, skip: 'skipped test');
}

View file

@ -1,23 +0,0 @@
const lib = require('../lib/main')
describe('Test 1', () => {
test('Passing test', () => {
expect(true).toBeTruthy()
});
describe('Test 1.1', () => {
test('Failing test', () => {
expect(false).toBeTruthy()
});
test('Exception in target unit', () => {
lib.throwError();
});
});
});
describe('Test 2', () => {
test('Exception in test', () => {
throw new Error('Some error');
});
});

View file

@ -1,7 +0,0 @@
test('Timeout test', async () => {
await new Promise(resolve => setTimeout(resolve, 1000));
}, 1);
test.skip('Skipped test', () => {
// do nothing
});

View file

@ -1,5 +0,0 @@
function throwError() {
throw new Error('Some error')
}
exports.throwError = throwError

File diff suppressed because it is too large Load diff

View file

@ -1,25 +0,0 @@
{
"name": "jest-fixture",
"version": "0.0.0",
"private": true,
"description": "Generates test fixtures for test-check action",
"scripts": {
"test": "jest --ci --reporters=default --reporters=jest-junit"
},
"author": "Michal Dorner <dorner.michal@gmail.com>",
"license": "MIT",
"devDependencies": {
"jest": "^26.5.3",
"jest-junit": "^12.0.0"
},
"jest-junit": {
"suiteName": "jest tests",
"outputDirectory": "../../__tests__/fixtures",
"outputName": "jest-junit.xml",
"ancestorSeparator": " ",
"uniqueOutputName": "false",
"suiteNameTemplate": "{filepath}",
"classNameTemplate": "{classname}",
"titleTemplate": "{title}"
}
}

View file

@ -1,5 +0,0 @@
function throwError() {
throw new Error('Some error')
}
exports.throwError = throwError

View file

@ -1,761 +0,0 @@
{
"name": "mocha-fixture",
"version": "0.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"@ungap/promise-all-settled": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz",
"integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==",
"dev": true
},
"ansi-colors": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
"integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
"dev": true
},
"ansi-regex": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz",
"integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==",
"dev": true
},
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"requires": {
"color-convert": "^2.0.1"
}
},
"anymatch": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
"integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
"dev": true,
"requires": {
"normalize-path": "^3.0.0",
"picomatch": "^2.0.4"
}
},
"argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
"dev": true
},
"balanced-match": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
"dev": true
},
"binary-extensions": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
"integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
"dev": true
},
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dev": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
"braces": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"dev": true,
"requires": {
"fill-range": "^7.0.1"
}
},
"browser-stdout": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
"integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
"dev": true
},
"camelcase": {
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz",
"integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==",
"dev": true
},
"chalk": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
"integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
"dev": true,
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
},
"dependencies": {
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
"requires": {
"has-flag": "^4.0.0"
}
}
}
},
"chokidar": {
"version": "3.5.1",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz",
"integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==",
"dev": true,
"requires": {
"anymatch": "~3.1.1",
"braces": "~3.0.2",
"fsevents": "~2.3.1",
"glob-parent": "~5.1.0",
"is-binary-path": "~2.1.0",
"is-glob": "~4.0.1",
"normalize-path": "~3.0.0",
"readdirp": "~3.5.0"
}
},
"cliui": {
"version": "7.0.4",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
"integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
"dev": true,
"requires": {
"string-width": "^4.2.0",
"strip-ansi": "^6.0.0",
"wrap-ansi": "^7.0.0"
},
"dependencies": {
"ansi-regex": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"dev": true
},
"is-fullwidth-code-point": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"dev": true
},
"string-width": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
"integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
"dev": true,
"requires": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
"strip-ansi": "^6.0.0"
}
},
"strip-ansi": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
"integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
"dev": true,
"requires": {
"ansi-regex": "^5.0.0"
}
}
}
},
"color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"requires": {
"color-name": "~1.1.4"
}
},
"color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
"concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
"dev": true
},
"debug": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
"integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
"dev": true,
"requires": {
"ms": "2.1.2"
},
"dependencies": {
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true
}
}
},
"decamelize": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
"integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
"dev": true
},
"diff": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
"integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==",
"dev": true
},
"emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
"dev": true
},
"escalade": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
"integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
"dev": true
},
"escape-string-regexp": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
"integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
"dev": true
},
"fill-range": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
"dev": true,
"requires": {
"to-regex-range": "^5.0.1"
}
},
"find-up": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
"integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
"dev": true,
"requires": {
"locate-path": "^6.0.0",
"path-exists": "^4.0.0"
}
},
"flat": {
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
"integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
"dev": true
},
"fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
"dev": true
},
"fsevents": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
"dev": true,
"optional": true
},
"get-caller-file": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
"dev": true
},
"glob": {
"version": "7.1.6",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
"integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
"dev": true,
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^3.0.4",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
}
},
"glob-parent": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
"integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
"dev": true,
"requires": {
"is-glob": "^4.0.1"
}
},
"growl": {
"version": "1.10.5",
"resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
"integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
"dev": true
},
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true
},
"he": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
"integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
"dev": true
},
"inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
"dev": true,
"requires": {
"once": "^1.3.0",
"wrappy": "1"
}
},
"inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
"dev": true
},
"is-binary-path": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
"dev": true,
"requires": {
"binary-extensions": "^2.0.0"
}
},
"is-extglob": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
"integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
"dev": true
},
"is-fullwidth-code-point": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
"dev": true
},
"is-glob": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
"integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
"dev": true,
"requires": {
"is-extglob": "^2.1.1"
}
},
"is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true
},
"is-plain-obj": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
"integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
"dev": true
},
"isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
"dev": true
},
"js-yaml": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz",
"integrity": "sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==",
"dev": true,
"requires": {
"argparse": "^2.0.1"
}
},
"locate-path": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
"integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
"dev": true,
"requires": {
"p-locate": "^5.0.0"
}
},
"log-symbols": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz",
"integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==",
"dev": true,
"requires": {
"chalk": "^4.0.0"
}
},
"minimatch": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"dev": true,
"requires": {
"brace-expansion": "^1.1.7"
}
},
"mocha": {
"version": "8.3.0",
"resolved": "https://registry.npmjs.org/mocha/-/mocha-8.3.0.tgz",
"integrity": "sha512-TQqyC89V1J/Vxx0DhJIXlq9gbbL9XFNdeLQ1+JsnZsVaSOV1z3tWfw0qZmQJGQRIfkvZcs7snQnZnOCKoldq1Q==",
"dev": true,
"requires": {
"@ungap/promise-all-settled": "1.1.2",
"ansi-colors": "4.1.1",
"browser-stdout": "1.3.1",
"chokidar": "3.5.1",
"debug": "4.3.1",
"diff": "5.0.0",
"escape-string-regexp": "4.0.0",
"find-up": "5.0.0",
"glob": "7.1.6",
"growl": "1.10.5",
"he": "1.2.0",
"js-yaml": "4.0.0",
"log-symbols": "4.0.0",
"minimatch": "3.0.4",
"ms": "2.1.3",
"nanoid": "3.1.20",
"serialize-javascript": "5.0.1",
"strip-json-comments": "3.1.1",
"supports-color": "8.1.1",
"which": "2.0.2",
"wide-align": "1.1.3",
"workerpool": "6.1.0",
"yargs": "16.2.0",
"yargs-parser": "20.2.4",
"yargs-unparser": "2.0.0"
}
},
"ms": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
"dev": true
},
"nanoid": {
"version": "3.1.20",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz",
"integrity": "sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==",
"dev": true
},
"normalize-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
"dev": true
},
"once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"dev": true,
"requires": {
"wrappy": "1"
}
},
"p-limit": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
"integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
"dev": true,
"requires": {
"yocto-queue": "^0.1.0"
}
},
"p-locate": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
"integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
"dev": true,
"requires": {
"p-limit": "^3.0.2"
}
},
"path-exists": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
"integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
"dev": true
},
"path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
"dev": true
},
"picomatch": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
"integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
"dev": true
},
"randombytes": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
"integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
"dev": true,
"requires": {
"safe-buffer": "^5.1.0"
}
},
"readdirp": {
"version": "3.5.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz",
"integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==",
"dev": true,
"requires": {
"picomatch": "^2.2.1"
}
},
"require-directory": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
"integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
"dev": true
},
"safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
"dev": true
},
"serialize-javascript": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz",
"integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==",
"dev": true,
"requires": {
"randombytes": "^2.1.0"
}
},
"string-width": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
"integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
"dev": true,
"requires": {
"is-fullwidth-code-point": "^2.0.0",
"strip-ansi": "^4.0.0"
}
},
"strip-ansi": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
"dev": true,
"requires": {
"ansi-regex": "^3.0.0"
}
},
"strip-json-comments": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
"integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
"dev": true
},
"supports-color": {
"version": "8.1.1",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
"integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
"dev": true,
"requires": {
"has-flag": "^4.0.0"
}
},
"to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true,
"requires": {
"is-number": "^7.0.0"
}
},
"which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"dev": true,
"requires": {
"isexe": "^2.0.0"
}
},
"wide-align": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
"integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
"dev": true,
"requires": {
"string-width": "^1.0.2 || 2"
}
},
"workerpool": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.0.tgz",
"integrity": "sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==",
"dev": true
},
"wrap-ansi": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"dev": true,
"requires": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
"strip-ansi": "^6.0.0"
},
"dependencies": {
"ansi-regex": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"dev": true
},
"is-fullwidth-code-point": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"dev": true
},
"string-width": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
"integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
"dev": true,
"requires": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
"strip-ansi": "^6.0.0"
}
},
"strip-ansi": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
"integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
"dev": true,
"requires": {
"ansi-regex": "^5.0.0"
}
}
}
},
"wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
"dev": true
},
"y18n": {
"version": "5.0.5",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz",
"integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==",
"dev": true
},
"yargs": {
"version": "16.2.0",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
"integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
"dev": true,
"requires": {
"cliui": "^7.0.2",
"escalade": "^3.1.1",
"get-caller-file": "^2.0.5",
"require-directory": "^2.1.1",
"string-width": "^4.2.0",
"y18n": "^5.0.5",
"yargs-parser": "^20.2.2"
},
"dependencies": {
"ansi-regex": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"dev": true
},
"is-fullwidth-code-point": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"dev": true
},
"string-width": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
"integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
"dev": true,
"requires": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
"strip-ansi": "^6.0.0"
}
},
"strip-ansi": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
"integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
"dev": true,
"requires": {
"ansi-regex": "^5.0.0"
}
}
}
},
"yargs-parser": {
"version": "20.2.4",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
"integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==",
"dev": true
},
"yargs-unparser": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz",
"integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==",
"dev": true,
"requires": {
"camelcase": "^6.0.0",
"decamelize": "^4.0.0",
"flat": "^5.0.2",
"is-plain-obj": "^2.1.0"
}
},
"yocto-queue": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
"integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
"dev": true
}
}
}

View file

@ -1,14 +0,0 @@
{
"name": "mocha-fixture",
"version": "0.0.0",
"private": true,
"description": "Generates test fixtures for test-reporter action",
"scripts": {
"test": "mocha --reporter json > ../../__tests__/fixtures/mocha-json.json"
},
"author": "Michal Dorner <dorner.michal@gmail.com>",
"license": "MIT",
"devDependencies": {
"mocha": "^8.3.0"
}
}

View file

@ -1,24 +0,0 @@
const assert = require('assert').strict;
const lib = require('../lib/main')
describe('Test 1', () => {
it('Passing test', () => {
assert.equal(true, true)
});
describe('Test 1.1', () => {
it('Failing test', () => {
assert.equal(false, true)
});
it('Exception in target unit', () => {
lib.throwError();
});
});
});
describe('Test 2', () => {
it('Exception in test', () => {
throw new Error('Some error');
});
});

View file

@ -1,8 +0,0 @@
it('Timeout test', async function(done) {
this.timeout(1);
setTimeout(done, 1000);
});
it.skip('Skipped test', () => {
// do nothing
});

View file

@ -9,11 +9,7 @@ import {TestRunResult, TestRunResultWithUrl} from './test-results'
import {getAnnotations} from './report/get-annotations'
import {getReport} from './report/get-report'
import {DartJsonParser} from './parsers/dart-json/dart-json-parser'
import {DotnetTrxParser} from './parsers/dotnet-trx/dotnet-trx-parser'
import {JavaJunitParser} from './parsers/java-junit/java-junit-parser'
import {JestJunitParser} from './parsers/jest-junit/jest-junit-parser'
import {MochaJsonParser} from './parsers/mocha-json/mocha-json-parser'
import {normalizeDirPath, normalizeFilePath} from './utils/path-utils'
import {getCheckRunContext} from './utils/github-utils'
@ -370,22 +366,7 @@ class TestReporter {
}
getParser(reporter: string, options: ParseOptions): TestParser {
switch (reporter) {
case 'dart-json':
return new DartJsonParser(options, 'dart')
case 'dotnet-trx':
return new DotnetTrxParser(options)
case 'flutter-json':
return new DartJsonParser(options, 'flutter')
case 'java-junit':
return new JavaJunitParser(options)
case 'jest-junit':
return new JestJunitParser(options)
case 'mocha-json':
return new MochaJsonParser(options)
default:
throw new Error(`Input variable 'reporter' is set to invalid value '${reporter}'`)
}
return new DotnetTrxParser(options)
}
}

View file

@ -1,261 +0,0 @@
import {ParseOptions, TestParser} from '../../test-parser'
import {getBasePath, normalizeFilePath} from '../../utils/path-utils'
import {
ReportEvent,
Suite,
Group,
TestStartEvent,
TestDoneEvent,
ErrorEvent,
isSuiteEvent,
isGroupEvent,
isTestStartEvent,
isTestDoneEvent,
isErrorEvent,
isDoneEvent,
isMessageEvent,
MessageEvent
} from './dart-json-types'
import {
TestExecutionResult,
TestRunResult,
TestSuiteResult,
TestGroupResult,
TestCaseResult,
TestCaseError
} from '../../test-results'
class TestRun {
constructor(
readonly path: string,
readonly suites: TestSuite[],
readonly success: boolean,
readonly time: number
) {}
}
class TestSuite {
constructor(readonly suite: Suite) {}
readonly groups: {[id: number]: TestGroup} = {}
}
class TestGroup {
constructor(readonly group: Group) {}
readonly tests: TestCase[] = []
}
class TestCase {
constructor(readonly testStart: TestStartEvent) {
this.groupId = testStart.test.groupIDs[testStart.test.groupIDs.length - 1]
}
readonly groupId: number
readonly print: MessageEvent[] = []
testDone?: TestDoneEvent
error?: ErrorEvent
get result(): TestExecutionResult {
if (this.testDone?.skipped) {
return 'skipped'
}
if (this.testDone?.result === 'success') {
return 'success'
}
if (this.testDone?.result === 'error' || this.testDone?.result === 'failure') {
return 'failed'
}
return undefined
}
get time(): number {
return this.testDone !== undefined ? this.testDone.time - this.testStart.time : 0
}
}
export class DartJsonParser implements TestParser {
assumedWorkDir: string | undefined
constructor(
readonly options: ParseOptions,
readonly sdk: 'dart' | 'flutter'
) {}
async parse(path: string, content: string): Promise<TestRunResult> {
const tr = this.getTestRun(path, content)
const result = this.getTestRunResult(tr)
return Promise.resolve(result)
}
private getTestRun(path: string, content: string): TestRun {
const lines = content.split(/\n\r?/g)
const events = lines
.map((str, i) => {
if (str.trim() === '') {
return null
}
try {
return JSON.parse(str)
} catch (e) {
const errWithCol = e as {columnNumber?: number}
const col = errWithCol.columnNumber !== undefined ? `:${errWithCol.columnNumber}` : ''
throw new Error(`Invalid JSON at ${path}:${i + 1}${col}\n\n${e}`)
}
})
.filter(evt => evt != null) as ReportEvent[]
let success = false
let totalTime = 0
const suites: {[id: number]: TestSuite} = {}
const tests: {[id: number]: TestCase} = {}
for (const evt of events) {
if (isSuiteEvent(evt)) {
suites[evt.suite.id] = new TestSuite(evt.suite)
} else if (isGroupEvent(evt)) {
suites[evt.group.suiteID].groups[evt.group.id] = new TestGroup(evt.group)
} else if (isTestStartEvent(evt) && evt.test.url !== null) {
const test: TestCase = new TestCase(evt)
const suite = suites[evt.test.suiteID]
const group = suite.groups[evt.test.groupIDs[evt.test.groupIDs.length - 1]]
group.tests.push(test)
tests[evt.test.id] = test
} else if (isTestDoneEvent(evt) && !evt.hidden && tests[evt.testID]) {
tests[evt.testID].testDone = evt
} else if (isErrorEvent(evt) && tests[evt.testID]) {
tests[evt.testID].error = evt
} else if (isMessageEvent(evt) && tests[evt.testID]) {
tests[evt.testID].print.push(evt)
} else if (isDoneEvent(evt)) {
success = evt.success
totalTime = evt.time
}
}
return new TestRun(path, Object.values(suites), success, totalTime)
}
private getTestRunResult(tr: TestRun): TestRunResult {
const suites = tr.suites.map(s => {
return new TestSuiteResult(this.getRelativePath(s.suite.path), this.getGroups(s))
})
return new TestRunResult(tr.path, suites, tr.time)
}
private getGroups(suite: TestSuite): TestGroupResult[] {
const groups = Object.values(suite.groups).filter(grp => grp.tests.length > 0)
groups.sort((a, b) => (a.group.line ?? 0) - (b.group.line ?? 0))
return groups.map(group => {
group.tests.sort((a, b) => (a.testStart.test.line ?? 0) - (b.testStart.test.line ?? 0))
const tests = group.tests.map(tc => {
const error = this.getError(suite, tc)
const testName =
group.group.name !== undefined && tc.testStart.test.name.startsWith(group.group.name)
? tc.testStart.test.name.slice(group.group.name.length).trim()
: tc.testStart.test.name.trim()
return new TestCaseResult(testName, tc.result, tc.time, error)
})
return new TestGroupResult(group.group.name, tests)
})
}
private getError(testSuite: TestSuite, test: TestCase): TestCaseError | undefined {
if (!this.options.parseErrors || !test.error) {
return undefined
}
const {trackedFiles} = this.options
const stackTrace = test.error?.stackTrace ?? ''
const print = test.print
.filter(p => p.messageType === 'print')
.map(p => p.message)
.join('\n')
const details = [print, stackTrace].filter(str => str !== '').join('\n')
const src = this.exceptionThrowSource(details, trackedFiles)
const message = this.getErrorMessage(test.error?.error ?? '', print)
let path
let line
if (src !== undefined) {
path = src.path
line = src.line
} else {
const testStartPath = this.getRelativePath(testSuite.suite.path)
if (trackedFiles.includes(testStartPath)) {
path = testStartPath
line = test.testStart.test.root_line ?? test.testStart.test.line ?? undefined
}
}
return {
path,
line,
message,
details
}
}
private getErrorMessage(message: string, print: string): string {
if (this.sdk === 'flutter') {
const uselessMessageRe = /^Test failed\. See exception logs above\.\nThe test description was:/m
const flutterPrintRe =
/^ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK +\s+(.*)\s+When the exception was thrown, this was the stack:/ms
if (uselessMessageRe.test(message)) {
const match = print.match(flutterPrintRe)
if (match !== null) {
return match[1]
}
}
}
return message || print
}
private exceptionThrowSource(ex: string, trackedFiles: string[]): {path: string; line: number} | undefined {
const lines = ex.split(/\r?\n/g)
// regexp to extract file path and line number from stack trace
const dartRe = /^(?!package:)(.*)\s+(\d+):\d+\s+/
const flutterRe = /^#\d+\s+.*\((?!package:)(.*):(\d+):\d+\)$/
const re = this.sdk === 'dart' ? dartRe : flutterRe
for (const str of lines) {
const match = str.match(re)
if (match !== null) {
const [_, pathStr, lineStr] = match
const path = normalizeFilePath(this.getRelativePath(pathStr))
if (trackedFiles.includes(path)) {
const line = parseInt(lineStr)
return {path, line}
}
}
}
}
private getRelativePath(path: string): string {
const prefix = 'file://'
if (path.startsWith(prefix)) {
path = path.substr(prefix.length)
}
path = normalizeFilePath(path)
const workDir = this.getWorkDir(path)
if (workDir !== undefined && path.startsWith(workDir)) {
path = path.substr(workDir.length)
}
return path
}
private getWorkDir(path: string): string | undefined {
return (
this.options.workDir ??
this.assumedWorkDir ??
(this.assumedWorkDir = getBasePath(path, this.options.trackedFiles))
)
}
}

View file

@ -1,132 +0,0 @@
/// reflects documentation at https://github.com/dart-lang/test/blob/master/pkgs/test/doc/json_reporter.md
export type ReportEvent =
| StartEvent
| AllSuitesEvent
| SuiteEvent
| DebugEvent
| GroupEvent
| TestStartEvent
| TestDoneEvent
| DoneEvent
| MessageEvent
| ErrorEvent
export interface Event {
type: 'start' | 'allSuites' | 'suite' | 'debug' | 'group' | 'testStart' | 'print' | 'error' | 'testDone' | 'done'
time: number
}
export interface StartEvent extends Event {
type: 'start'
protocolVersion: string
runnerVersion: string
pid: number
}
export interface AllSuitesEvent extends Event {
type: 'allSuites'
count: number // The total number of suites that will be loaded.
}
export interface SuiteEvent extends Event {
type: 'suite'
suite: Suite
}
export interface GroupEvent extends Event {
type: 'group'
group: Group
}
export interface TestStartEvent extends Event {
type: 'testStart'
test: Test
}
export interface TestDoneEvent extends Event {
type: 'testDone'
testID: number
result: 'success' | 'failure' | 'error'
hidden: boolean
skipped: boolean
}
export interface DoneEvent extends Event {
type: 'done'
success: boolean
}
export interface ErrorEvent extends Event {
type: 'error'
testID: number
error: string
stackTrace: string
isFailure: boolean
}
export interface DebugEvent extends Event {
type: 'debug'
suiteID: number
observatory: string
remoteDebugger: string
}
export interface MessageEvent extends Event {
type: 'print'
testID: number
messageType: 'print' | 'skip'
message: string
}
export interface Suite {
id: number
platform?: string
path: string
}
export interface Group {
id: number
name?: string
suiteID: number
parentID?: number
testCount: number
line: number | null // The (1-based) line on which the group was defined, or `null`.
column: number | null // The (1-based) column on which the group was defined, or `null`.
url: string | null
}
export interface Test {
id: number
name: string
suiteID: number
groupIDs: number[] // The IDs of groups containing this test, in order from outermost to innermost.
line: number | null // The (1-based) line on which the test was defined, or `null`.
column: number | null // The (1-based) column on which the test was defined, or `null`.
url: string | null
root_line?: number
root_column?: number
root_url: string | undefined
}
export function isSuiteEvent(event: Event): event is SuiteEvent {
return event.type === 'suite'
}
export function isGroupEvent(event: Event): event is GroupEvent {
return event.type === 'group'
}
export function isTestStartEvent(event: Event): event is TestStartEvent {
return event.type === 'testStart'
}
export function isTestDoneEvent(event: Event): event is TestDoneEvent {
return event.type === 'testDone'
}
export function isErrorEvent(event: Event): event is ErrorEvent {
return event.type === 'error'
}
export function isDoneEvent(event: Event): event is DoneEvent {
return event.type === 'done'
}
export function isMessageEvent(event: Event): event is MessageEvent {
return event.type === 'print'
}

View file

@ -1,208 +0,0 @@
import * as path from 'path'
import {ParseOptions, TestParser} from '../../test-parser'
import {parseStringPromise} from 'xml2js'
import {parseStackTraceElement} from './java-stack-trace-element-parser'
import {JunitReport, SingleSuiteReport, TestCase, TestSuite} from './java-junit-types'
import {normalizeFilePath} from '../../utils/path-utils'
import {
TestExecutionResult,
TestRunResult,
TestSuiteResult,
TestGroupResult,
TestCaseResult,
TestCaseError
} from '../../test-results'
export class JavaJunitParser implements TestParser {
readonly trackedFiles: {[fileName: string]: string[]}
constructor(readonly options: ParseOptions) {
// Map to efficient lookup of all paths with given file name
this.trackedFiles = {}
for (const filePath of options.trackedFiles) {
const fileName = path.basename(filePath)
const files = this.trackedFiles[fileName] ?? (this.trackedFiles[fileName] = [])
files.push(normalizeFilePath(filePath))
}
}
async parse(filePath: string, content: string): Promise<TestRunResult> {
const reportOrSuite = await this.getJunitReport(filePath, content)
const isReport = (reportOrSuite as JunitReport).testsuites !== undefined
// XML might contain:
// - multiple suites under <testsuites> root node
// - single <testsuite> as root node
let ju: JunitReport
if (isReport) {
ju = reportOrSuite as JunitReport
} else {
// Make it behave the same way as if suite was inside <testsuites> root node
const suite = (reportOrSuite as SingleSuiteReport).testsuite
ju = {
testsuites: {
$: {time: suite.$.time},
testsuite: [suite]
}
}
}
return this.getTestRunResult(filePath, ju)
}
private async getJunitReport(filePath: string, content: string): Promise<JunitReport | SingleSuiteReport> {
try {
return await parseStringPromise(content)
} catch (e) {
throw new Error(`Invalid XML at ${filePath}\n\n${e}`)
}
}
private getTestRunResult(filePath: string, junit: JunitReport): TestRunResult {
const suites =
junit.testsuites.testsuite === undefined
? []
: junit.testsuites.testsuite.map(ts => {
const name = ts.$.name.trim()
const time = parseFloat(ts.$.time) * 1000
const sr = new TestSuiteResult(name, this.getGroups(ts), time)
return sr
})
const seconds = parseFloat(junit.testsuites.$?.time)
const time = isNaN(seconds) ? undefined : seconds * 1000
return new TestRunResult(filePath, suites, time)
}
private getGroups(suite: TestSuite): TestGroupResult[] {
if (suite.testcase === undefined) {
return []
}
const groups: {name: string; tests: TestCase[]}[] = []
for (const tc of suite.testcase) {
// Normally classname is same as suite name - both refer to same Java class
// Therefore it doesn't make sense to process it as a group
// and tests will be added to default group with empty name
const className = tc.$.classname === suite.$.name ? '' : tc.$.classname
let grp = groups.find(g => g.name === className)
if (grp === undefined) {
grp = {name: className, tests: []}
groups.push(grp)
}
grp.tests.push(tc)
}
return groups.map(grp => {
const tests = grp.tests.map(tc => {
const name = tc.$.name.trim()
const result = this.getTestCaseResult(tc)
const time = parseFloat(tc.$.time) * 1000
const error = this.getTestCaseError(tc)
return new TestCaseResult(name, result, time, error)
})
return new TestGroupResult(grp.name, tests)
})
}
private getTestCaseResult(test: TestCase): TestExecutionResult {
if (test.failure || test.error) return 'failed'
if (test.skipped) return 'skipped'
return 'success'
}
private getTestCaseError(tc: TestCase): TestCaseError | undefined {
if (!this.options.parseErrors) {
return undefined
}
// We process <error> and <failure> the same way
const failures = tc.failure ?? tc.error
if (!failures) {
return undefined
}
const failure = failures[0]
const details = typeof failure === 'object' ? failure._ : failure
let filePath
let line
if (details != null) {
const src = this.exceptionThrowSource(details)
if (src) {
filePath = src.filePath
line = src.line
}
}
return {
path: filePath,
line,
details,
message: typeof failure === 'object' ? failure.message : undefined
}
}
private exceptionThrowSource(stackTrace: string): {filePath: string; line: number} | undefined {
const lines = stackTrace.split(/\r?\n/)
for (const str of lines) {
const stackTraceElement = parseStackTraceElement(str)
if (stackTraceElement) {
const {tracePath, fileName, lineStr} = stackTraceElement
const filePath = this.getFilePath(tracePath, fileName)
if (filePath !== undefined) {
const line = parseInt(lineStr)
return {filePath, line}
}
}
}
}
// Stacktrace in Java doesn't contain full paths to source file.
// There are only package, file name and line.
// Assuming folder structure matches package name (as it should in Java),
// we can try to match tracked file.
private getFilePath(tracePath: string, fileName: string): string | undefined {
// Check if there is any tracked file with given name
const files = this.trackedFiles[fileName]
if (files === undefined) {
return undefined
}
// Remove class name and method name from trace.
// Take parts until first item with capital letter - package names are lowercase while class name is CamelCase.
const packageParts = tracePath.split(/\./g)
const packageIndex = packageParts.findIndex(part => part[0] <= 'Z')
if (packageIndex !== -1) {
packageParts.splice(packageIndex, packageParts.length - packageIndex)
}
if (packageParts.length === 0) {
return undefined
}
// Get right file
// - file name matches
// - parent folders structure must reflect the package name
for (const filePath of files) {
const dirs = path.dirname(filePath).split(/\//g)
if (packageParts.length > dirs.length) {
continue
}
// get only N parent folders, where N = length of package name parts
if (dirs.length > packageParts.length) {
dirs.splice(0, dirs.length - packageParts.length)
}
// check if parent folder structure matches package name
const isMatch = packageParts.every((part, i) => part === dirs[i])
if (isMatch) {
return filePath
}
}
return undefined
}
}

View file

@ -1,45 +0,0 @@
export interface JunitReport {
testsuites: TestSuites
}
export interface SingleSuiteReport {
testsuite: TestSuite
}
export interface TestSuites {
$: {
time: string
}
testsuite?: TestSuite[]
}
export interface TestSuite {
$: {
name: string
tests: string
errors: string
failures: string
skipped: string
time: string
timestamp?: Date
}
testcase: TestCase[]
}
export interface TestCase {
$: {
classname: string
file?: string
name: string
time: string
}
failure?: string | Failure[]
error?: string | Failure[]
skipped?: string[]
}
export interface Failure {
_: string
type: string
message: string
}

View file

@ -1,44 +0,0 @@
export interface StackTraceElement {
classLoader: string | undefined
moduleNameAndVersion: string | undefined
tracePath: string
fileName: string
lineStr: string
}
// classloader and module name are optional:
// at <CLASSLOADER>/<MODULE_NAME_AND_VERSION>/<FULLY_QUALIFIED_METHOD_NAME>(<FILE_NAME>:<LINE_NUMBER>)
// https://github.com/eclipse-openj9/openj9/issues/11452#issuecomment-754946992
const re = /^\s*at (\S+\/\S*\/)?(.*)\((.*):(\d+)\)$/
export function parseStackTraceElement(stackTraceLine: string): StackTraceElement | undefined {
const match = stackTraceLine.match(re)
if (match !== null) {
const [_, maybeClassLoaderAndModuleNameAndVersion, tracePath, fileName, lineStr] = match
const {classLoader, moduleNameAndVersion} = parseClassLoaderAndModule(maybeClassLoaderAndModuleNameAndVersion)
return {
classLoader,
moduleNameAndVersion,
tracePath,
fileName,
lineStr
}
}
return undefined
}
function parseClassLoaderAndModule(maybeClassLoaderAndModuleNameAndVersion?: string): {
classLoader?: string
moduleNameAndVersion?: string
} {
if (maybeClassLoaderAndModuleNameAndVersion) {
const res = maybeClassLoaderAndModuleNameAndVersion.split('/')
const classLoader = res[0]
let moduleNameAndVersion: string | undefined = res[1]
if (moduleNameAndVersion === '') {
moduleNameAndVersion = undefined
}
return {classLoader, moduleNameAndVersion}
}
return {classLoader: undefined, moduleNameAndVersion: undefined}
}

View file

@ -1,125 +0,0 @@
import {ParseOptions, TestParser} from '../../test-parser'
import {parseStringPromise} from 'xml2js'
import {JunitReport, TestCase, TestSuite} from './jest-junit-types'
import {getExceptionSource} from '../../utils/node-utils'
import {getBasePath, normalizeFilePath} from '../../utils/path-utils'
import {
TestExecutionResult,
TestRunResult,
TestSuiteResult,
TestGroupResult,
TestCaseResult,
TestCaseError
} from '../../test-results'
export class JestJunitParser implements TestParser {
assumedWorkDir: string | undefined
constructor(readonly options: ParseOptions) {}
async parse(path: string, content: string): Promise<TestRunResult> {
const ju = await this.getJunitReport(path, content)
return this.getTestRunResult(path, ju)
}
private async getJunitReport(path: string, content: string): Promise<JunitReport> {
try {
return (await parseStringPromise(content)) as JunitReport
} catch (e) {
throw new Error(`Invalid XML at ${path}\n\n${e}`)
}
}
private getTestRunResult(path: string, junit: JunitReport): TestRunResult {
const suites =
junit.testsuites.testsuite === undefined
? []
: junit.testsuites.testsuite.map(ts => {
const name = this.escapeCharacters(ts.$.name.trim())
const time = parseFloat(ts.$.time) * 1000
const sr = new TestSuiteResult(name, this.getGroups(ts), time)
return sr
})
const time = parseFloat(junit.testsuites.$.time) * 1000
return new TestRunResult(path, suites, time)
}
private getGroups(suite: TestSuite): TestGroupResult[] {
if (!suite.testcase) {
return []
}
const groups: {describe: string; tests: TestCase[]}[] = []
for (const tc of suite.testcase) {
let grp = groups.find(g => g.describe === tc.$.classname)
if (grp === undefined) {
grp = {describe: tc.$.classname, tests: []}
groups.push(grp)
}
grp.tests.push(tc)
}
return groups.map(grp => {
const tests = grp.tests.map(tc => {
const name = tc.$.name.trim()
const result = this.getTestCaseResult(tc)
const time = parseFloat(tc.$.time) * 1000
const error = this.getTestCaseError(tc)
return new TestCaseResult(name, result, time, error)
})
return new TestGroupResult(grp.describe, tests)
})
}
private getTestCaseResult(test: TestCase): TestExecutionResult {
if (test.failure) return 'failed'
if (test.skipped) return 'skipped'
return 'success'
}
private getTestCaseError(tc: TestCase): TestCaseError | undefined {
if (!this.options.parseErrors || !tc.failure) {
return undefined
}
const details = tc.failure[0]
let path
let line
const src = getExceptionSource(details, this.options.trackedFiles, file => this.getRelativePath(file))
if (src) {
path = src.path
line = src.line
}
return {
path,
line,
details
}
}
private getRelativePath(path: string): string {
path = normalizeFilePath(path)
const workDir = this.getWorkDir(path)
if (workDir !== undefined && path.startsWith(workDir)) {
path = path.substr(workDir.length)
}
return path
}
private getWorkDir(path: string): string | undefined {
return (
this.options.workDir ??
this.assumedWorkDir ??
(this.assumedWorkDir = getBasePath(path, this.options.trackedFiles))
)
}
private escapeCharacters(s: string): string {
return s.replace(/([<>])/g, '\\$1')
}
}

View file

@ -1,34 +0,0 @@
export interface JunitReport {
testsuites: TestSuites
}
export interface TestSuites {
$: {
time: string
}
testsuite?: TestSuite[]
}
export interface TestSuite {
$: {
name: string
tests: string
errors: string
failures: string
skipped: string
time: string
timestamp?: Date
}
testcase?: TestCase[]
}
export interface TestCase {
$: {
classname: string
file?: string
name: string
time: string
}
failure?: string[]
skipped?: string[]
}

View file

@ -1,118 +0,0 @@
import {ParseOptions, TestParser} from '../../test-parser'
import {
TestCaseError,
TestCaseResult,
TestExecutionResult,
TestGroupResult,
TestRunResult,
TestSuiteResult
} from '../../test-results'
import {getExceptionSource} from '../../utils/node-utils'
import {getBasePath, normalizeFilePath} from '../../utils/path-utils'
import {MochaJson, MochaJsonTest} from './mocha-json-types'
export class MochaJsonParser implements TestParser {
assumedWorkDir: string | undefined
constructor(readonly options: ParseOptions) {}
async parse(path: string, content: string): Promise<TestRunResult> {
const mocha = this.getMochaJson(path, content)
const result = this.getTestRunResult(path, mocha)
result.sort(true)
return Promise.resolve(result)
}
private getMochaJson(path: string, content: string): MochaJson {
try {
return JSON.parse(content)
} catch (e) {
throw new Error(`Invalid JSON at ${path}\n\n${e}`)
}
}
private getTestRunResult(resultsPath: string, mocha: MochaJson): TestRunResult {
const suitesMap: {[path: string]: TestSuiteResult} = {}
const getSuite = (test: MochaJsonTest): TestSuiteResult => {
const path = this.getRelativePath(test.file)
return suitesMap[path] ?? (suitesMap[path] = new TestSuiteResult(path, []))
}
for (const test of mocha.passes) {
const suite = getSuite(test)
this.processTest(suite, test, 'success')
}
for (const test of mocha.failures) {
const suite = getSuite(test)
this.processTest(suite, test, 'failed')
}
for (const test of mocha.pending) {
const suite = getSuite(test)
this.processTest(suite, test, 'skipped')
}
const suites = Object.values(suitesMap)
return new TestRunResult(resultsPath, suites, mocha.stats.duration)
}
private processTest(suite: TestSuiteResult, test: MochaJsonTest, result: TestExecutionResult): void {
const groupName =
test.fullTitle !== test.title
? test.fullTitle.substr(0, test.fullTitle.length - test.title.length).trimEnd()
: null
let group = suite.groups.find(grp => grp.name === groupName)
if (group === undefined) {
group = new TestGroupResult(groupName, [])
suite.groups.push(group)
}
const error = this.getTestCaseError(test)
const testCase = new TestCaseResult(test.title, result, test.duration ?? 0, error)
group.tests.push(testCase)
}
private getTestCaseError(test: MochaJsonTest): TestCaseError | undefined {
const details = test.err.stack
const message = test.err.message
if (details === undefined) {
return undefined
}
let path
let line
const src = getExceptionSource(details, this.options.trackedFiles, file => this.getRelativePath(file))
if (src) {
path = src.path
line = src.line
}
return {
path,
line,
message,
details
}
}
private getRelativePath(path: string): string {
path = normalizeFilePath(path)
const workDir = this.getWorkDir(path)
if (workDir !== undefined && path.startsWith(workDir)) {
path = path.substr(workDir.length)
}
return path
}
private getWorkDir(path: string): string | undefined {
return (
this.options.workDir ??
this.assumedWorkDir ??
(this.assumedWorkDir = getBasePath(path, this.options.trackedFiles))
)
}
}

View file

@ -1,23 +0,0 @@
export interface MochaJson {
stats: MochaJsonStats
passes: MochaJsonTest[]
pending: MochaJsonTest[]
failures: MochaJsonTest[]
}
export interface MochaJsonStats {
duration: number
}
export interface MochaJsonTest {
title: string
fullTitle: string
file: string
duration?: number
err: MochaJsonTestError
}
export interface MochaJsonTestError {
stack?: string
message?: string
}

View file

@ -1,8 +0,0 @@
import {ParseOptions} from '../../test-parser'
import {JavaJunitParser} from '../java-junit/java-junit-parser'
export class SwiftXunitParser extends JavaJunitParser {
constructor(readonly options: ParseOptions) {
super(options)
}
}