Coverage Report

Created: 2026-03-11 06:21

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/u-boot/test/dm/sysinfo-gpio.c
Line
Count
Source
1
// SPDX-License-Identifier: GPL-2.0+
2
/*
3
 * Copyright (C) 2021 Sean Anderson <sean.anderson@seco.com>
4
 */
5
6
#include <dm.h>
7
#include <log.h>
8
#include <sysinfo.h>
9
#include <asm/gpio.h>
10
#include <dm/test.h>
11
#include <test/test.h>
12
#include <test/ut.h>
13
14
static int dm_test_sysinfo_gpio(struct unit_test_state *uts)
15
0
{
16
0
  char buf[64];
17
0
  int val;
18
0
  struct udevice *sysinfo, *gpio;
19
20
0
  ut_assertok(uclass_get_device_by_name(UCLASS_SYSINFO, "sysinfo-gpio",
21
0
                &sysinfo));
22
0
  ut_assertok(uclass_get_device_by_name(UCLASS_GPIO, "base-gpios", &gpio));
23
24
  /*
25
   * Set up pins: pull-up (1), pull-down (0) and floating (2). This should
26
   * result in digits 2 0 1, i.e. 2 * 9 + 1 * 3 = 19
27
   */
28
0
  sandbox_gpio_set_flags(gpio, 15, GPIOD_EXT_PULL_UP);
29
0
  sandbox_gpio_set_flags(gpio, 16, GPIOD_EXT_PULL_DOWN);
30
0
  sandbox_gpio_set_flags(gpio, 17, 0);
31
0
  ut_assertok(sysinfo_detect(sysinfo));
32
0
  ut_assertok(sysinfo_get_int(sysinfo, SYSID_BOARD_MODEL, &val));
33
0
  ut_asserteq(19, val);
34
0
  ut_assertok(sysinfo_get_str(sysinfo, SYSID_BOARD_MODEL, sizeof(buf),
35
0
            buf));
36
0
  ut_asserteq_str("rev_a", buf);
37
38
  /*
39
   * Set up pins: floating (2), pull-up (1) and pull-down (0). This should
40
   * result in digits 0 1 2, i.e. 1 * 3 + 2 = 5
41
   */
42
0
  sandbox_gpio_set_flags(gpio, 15, 0);
43
0
  sandbox_gpio_set_flags(gpio, 16, GPIOD_EXT_PULL_UP);
44
0
  sandbox_gpio_set_flags(gpio, 17, GPIOD_EXT_PULL_DOWN);
45
0
  ut_assertok(sysinfo_detect(sysinfo));
46
0
  ut_assertok(sysinfo_get_int(sysinfo, SYSID_BOARD_MODEL, &val));
47
0
  ut_asserteq(5, val);
48
0
  ut_assertok(sysinfo_get_str(sysinfo, SYSID_BOARD_MODEL, sizeof(buf),
49
0
            buf));
50
0
  ut_asserteq_str("foo", buf);
51
52
  /*
53
   * Set up pins: floating (2), pull-up (1) and pull-down (0). This should
54
   * result in digits 1 2 0, i.e. 1 * 9 + 2 * 3 = 15
55
   */
56
0
  sandbox_gpio_set_flags(gpio, 15, GPIOD_EXT_PULL_DOWN);
57
0
  sandbox_gpio_set_flags(gpio, 16, 0);
58
0
  sandbox_gpio_set_flags(gpio, 17, GPIOD_EXT_PULL_UP);
59
0
  ut_assertok(sysinfo_detect(sysinfo));
60
0
  ut_assertok(sysinfo_get_int(sysinfo, SYSID_BOARD_MODEL, &val));
61
0
  ut_asserteq(15, val);
62
0
  ut_assertok(sysinfo_get_str(sysinfo, SYSID_BOARD_MODEL, sizeof(buf),
63
0
            buf));
64
0
  ut_asserteq_str("unknown", buf);
65
66
0
  return 0;
67
0
}
68
DM_TEST(dm_test_sysinfo_gpio, UTF_SCAN_PDATA | UTF_SCAN_FDT);