font.c 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. // SPDX-License-Identifier: GPL-2.0+
  2. /*
  3. * Tests for font command
  4. *
  5. * Copyright 2022 Google LLC
  6. */
  7. #include <common.h>
  8. #include <console.h>
  9. #include <dm.h>
  10. #include <video_console.h>
  11. #include <test/suites.h>
  12. #include <test/ut.h>
  13. /* Declare a new fdt test */
  14. #define FONT_TEST(_name, _flags) UNIT_TEST(_name, _flags, font_test)
  15. /* Test 'fdt addr' resizing an fdt */
  16. static int font_test_base(struct unit_test_state *uts)
  17. {
  18. struct udevice *dev;
  19. const char *name;
  20. int max_metrics;
  21. uint size;
  22. int ret;
  23. ut_assertok(uclass_first_device_err(UCLASS_VIDEO, &dev));
  24. ut_assertok(uclass_first_device_err(UCLASS_VIDEO_CONSOLE, &dev));
  25. ut_assertok(console_record_reset_enable());
  26. ut_assertok(run_command("font list", 0));
  27. ut_assert_nextline("nimbus_sans_l_regular");
  28. ut_assert_nextline("cantoraone_regular");
  29. ut_assertok(ut_check_console_end(uts));
  30. ut_assertok(vidconsole_get_font_size(dev, &name, &size));
  31. ut_asserteq_str("nimbus_sans_l_regular", name);
  32. ut_asserteq(18, size);
  33. max_metrics = 1;
  34. if (IS_ENABLED(CONFIG_CONSOLE_TRUETYPE))
  35. max_metrics = IF_ENABLED_INT(CONFIG_CONSOLE_TRUETYPE,
  36. CONFIG_CONSOLE_TRUETYPE_MAX_METRICS);
  37. ret = run_command("font select cantoraone_regular 40", 0);
  38. if (max_metrics < 2) {
  39. ut_asserteq(1, ret);
  40. ut_assert_nextline("Failed (error -7)");
  41. ut_assertok(ut_check_console_end(uts));
  42. return 0;
  43. }
  44. ut_assertok(ret);
  45. ut_assertok(ut_check_console_end(uts));
  46. ut_assertok(vidconsole_get_font_size(dev, &name, &size));
  47. ut_asserteq_str("cantoraone_regular", name);
  48. ut_asserteq(40, size);
  49. ut_assertok(run_command("font size 30", 0));
  50. ut_assertok(ut_check_console_end(uts));
  51. ut_assertok(vidconsole_get_font_size(dev, &name, &size));
  52. ut_asserteq_str("cantoraone_regular", name);
  53. ut_asserteq(30, size);
  54. return 0;
  55. }
  56. FONT_TEST(font_test_base, UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT |
  57. UT_TESTF_CONSOLE_REC | UT_TESTF_DM);
  58. int do_ut_font(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
  59. {
  60. struct unit_test *tests = UNIT_TEST_SUITE_START(font_Test);
  61. const int n_ents = UNIT_TEST_SUITE_COUNT(font_test);
  62. return cmd_ut_category("font", "font_test_", tests, n_ents, argc, argv);
  63. }