uboot/test/dm/mmc.c
<<
>>
Prefs
   1/*
   2 * Copyright (C) 2015 Google, Inc
   3 *
   4 * SPDX-License-Identifier:     GPL-2.0+
   5 */
   6
   7#include <common.h>
   8#include <dm.h>
   9#include <mmc.h>
  10#include <dm/test.h>
  11#include <test/ut.h>
  12
  13DECLARE_GLOBAL_DATA_PTR;
  14
  15/*
  16 * Basic test of the mmc uclass. We could expand this by implementing an MMC
  17 * stack for sandbox, or at least implementing the basic operation.
  18 */
  19static int dm_test_mmc_base(struct unit_test_state *uts)
  20{
  21        struct udevice *dev;
  22
  23        ut_assertok(uclass_get_device(UCLASS_MMC, 0, &dev));
  24
  25        return 0;
  26}
  27DM_TEST(dm_test_mmc_base, DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT);
  28
  29static int dm_test_mmc_blk(struct unit_test_state *uts)
  30{
  31        struct udevice *dev;
  32        struct blk_desc *dev_desc;
  33        char cmp[1024];
  34
  35        ut_assertok(uclass_get_device(UCLASS_MMC, 0, &dev));
  36        ut_assertok(blk_get_device_by_str("mmc", "0", &dev_desc));
  37
  38        /* Read a few blocks and look for the string we expect */
  39        ut_asserteq(512, dev_desc->blksz);
  40        memset(cmp, '\0', sizeof(cmp));
  41        ut_asserteq(2, blk_dread(dev_desc, 0, 2, cmp));
  42        ut_assertok(strcmp(cmp, "this is a test"));
  43
  44        return 0;
  45}
  46DM_TEST(dm_test_mmc_blk, DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT);
  47