summaryrefslogtreecommitdiff
path: root/zephyr/test/drivers/default/src/console_cmd/accelinfo.c
blob: aac63c01b7488e3d5a0645609ac407e6df50030e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
/* Copyright 2022 The ChromiumOS Authors
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */

#include "config.h"
#include "console.h"
#include "ec_commands.h"
#include "test/drivers/test_state.h"
#include "timer.h"

#include <zephyr/shell/shell.h>
#include <zephyr/ztest.h>

static void console_cmd_accelinfo_after(void *fixture)
{
	ARG_UNUSED(fixture);
	shell_execute_cmd(get_ec_shell(), "accelinfo off");
}

ZTEST_SUITE(console_cmd_accelinfo, drivers_predicate_post_main, NULL, NULL,
	    console_cmd_accelinfo_after, NULL);

ZTEST_USER(console_cmd_accelinfo, test_too_many_args)
{
	int rv = shell_execute_cmd(get_ec_shell(), "accelinfo arg1 arg2");

	zassert_equal(rv, EC_ERROR_PARAM_COUNT, "Expected %d, but got %d",
		      EC_ERROR_PARAM_COUNT, rv);
}

ZTEST_USER(console_cmd_accelinfo, test_print_once)
{
	zassert_ok(shell_execute_cmd(get_ec_shell(), "accelinfo"));
}

ZTEST_USER(console_cmd_accelinfo, test_invalid_arg)
{
	int rv = shell_execute_cmd(get_ec_shell(), "accelinfo bar");

	zassert_equal(rv, EC_ERROR_PARAM1, "Expected %d, but got %d",
		      EC_ERROR_PARAM1, rv);
}

ZTEST_USER(console_cmd_accelinfo, test_enable_disable)
{
	/*
	 * There's no way to verify what is being printed to the console yet, so
	 * just assert that the command executed and returned 0.
	 */
	zassert_ok(shell_execute_cmd(get_ec_shell(), "accelinfo on"));
	k_msleep(CONFIG_MOTION_MIN_SENSE_WAIT_TIME * MSEC * 2);

	zassert_ok(shell_execute_cmd(get_ec_shell(), "accelinfo off"));
}