TestLookup.cpp 957 B

1234567891011121314151617181920212223242526272829
  1. /*
  2. * Copyright (c) 2024, Leon Albrecht <leon.a@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #include <LibTest/TestCase.h>
  7. #include <LibCore/File.h>
  8. #include <LibCore/System.h>
  9. #include <LibDeviceTree/DeviceTree.h>
  10. #include <LibDeviceTree/FlattenedDeviceTree.h>
  11. TEST_CASE(basic_functionality)
  12. {
  13. auto fdt_file = TRY_OR_FAIL(Core::File::open("/usr/Tests/LibDeviceTree/dtb.dtb"sv, Core::File::OpenMode::Read));
  14. auto fdt = TRY_OR_FAIL(fdt_file->read_until_eof());
  15. auto device_tree = TRY_OR_FAIL(DeviceTree::DeviceTree::parse(fdt));
  16. auto boot_args = device_tree->resolve_property("/chosen/bootargs"sv);
  17. EXPECT(boot_args.has_value());
  18. EXPECT_EQ(boot_args->as_string(), "hello root=nvme0:1:0 serial_debug"sv);
  19. EXPECT(device_tree->phandle(1));
  20. auto device_type = device_tree->phandle(1)->get_property("device_type"sv);
  21. EXPECT(device_type.has_value());
  22. EXPECT_EQ(device_type->as_string(), "cpu"sv);
  23. }