This commit is contained in:
2025-03-17 22:41:04 +01:00
parent cbcc1b7e25
commit b70317d85d
37 changed files with 698 additions and 229 deletions

83
Tests/Device.c git.filemode.normal_file
View File

@@ -0,0 +1,83 @@
#include "Common.h"
#include <unity/unity.h>
#include <Pulse.h>
void TestDeviceSetup()
{
PulseBackend backend;
SetupPulse(&backend);
PulseDevice device = PulseCreateDevice(backend, NULL, 0);
TEST_ASSERT_NOT_EQUAL_MESSAGE(device, PULSE_NULL_HANDLE, PulseVerbaliseErrorType(PulseGetLastErrorType()));
PulseDestroyDevice(device);
CleanupPulse(backend);
}
void TestForbiddenDeviceSetup()
{
PulseBackend backend;
SetupPulse(&backend);
PulseDevice device1 = PulseCreateDevice(backend, NULL, 0);
TEST_ASSERT_NOT_EQUAL_MESSAGE(device1, PULSE_NULL_HANDLE, PulseVerbaliseErrorType(PulseGetLastErrorType()));
PulseDevice device2 = PulseCreateDevice(backend, &device1, 1);
TEST_ASSERT_NOT_EQUAL(device2, device1);
PulseDestroyDevice(device2);
PulseDestroyDevice(device1);
CleanupPulse(backend);
}
void TestInvalidBackendDeviceSetup()
{
PulseDevice device= PulseCreateDevice(PULSE_NULL_HANDLE, NULL, 0);
TEST_ASSERT_EQUAL(device, PULSE_NULL_HANDLE);
PulseDestroyDevice(device);
}
void TestBackendInUse()
{
PulseBackend backend;
SetupPulse(&backend);
PulseDevice device = PulseCreateDevice(backend, NULL, 0);
TEST_ASSERT_NOT_EQUAL_MESSAGE(device, PULSE_NULL_HANDLE, PulseVerbaliseErrorType(PulseGetLastErrorType()));
#if defined(VULKAN_ENABLED)
TEST_ASSERT_EQUAL(PulseGetBackendInUseByDevice(device), PULSE_BACKEND_VULKAN);
#elif defined(WEBGPU_ENABLED)
TEST_ASSERT_EQUAL(PulseGetBackendInUseByDevice(device), PULSE_BACKEND_WEBGPU);
#endif
PulseDestroyDevice(device);
CleanupPulse(backend);
}
void TestShaderFormatSupport()
{
PulseBackend backend;
SetupPulse(&backend);
PulseDevice device = PulseCreateDevice(backend, NULL, 0);
TEST_ASSERT_NOT_EQUAL_MESSAGE(device, PULSE_NULL_HANDLE, PulseVerbaliseErrorType(PulseGetLastErrorType()));
#if defined(VULKAN_ENABLED)
TEST_ASSERT_TRUE(PulseDeviceSupportsShaderFormats(device, PULSE_SHADER_FORMAT_SPIRV_BIT));
#elif defined(WEBGPU_ENABLED)
TEST_ASSERT_TRUE(PulseDeviceSupportsShaderFormats(device, PULSE_SHADER_FORMAT_WGSL_BIT));
#endif
PulseDestroyDevice(device);
CleanupPulse(backend);
}
void TestDevice()
{
RUN_TEST(TestDeviceSetup);
RUN_TEST(TestForbiddenDeviceSetup);
RUN_TEST(TestInvalidBackendDeviceSetup);
RUN_TEST(TestBackendInUse);
RUN_TEST(TestShaderFormatSupport);
}