Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

testing/monkey: add running-minutes parameter #2930

Merged
merged 1 commit into from
Jan 7, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 36 additions & 1 deletion testing/monkey/monkey_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,8 @@
# define MONKEY_SCREEN_GETVIDEOINFO LCDDEVIO_GETVIDEOINFO
#endif

#define MONKEY_RUNNING_MINUTES_MAX (UINT32_MAX / 60 / 1000)

#define MONKEY_SCREEN_HOR_RES_DEFAULT 480
#define MONKEY_SCREEN_VER_RES_DEFAULT 480

Expand Down Expand Up @@ -137,6 +139,7 @@ struct monkey_param_s
int btn_bit;
int log_level;
struct monkey_event_config_s event[MONKEY_EVENT_LAST];
uint32_t running_minutes;
};

enum monkey_wait_res_e
Expand Down Expand Up @@ -170,7 +173,8 @@ static void show_usage(FAR const char *progname, int exitcode)
" --duration-click <string>"
" --duration-longpress <string>"
" --duration-drag <string>\n"
" --screen-offset <string>\n",
" --screen-offset <string>\n"
" --running-minutes <decimal-value>\n",
progname);

printf("\nWhere:\n");
Expand Down Expand Up @@ -200,6 +204,7 @@ static void show_usage(FAR const char *progname, int exitcode)
"<decimal-value min>-<decimal-value max>.\n");
printf(" --screen-offset <string> Screen offset: "
"<decimal-value x_offset>,<decimal-value y_offset>\n");
printf(" --running-minutes <decimal-value> Running minutes.\n");

exit(exitcode);
}
Expand Down Expand Up @@ -304,6 +309,8 @@ static FAR struct monkey_s *monkey_init(
config.event[i].duration_max);
}

MONKEY_LOG_NOTICE("Running minutes: %" PRIu32, param->running_minutes);

if (MONKEY_IS_UINPUT_TYPE(param->dev_type_mask))
{
if (param->file_path)
Expand Down Expand Up @@ -377,6 +384,17 @@ static void parse_long_commandline(int argc, FAR char **argv,
",");
break;

case 7:
OPTARG_TO_VALUE(param->running_minutes, uint32_t, 10);

if (param->running_minutes > MONKEY_RUNNING_MINUTES_MAX)
{
MONKEY_LOG_WARN("Running minutes must be less than %d",
MONKEY_RUNNING_MINUTES_MAX);
param->running_minutes = MONKEY_RUNNING_MINUTES_MAX;
}
break;

default:
MONKEY_LOG_WARN("Unknown longindex: %d", longindex);
show_usage(argv[0], EXIT_FAILURE);
Expand All @@ -403,6 +421,7 @@ static void parse_commandline(int argc, FAR char **argv,
{"duration-longpress", required_argument, NULL, 0 },
{"duration-drag", required_argument, NULL, 0 },
{"screen-offset", required_argument, NULL, 0 },
{"running-minutes", required_argument, NULL, 0 },
{0, 0, NULL, 0 }
};

Expand Down Expand Up @@ -545,6 +564,7 @@ int main(int argc, FAR char *argv[])
{
struct monkey_param_s param;
FAR struct monkey_s *monkey;
uint32_t start_tick;
parse_commandline(argc, argv, &param);

monkey = monkey_init(&param);
Expand All @@ -554,11 +574,26 @@ int main(int argc, FAR char *argv[])
return ERROR;
}

start_tick = monkey_tick_get();

while (1)
{
enum monkey_wait_res_e res;
int sleep_ms;

if (param.running_minutes > 0)
{
uint32_t elaps = monkey_tick_elaps(monkey_tick_get(), start_tick);

if (elaps > param.running_minutes * 60 * 1000)
{
MONKEY_LOG_WARN("Running time is over: %" PRIu32
" minutes, exit...",
param.running_minutes);
break;
}
}

sleep_ms = monkey_update(monkey);

if (sleep_ms < 0)
Expand Down
Loading