Skip to content

Commit

Permalink
feat(disable rotate option):add an option to diable rotate event
Browse files Browse the repository at this point in the history
  • Loading branch information
XiangchenShen committed Jan 9, 2025
1 parent a36e0c8 commit 51502e5
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 9 deletions.
8 changes: 6 additions & 2 deletions kea/droidbot.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ def __init__(
is_harmonyos=False,
is_package=False,
generate_utg=False,
disable_rotate=False,
settings:"Setting"=None
):
"""
Expand Down Expand Up @@ -123,6 +124,7 @@ def __init__(
self.run_initial_rules_after_every_mutation = run_initial_rules_after_every_mutation
self.is_package = is_package
self.generate_utg = generate_utg
self.disable_rotate = disable_rotate
self.settings = settings
try:
self.init_droidbot(is_harmonyos)
Expand Down Expand Up @@ -170,7 +172,8 @@ def init_droidbot(self, is_harmonyos):
number_of_events_that_restart_app=self.number_of_events_that_restart_app,
generate_utg=self.generate_utg,
output_dir=self.output_dir,
is_package=self.is_package
is_package=self.is_package,
disable_rotate=self.disable_rotate
)
# self.send_documents()
# initializer for HarmonyOS system
Expand Down Expand Up @@ -207,7 +210,8 @@ def init_droidbot(self, is_harmonyos):
replay_output=self.replay_output,
kea=self.kea,
output_dir=self.output_dir,
is_package=self.is_package)
is_package=self.is_package,
disable_rotate=self.disable_rotate)

@staticmethod
def get_instance():
Expand Down
5 changes: 4 additions & 1 deletion kea/input_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ def __init__(
generate_utg=False,
output_dir=None,
is_package=False,
disable_rotate=False
):
"""
manage input event sent to the target device
Expand All @@ -75,6 +76,7 @@ def __init__(
self.number_of_events_that_restart_app = number_of_events_that_restart_app
self.generate_utg = generate_utg
self.sim_calculator = Similarity(DEFAULT_UI_TARPIT_NUM)
self.disable_rotate=disable_rotate
self.is_package = is_package
self.policy = self.get_input_policy(device, app, master)

Expand All @@ -87,10 +89,11 @@ def get_input_policy(self, device, app, master):
app,
self.kea,
self.generate_utg,
self.disable_rotate,
self.output_dir
)
elif self.policy_name == POLICY_RANDOM:
input_policy = RandomPolicy(device, app, kea=self.kea, number_of_events_that_restart_app = self.number_of_events_that_restart_app, clear_and_reinstall_app=not self.is_package, allow_to_generate_utg = self.generate_utg, output_dir=self.output_dir)
input_policy = RandomPolicy(device, app, kea=self.kea, number_of_events_that_restart_app = self.number_of_events_that_restart_app, clear_and_reinstall_app= not self.is_package, allow_to_generate_utg = self.generate_utg,disable_rotate=self.disable_rotate,output_dir=self.output_dir)
elif self.policy_name == POLICY_LLM:
input_policy = LLMPolicy(device, app, kea=self.kea, number_of_events_that_restart_app = self.number_of_events_that_restart_app, clear_and_restart_app_data_after_100_events=True, allow_to_generate_utg = self.generate_utg, output_dir=self.output_dir)
else:
Expand Down
11 changes: 8 additions & 3 deletions kea/input_policy.py
Original file line number Diff line number Diff line change
Expand Up @@ -377,6 +377,7 @@ def __init__(
number_of_events_that_restart_app=100,
clear_and_reinstall_app=False,
allow_to_generate_utg=False,
disable_rotate=False,
output_dir=None
):
super(RandomPolicy, self).__init__(device, app, kea, allow_to_generate_utg)
Expand All @@ -386,6 +387,7 @@ def __init__(
self.logger = logging.getLogger(self.__class__.__name__)
self.output_dir=output_dir
save_log(self.logger, self.output_dir)
self.disable_rotate=disable_rotate
self.last_rotate_events = KEY_RotateDeviceToPortraitEvent

def generate_event(self):
Expand Down Expand Up @@ -452,7 +454,8 @@ def generate_random_event_based_on_current_state(self):

possible_events = current_state.get_possible_input()
possible_events.append(KeyEvent(name="BACK"))
possible_events.append(RotateDevice())
if not self.disable_rotate:
possible_events.append(RotateDevice())

self._event_trace += EVENT_FLAG_EXPLORE

Expand All @@ -475,11 +478,12 @@ class GuidedPolicy(KeaInputPolicy):
generate events around the main path
"""

def __init__(self, device, app, kea=None, allow_to_generate_utg=False,output_dir=None):
def __init__(self, device, app, kea=None, allow_to_generate_utg=False,disable_rotate=False,output_dir=None):
super(GuidedPolicy, self).__init__(device, app, kea, allow_to_generate_utg)
self.logger = logging.getLogger(self.__class__.__name__)
self.output_dir = output_dir
save_log(self.logger,self.output_dir)
self.disable_rotate = disable_rotate
if len(self.kea.all_mainPaths):
self.logger.info("Found %d mainPaths" % len(self.kea.all_mainPaths))
else:
Expand Down Expand Up @@ -708,7 +712,8 @@ def generate_random_event_based_on_current_state(self):
# if self.random_input:
# random.shuffle(possible_events)
possible_events.append(KeyEvent(name="BACK"))
possible_events.append(RotateDevice())
if not self.disable_rotate:
possible_events.append(RotateDevice())

self._event_trace += EVENT_FLAG_EXPLORE

Expand Down
10 changes: 7 additions & 3 deletions kea/start.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ class Setting:
is_harmonyos:bool=False
generate_utg:bool=False
is_package:bool=False
disable_rotate:bool=False

def parse_args():
"""Parse, load and sanitize the args from the command line and the config file `config.yml`.
Expand Down Expand Up @@ -82,6 +83,8 @@ def parse_args():
help="load the args from config.yml, and the args in the command line will be ignored.")
parser.add_argument("-utg", action="store_true", dest="generate_utg", default=False,
help="Generate UI transition graph")
parser.add_argument("-disable_rotate", action="store_true", dest="disable_rotate", default=False,
help="Disable rotate event in the testing")
options = parser.parse_args()

# load the args from the config file `config.yml`
Expand All @@ -91,7 +94,6 @@ def parse_args():

# sanitize these args
sanitize_args(options)

return options

def load_ymal_args(opts):
Expand Down Expand Up @@ -164,7 +166,8 @@ def start_kea(kea:"Kea", settings:"Setting" = None):
is_harmonyos=settings.is_harmonyos,
is_package=settings.is_package,
settings=settings,
generate_utg=settings.generate_utg
generate_utg=settings.generate_utg,
disable_rotate=settings.disable_rotate
)

kea._pdl_driver.set_droidbot(droidbot)
Expand All @@ -190,7 +193,8 @@ def main():
grant_perm=options.grant_perm,
is_emulator=options.is_emulator,
generate_utg=options.generate_utg,
is_package=options.is_package
is_package=options.is_package,
disable_rotate=options.disable_rotate
)

# load the pdl driver for Android/HarmonyOS
Expand Down

0 comments on commit 51502e5

Please sign in to comment.