]> git.ipfire.org Git - thirdparty/u-boot.git/blame - test/dm/acpi.c
acpi: Add a simple sandbox test
[thirdparty/u-boot.git] / test / dm / acpi.c
CommitLineData
f50cc952
SG
1// SPDX-License-Identifier: GPL-2.0+
2/*
3 * Tests for ACPI table generation
4 *
5 * Copyright 2019 Google LLC
6 * Written by Simon Glass <sjg@chromium.org>
7 */
8
9#include <common.h>
10#include <dm.h>
11#include <dm/acpi.h>
12#include <dm/test.h>
13#include <test/ut.h>
14
15#define ACPI_TEST_DEV_NAME "ABCD"
16
17static int testacpi_get_name(const struct udevice *dev, char *out_name)
18{
19 return acpi_copy_name(out_name, ACPI_TEST_DEV_NAME);
20}
21
22struct acpi_ops testacpi_ops = {
23 .get_name = testacpi_get_name,
24};
25
26static const struct udevice_id testacpi_ids[] = {
27 { .compatible = "denx,u-boot-acpi-test" },
28 { }
29};
30
31U_BOOT_DRIVER(testacpi_drv) = {
32 .name = "testacpi_drv",
33 .of_match = testacpi_ids,
34 .id = UCLASS_TEST_ACPI,
35 ACPI_OPS_PTR(&testacpi_ops)
36};
37
38UCLASS_DRIVER(testacpi) = {
39 .name = "testacpi",
40 .id = UCLASS_TEST_ACPI,
41};
42
43/* Test ACPI get_name() */
44static int dm_test_acpi_get_name(struct unit_test_state *uts)
45{
46 char name[ACPI_NAME_MAX];
47 struct udevice *dev;
48
49 ut_assertok(uclass_first_device_err(UCLASS_TEST_ACPI, &dev));
50 ut_assertok(acpi_get_name(dev, name));
51 ut_asserteq_str(ACPI_TEST_DEV_NAME, name);
52
53 return 0;
54}
55DM_TEST(dm_test_acpi_get_name, DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT);