Kea2-python 1.2.1__tar.gz → 1.2.2b4__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.2.1 → kea2_python-1.2.2b4}/Kea2_python.egg-info/PKG-INFO +1 -1
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/PKG-INFO +1 -1
- kea2_python-1.2.2b4/kea2/assets/fastbot_libs/arm64-v8a/libfastbot_native.so +0 -0
- kea2_python-1.2.2b4/kea2/assets/fastbot_libs/armeabi-v7a/libfastbot_native.so +0 -0
- kea2_python-1.2.2b4/kea2/assets/fastbot_libs/x86/libfastbot_native.so +0 -0
- kea2_python-1.2.2b4/kea2/assets/fastbot_libs/x86_64/libfastbot_native.so +0 -0
- kea2_python-1.2.2b4/kea2/assets/monkeyq.jar +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/cli.py +1 -105
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/fastbotManager.py +1 -1
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/keaUtils.py +2 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/kea_launcher.py +11 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/pyproject.toml +1 -1
- kea2_python-1.2.1/kea2/assets/fastbot_libs/arm64-v8a/libfastbot_native.so +0 -0
- kea2_python-1.2.1/kea2/assets/fastbot_libs/armeabi-v7a/libfastbot_native.so +0 -0
- kea2_python-1.2.1/kea2/assets/fastbot_libs/x86/libfastbot_native.so +0 -0
- kea2_python-1.2.1/kea2/assets/fastbot_libs/x86_64/libfastbot_native.so +0 -0
- kea2_python-1.2.1/kea2/assets/monkeyq.jar +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/Kea2_python.egg-info/SOURCES.txt +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/Kea2_python.egg-info/dependency_links.txt +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/Kea2_python.egg-info/entry_points.txt +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/Kea2_python.egg-info/requires.txt +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/Kea2_python.egg-info/top_level.txt +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/LICENSE +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/README.md +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/__init__.py +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/adbUtils.py +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/assets/config_version.json +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/assets/fastbot-thirdpart.jar +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/assets/fastbot_configs/abl.strings +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/assets/fastbot_configs/awl.strings +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/assets/fastbot_configs/max.config +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/assets/fastbot_configs/max.fuzzing.strings +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/assets/fastbot_configs/max.schema.strings +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/assets/fastbot_configs/max.strings +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/assets/fastbot_configs/max.tree.pruning +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/assets/fastbot_configs/teardown.py +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/assets/fastbot_configs/widget.block.py +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/assets/framework.jar +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/assets/kea2-thirdpart.jar +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/assets/quicktest.py +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/fastbotx/ActivityTimes.py +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/fastbotx/ReuseEntry.py +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/fastbotx/ReuseModel.py +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/fastbotx/__init__.py +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/fbm_parser.py +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/fbm_plugin.py +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/fs_lock.py +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/kea2_api.py +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/logWatcher.py +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/mixin.py +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/report/__init__.py +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/report/bug_report_generator.py +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/report/mixin.py +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/report/report_merger.py +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/report/templates/bug_report_template.html +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/report/templates/merged_bug_report_template.html +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/report/utils.py +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/report/widget_coverage.py +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/result.py +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/resultSyncer.py +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/state.py +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/typedefs.py +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/u2Driver.py +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/utils.py +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/kea2/version_manager.py +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/setup.cfg +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/tests/test_u2Selector.py +0 -0
- {kea2_python-1.2.1 → kea2_python-1.2.2b4}/tests/test_xpath.py +0 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -108,89 +108,6 @@ def cmd_merge(args):
|
|
|
108
108
|
logger.error(f"Error during merge operation: {e}")
|
|
109
109
|
|
|
110
110
|
|
|
111
|
-
def cmd_mergefbm(args):
|
|
112
|
-
"""Merge all FBM files in the specified folder and its subfolders using sum mode"""
|
|
113
|
-
from .fbm_parser import FBMMerger
|
|
114
|
-
import glob
|
|
115
|
-
import shutil
|
|
116
|
-
|
|
117
|
-
try:
|
|
118
|
-
# Validate input path
|
|
119
|
-
input_path = Path(args.path).resolve()
|
|
120
|
-
if not input_path.exists():
|
|
121
|
-
logger.error(f"Input directory does not exist: {input_path}")
|
|
122
|
-
return
|
|
123
|
-
if not input_path.is_dir():
|
|
124
|
-
logger.error(f"Input path is not a directory: {input_path}")
|
|
125
|
-
return
|
|
126
|
-
|
|
127
|
-
# Find all FBM files in the directory and its subdirectories
|
|
128
|
-
fbm_files = glob.glob(str(input_path / "**" / "*.fbm"), recursive=True)
|
|
129
|
-
|
|
130
|
-
if not fbm_files:
|
|
131
|
-
logger.error(f"No FBM files found in {input_path} or its subdirectories")
|
|
132
|
-
return
|
|
133
|
-
|
|
134
|
-
logger.debug(f"Found {len(fbm_files)} FBM files to merge:")
|
|
135
|
-
for fbm_file in fbm_files:
|
|
136
|
-
logger.debug(f" - {fbm_file}")
|
|
137
|
-
|
|
138
|
-
# Set default output file if not provided
|
|
139
|
-
if not args.output:
|
|
140
|
-
output_file = input_path / "merged.fbm"
|
|
141
|
-
else:
|
|
142
|
-
output_file = Path(args.output).resolve()
|
|
143
|
-
|
|
144
|
-
# Initialize merger
|
|
145
|
-
merger = FBMMerger()
|
|
146
|
-
|
|
147
|
-
# Handle different cases
|
|
148
|
-
if len(fbm_files) == 1:
|
|
149
|
-
# Only one file, just copy it to output
|
|
150
|
-
shutil.copyfile(fbm_files[0], output_file)
|
|
151
|
-
logger.info(f"Only one FBM file found, copied to {output_file}")
|
|
152
|
-
else:
|
|
153
|
-
# Merge files iteratively: start with the first file and merge with each subsequent file
|
|
154
|
-
# Create a temporary file for the intermediate merged result
|
|
155
|
-
temp_output = input_path / f".tmp_merged.fbm"
|
|
156
|
-
|
|
157
|
-
# Start with the first file as the initial merged result
|
|
158
|
-
shutil.copyfile(fbm_files[0], temp_output)
|
|
159
|
-
|
|
160
|
-
# Iterate through the remaining files and merge them one by one
|
|
161
|
-
for i in range(1, len(fbm_files)):
|
|
162
|
-
current_file = fbm_files[i]
|
|
163
|
-
next_temp = input_path / f".tmp_merged_{i}.fbm"
|
|
164
|
-
|
|
165
|
-
logger.debug(f"Merging {temp_output} and {current_file} into {next_temp}")
|
|
166
|
-
success = merger.merge(str(temp_output), str(current_file), str(next_temp), merge_mode='sum')
|
|
167
|
-
|
|
168
|
-
if not success:
|
|
169
|
-
logger.error(f"Failed to merge {temp_output} and {current_file}")
|
|
170
|
-
# Clean up temporary files
|
|
171
|
-
for f in [temp_output, next_temp]:
|
|
172
|
-
if f.exists() and f.name.startswith(".tmp_"):
|
|
173
|
-
f.unlink()
|
|
174
|
-
return
|
|
175
|
-
|
|
176
|
-
# Remove the previous temporary file and update to the new one
|
|
177
|
-
temp_output.unlink()
|
|
178
|
-
temp_output = next_temp
|
|
179
|
-
|
|
180
|
-
# Move the final merged file to the output location
|
|
181
|
-
if temp_output != output_file:
|
|
182
|
-
temp_output.replace(output_file)
|
|
183
|
-
|
|
184
|
-
print(f"✅ All FBM files merged successfully!", flush=True)
|
|
185
|
-
print(f"📊 Merged FBM file: {output_file}", flush=True)
|
|
186
|
-
print(f"📈 Merged {len(fbm_files)} FBM files", flush=True)
|
|
187
|
-
|
|
188
|
-
except Exception as e:
|
|
189
|
-
logger.error(f"Error during FBM merge operation: {e}")
|
|
190
|
-
import traceback
|
|
191
|
-
logger.debug(traceback.format_exc())
|
|
192
|
-
|
|
193
|
-
|
|
194
111
|
def cmd_run(args):
|
|
195
112
|
base_dir = getProjectRoot()
|
|
196
113
|
if base_dir is None:
|
|
@@ -251,28 +168,7 @@ _commands = [
|
|
|
251
168
|
help="Output directory for merged report (optional)"
|
|
252
169
|
)
|
|
253
170
|
]
|
|
254
|
-
|
|
255
|
-
dict(
|
|
256
|
-
action=cmd_mergefbm,
|
|
257
|
-
command="mergefbm",
|
|
258
|
-
help="merge all FBM files in the specified folder and its subfolders using sum mode",
|
|
259
|
-
flags=[
|
|
260
|
-
dict(
|
|
261
|
-
name=["path"],
|
|
262
|
-
args=["-p", "--path"],
|
|
263
|
-
type=str,
|
|
264
|
-
required=True,
|
|
265
|
-
help="Path to the folder containing FBM files to merge"
|
|
266
|
-
),
|
|
267
|
-
dict(
|
|
268
|
-
name=["output"],
|
|
269
|
-
args=["-o", "--output"],
|
|
270
|
-
type=str,
|
|
271
|
-
required=False,
|
|
272
|
-
help="Output file path for merged FBM file (optional, default: merged.fbm in the input folder)"
|
|
273
|
-
)
|
|
274
|
-
]
|
|
275
|
-
)
|
|
171
|
+
)
|
|
276
172
|
]
|
|
277
173
|
|
|
278
174
|
|
|
@@ -189,7 +189,7 @@ class FastbotManager:
|
|
|
189
189
|
"exec", "app_process",
|
|
190
190
|
"/system/bin", "com.android.commands.monkey.Monkey",
|
|
191
191
|
"--agent-u2",
|
|
192
|
-
|
|
192
|
+
self.options.fastbot_agent,
|
|
193
193
|
"--running-minutes", f"{self.options.running_mins}",
|
|
194
194
|
"--throttle", f"{self.options.throttle}",
|
|
195
195
|
"--output-directory", f"{self.options.device_output_root}/output_{self.options.log_stamp}",
|
|
@@ -141,6 +141,8 @@ class Options:
|
|
|
141
141
|
act_whitelist_file: str = None
|
|
142
142
|
# Activity BlackList File
|
|
143
143
|
act_blacklist_file: str = None
|
|
144
|
+
# Fastbot Agent
|
|
145
|
+
fastbot_agent: Literal["double-sarsa", "sarsa"] = "double-sarsa"
|
|
144
146
|
# propertytest sub-commands args (eg. discover -s xxx -p xxx)
|
|
145
147
|
propertytest_args: List[str] = None
|
|
146
148
|
# period (N steps) to restart the app under test
|
|
@@ -162,6 +162,16 @@ def _set_runner_parser(subparsers: "argparse._SubParsersAction[argparse.Argument
|
|
|
162
162
|
help="(Experimental) FBM merge at startup. When enabled, pull FBM(s) from the device at startup, merge them with local PC FBM data.",
|
|
163
163
|
)
|
|
164
164
|
|
|
165
|
+
parser.add_argument(
|
|
166
|
+
"--fastbot-agent",
|
|
167
|
+
dest="fastbot_agent",
|
|
168
|
+
type=str,
|
|
169
|
+
choices=["double-sarsa", "sarsa"],
|
|
170
|
+
required=False,
|
|
171
|
+
default="double-sarsa",
|
|
172
|
+
help="Fastbot agent strategy.",
|
|
173
|
+
)
|
|
174
|
+
|
|
165
175
|
|
|
166
176
|
parser.add_argument(
|
|
167
177
|
"--act-whitelist-file",
|
|
@@ -301,6 +311,7 @@ def run(args=None) -> ReturnCode:
|
|
|
301
311
|
unittest_args=args.unittest_args,
|
|
302
312
|
extra_args=args.extra,
|
|
303
313
|
merge_fbm=args.merge_fbm,
|
|
314
|
+
fastbot_agent=args.fastbot_agent,
|
|
304
315
|
)
|
|
305
316
|
|
|
306
317
|
|
|
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
|
{kea2_python-1.2.1 → kea2_python-1.2.2b4}/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
|
|
File without changes
|