Kea2-python 1.1.3b0__tar.gz → 1.1.3b1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/Kea2_python.egg-info/PKG-INFO +1 -1
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/PKG-INFO +1 -1
- kea2_python-1.1.3b1/kea2/assets/fastbot_libs/arm64-v8a/libfastbot_native.so +0 -0
- kea2_python-1.1.3b1/kea2/assets/fastbot_libs/armeabi-v7a/libfastbot_native.so +0 -0
- kea2_python-1.1.3b1/kea2/assets/fastbot_libs/x86/libfastbot_native.so +0 -0
- kea2_python-1.1.3b1/kea2/assets/fastbot_libs/x86_64/libfastbot_native.so +0 -0
- kea2_python-1.1.3b1/kea2/assets/monkeyq.jar +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/report/bug_report_generator.py +2 -3
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/report/templates/bug_report_template.html +33 -1
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/report/widget_coverage.py +18 -18
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/pyproject.toml +1 -1
- kea2_python-1.1.3b0/kea2/assets/fastbot_libs/arm64-v8a/libfastbot_native.so +0 -0
- kea2_python-1.1.3b0/kea2/assets/fastbot_libs/armeabi-v7a/libfastbot_native.so +0 -0
- kea2_python-1.1.3b0/kea2/assets/fastbot_libs/x86/libfastbot_native.so +0 -0
- kea2_python-1.1.3b0/kea2/assets/fastbot_libs/x86_64/libfastbot_native.so +0 -0
- kea2_python-1.1.3b0/kea2/assets/monkeyq.jar +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/Kea2_python.egg-info/SOURCES.txt +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/Kea2_python.egg-info/dependency_links.txt +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/Kea2_python.egg-info/entry_points.txt +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/Kea2_python.egg-info/requires.txt +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/Kea2_python.egg-info/top_level.txt +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/LICENSE +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/README.md +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/__init__.py +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/adbUtils.py +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/assets/config_version.json +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/assets/fastbot-thirdpart.jar +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/assets/fastbot_configs/abl.strings +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/assets/fastbot_configs/awl.strings +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/assets/fastbot_configs/max.config +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/assets/fastbot_configs/max.fuzzing.strings +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/assets/fastbot_configs/max.schema.strings +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/assets/fastbot_configs/max.strings +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/assets/fastbot_configs/max.tree.pruning +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/assets/fastbot_configs/teardown.py +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/assets/fastbot_configs/widget.block.py +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/assets/framework.jar +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/assets/kea2-thirdpart.jar +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/assets/quicktest.py +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/cli.py +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/fastbotManager.py +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/fastbotx/ActivityTimes.py +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/fastbotx/ReuseEntry.py +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/fastbotx/ReuseModel.py +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/fastbotx/__init__.py +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/fbm_parser.py +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/fs_lock.py +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/kea2_api.py +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/keaUtils.py +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/kea_launcher.py +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/logWatcher.py +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/mixin.py +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/report/__init__.py +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/report/mixin.py +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/report/report_merger.py +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/report/templates/merged_bug_report_template.html +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/report/utils.py +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/result.py +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/resultSyncer.py +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/state.py +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/typedefs.py +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/u2Driver.py +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/utils.py +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/version_manager.py +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/setup.cfg +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/tests/test_u2Selector.py +0 -0
- {kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/tests/test_xpath.py +0 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -613,13 +613,12 @@ class BugReportGenerator(CrashAnrMixin, PathParserMixin, ScreenshotsMixin):
|
|
|
613
613
|
|
|
614
614
|
widget_coverage_trend = []
|
|
615
615
|
with open(widget_coverage_log, "r", encoding="utf-8") as f:
|
|
616
|
-
for
|
|
616
|
+
for line in f:
|
|
617
617
|
line = line.strip()
|
|
618
618
|
if not line:
|
|
619
619
|
continue
|
|
620
620
|
record = json.loads(line)
|
|
621
|
-
|
|
622
|
-
widget_coverage_trend.append(record)
|
|
621
|
+
widget_coverage_trend.append(record)
|
|
623
622
|
|
|
624
623
|
return widget_coverage_trend
|
|
625
624
|
|
|
@@ -556,6 +556,32 @@
|
|
|
556
556
|
background: linear-gradient(to right, var(--primary-color), var(--secondary-color));
|
|
557
557
|
border-radius: 3px;
|
|
558
558
|
}
|
|
559
|
+
|
|
560
|
+
.section-title .summary-link {
|
|
561
|
+
margin-left: 12px;
|
|
562
|
+
font-size: 0.85rem;
|
|
563
|
+
font-weight: 600;
|
|
564
|
+
text-decoration: none;
|
|
565
|
+
color: #1d4ed8;
|
|
566
|
+
background: rgba(59, 130, 246, 0.12);
|
|
567
|
+
border: 1px solid rgba(59, 130, 246, 0.25);
|
|
568
|
+
padding: 4px 10px;
|
|
569
|
+
border-radius: 999px;
|
|
570
|
+
display: inline-flex;
|
|
571
|
+
align-items: center;
|
|
572
|
+
gap: 6px;
|
|
573
|
+
transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
.section-title .summary-link:hover {
|
|
577
|
+
background: rgba(59, 130, 246, 0.2);
|
|
578
|
+
border-color: rgba(59, 130, 246, 0.45);
|
|
579
|
+
color: #1e3a8a;
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
.section-title .summary-link i {
|
|
583
|
+
font-size: 0.9em;
|
|
584
|
+
}
|
|
559
585
|
|
|
560
586
|
.section-block {
|
|
561
587
|
margin-bottom: 70px;
|
|
@@ -1465,7 +1491,13 @@
|
|
|
1465
1491
|
|
|
1466
1492
|
<!-- Widget Coverage Trend Chart -->
|
|
1467
1493
|
<div class="section-block">
|
|
1468
|
-
<h2 class="section-title">
|
|
1494
|
+
<h2 class="section-title">
|
|
1495
|
+
Widget Coverage Trend
|
|
1496
|
+
<a href="output_{{ log_stamp }}/widget_coverage_report.txt" class="summary-link" title="Open widget_coverage_report.txt">
|
|
1497
|
+
Widget Coverage Report
|
|
1498
|
+
<i class="bi bi-box-arrow-up-right"></i>
|
|
1499
|
+
</a>
|
|
1500
|
+
</h2>
|
|
1469
1501
|
<div class="chart-container">
|
|
1470
1502
|
<canvas id="widgetCoverageChart"></canvas>
|
|
1471
1503
|
</div>
|
|
@@ -62,9 +62,9 @@ class WidgetCoverage:
|
|
|
62
62
|
with open(output_file, "w", encoding="utf-8") as f:
|
|
63
63
|
f.writelines(f"{w}\n" for w in triggered_widgets)
|
|
64
64
|
|
|
65
|
-
def __dump_coverage_log(self, records:
|
|
65
|
+
def __dump_coverage_log(self, records: List[dict]):
|
|
66
66
|
with open(self.coverage_log, "w", encoding="utf-8") as f:
|
|
67
|
-
f.writelines(f"{
|
|
67
|
+
f.writelines(f"{w}\n" for w in records)
|
|
68
68
|
|
|
69
69
|
def _analyze_steps(self, profile_period: int):
|
|
70
70
|
triggered_widgets: Set[str] = set()
|
|
@@ -73,6 +73,14 @@ class WidgetCoverage:
|
|
|
73
73
|
last_recorded_step = -1
|
|
74
74
|
final_steps_count = None # track the last steps count seen
|
|
75
75
|
|
|
76
|
+
def __record_coverage(steps_count: int):
|
|
77
|
+
coverage_records.append(
|
|
78
|
+
json.dumps({
|
|
79
|
+
"stepsCount": steps_count,
|
|
80
|
+
"coverage": len(triggered_widgets),
|
|
81
|
+
})
|
|
82
|
+
)
|
|
83
|
+
|
|
76
84
|
with open(self.steps_log, "r", encoding="utf-8") as f:
|
|
77
85
|
for line in f:
|
|
78
86
|
data = json.loads(line)
|
|
@@ -83,24 +91,16 @@ class WidgetCoverage:
|
|
|
83
91
|
steps_count = int(data.get("MonkeyStepsCount", 0))
|
|
84
92
|
final_steps_count = steps_count
|
|
85
93
|
|
|
86
|
-
if
|
|
87
|
-
steps_count
|
|
88
|
-
and steps_count % profile_period == 0
|
|
89
|
-
and steps_count != last_recorded_step
|
|
90
|
-
):
|
|
91
|
-
coverage_records.append(
|
|
92
|
-
{
|
|
93
|
-
"stepsCount": steps_count,
|
|
94
|
-
"coverage": len(triggered_widgets),
|
|
95
|
-
}
|
|
96
|
-
)
|
|
94
|
+
if steps_count % profile_period == 0:
|
|
95
|
+
__record_coverage(steps_count)
|
|
97
96
|
last_recorded_step = steps_count
|
|
98
97
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
)
|
|
98
|
+
# Record the last step; avoid duplicate if it's already recorded at a period boundary.
|
|
99
|
+
if (
|
|
100
|
+
final_steps_count
|
|
101
|
+
and final_steps_count != last_recorded_step
|
|
102
|
+
):
|
|
103
|
+
__record_coverage(final_steps_count)
|
|
104
104
|
|
|
105
105
|
return triggered_widgets, coverage_records
|
|
106
106
|
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kea2_python-1.1.3b0 → kea2_python-1.1.3b1}/kea2/report/templates/merged_bug_report_template.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|