| // Copyright 2019 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "guest_test.h" |
| |
| using VirtioMagmaGuestTest = GuestTest<TerminaEnclosedGuest>; |
| |
| static constexpr const char* kDevicePath = "/dev/magma0"; |
| static const std::unordered_map<std::string, std::string> kMagmaEnv = { |
| {"VK_ICD_FILENAMES", "/tmp/extras/magma.json"}, |
| }; |
| |
| TEST_F(VirtioMagmaGuestTest, DeviceProperties) { |
| int32_t return_code = 0; |
| ASSERT_EQ(this->Execute({"test", "-e", kDevicePath}, nullptr, &return_code), ZX_OK); |
| ASSERT_EQ(return_code, 0) << kDevicePath << " does not exist"; |
| ASSERT_EQ(this->Execute({"test", "-c", kDevicePath}, nullptr, &return_code), ZX_OK); |
| ASSERT_EQ(return_code, 0) << kDevicePath << " is not a character device"; |
| } |
| |
| TEST_F(VirtioMagmaGuestTest, MagmaConformance) { |
| std::string text; |
| int32_t return_code = 0; |
| ASSERT_EQ(this->Execute({"/tmp/extras/magma_abi_conformance_tests"}, kMagmaEnv, &text, &return_code), ZX_OK); |
| ASSERT_EQ(return_code, 0) << "[BEGIN GUEST TEXT]" << text << "[END GUEST TEXT]"; |
| } |
| |
| TEST_F(VirtioMagmaGuestTest, MagmaUnit) { |
| std::string text; |
| int32_t return_code = 0; |
| ASSERT_EQ(this->Execute({"/tmp/extras/virtmagma_unit_tests_linux"}, kMagmaEnv, &text, &return_code), ZX_OK); |
| ASSERT_EQ(return_code, 0) << "[BEGIN GUEST TEXT]" << text << "[END GUEST TEXT]"; |
| } |
| |
| TEST_F(VirtioMagmaGuestTest, VulkanUnit) { |
| std::string text; |
| int32_t return_code = 0; |
| ASSERT_EQ(this->Execute({"/tmp/extras/virtmagma_vulkan_unit_tests"}, kMagmaEnv, &text, &return_code), ZX_OK); |
| ASSERT_EQ(return_code, 0) << "[BEGIN GUEST TEXT]" << text << "[END GUEST TEXT]"; |
| } |