blob: fc008824cafff7cababe3382bc39bcd31df722bc [file] [log] [blame]
Courtney Goeltzenleuchterb7f50502014-08-12 14:09:50 -06001#ifndef TEST_COMMON_H
2#define TEST_COMMON_H
3
4#include <stdlib.h>
5#include <stdio.h>
6#include <stdbool.h>
7#include <string.h>
8#include <assert.h>
9
Courtney Goeltzenleuchterd8e229c2015-04-08 15:36:08 -060010#include <vulkan.h>
Courtney Goeltzenleuchterb7f50502014-08-12 14:09:50 -060011
12#include "gtest/gtest.h"
Courtney Goeltzenleuchter5b804932014-09-01 16:33:55 -060013#include "gtest-1.7.0/include/gtest/gtest.h"
Courtney Goeltzenleuchterd8e229c2015-04-08 15:36:08 -060014#include "vktestbinding.h"
Courtney Goeltzenleuchterb7f50502014-08-12 14:09:50 -060015
Courtney Goeltzenleuchterd8e229c2015-04-08 15:36:08 -060016#define ASSERT_VK_SUCCESS(err) ASSERT_EQ(VK_SUCCESS, err) << vk_result_string(err)
Courtney Goeltzenleuchterb7f50502014-08-12 14:09:50 -060017
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -060018static inline const char *vk_result_string(VkResult err)
Courtney Goeltzenleuchterb7f50502014-08-12 14:09:50 -060019{
20 switch (err) {
21#define STR(r) case r: return #r
Courtney Goeltzenleuchterd8e229c2015-04-08 15:36:08 -060022 STR(VK_SUCCESS);
23 STR(VK_UNSUPPORTED);
24 STR(VK_NOT_READY);
25 STR(VK_TIMEOUT);
26 STR(VK_EVENT_SET);
27 STR(VK_EVENT_RESET);
28 STR(VK_ERROR_UNKNOWN);
29 STR(VK_ERROR_UNAVAILABLE);
30 STR(VK_ERROR_INITIALIZATION_FAILED);
Tony Barbourd1c35722015-04-16 15:59:00 -060031 STR(VK_ERROR_OUT_OF_HOST_MEMORY);
32 STR(VK_ERROR_OUT_OF_DEVICE_MEMORY);
Courtney Goeltzenleuchterd8e229c2015-04-08 15:36:08 -060033 STR(VK_ERROR_DEVICE_ALREADY_CREATED);
34 STR(VK_ERROR_DEVICE_LOST);
35 STR(VK_ERROR_INVALID_POINTER);
36 STR(VK_ERROR_INVALID_VALUE);
37 STR(VK_ERROR_INVALID_HANDLE);
38 STR(VK_ERROR_INVALID_ORDINAL);
39 STR(VK_ERROR_INVALID_MEMORY_SIZE);
40 STR(VK_ERROR_INVALID_EXTENSION);
41 STR(VK_ERROR_INVALID_FLAGS);
42 STR(VK_ERROR_INVALID_ALIGNMENT);
43 STR(VK_ERROR_INVALID_FORMAT);
44 STR(VK_ERROR_INVALID_IMAGE);
45 STR(VK_ERROR_INVALID_DESCRIPTOR_SET_DATA);
46 STR(VK_ERROR_INVALID_QUEUE_TYPE);
47 STR(VK_ERROR_INVALID_OBJECT_TYPE);
48 STR(VK_ERROR_UNSUPPORTED_SHADER_IL_VERSION);
49 STR(VK_ERROR_BAD_SHADER_CODE);
50 STR(VK_ERROR_BAD_PIPELINE_DATA);
51 STR(VK_ERROR_TOO_MANY_MEMORY_REFERENCES);
52 STR(VK_ERROR_NOT_MAPPABLE);
53 STR(VK_ERROR_MEMORY_MAP_FAILED);
54 STR(VK_ERROR_MEMORY_UNMAP_FAILED);
55 STR(VK_ERROR_INCOMPATIBLE_DEVICE);
56 STR(VK_ERROR_INCOMPATIBLE_DRIVER);
57 STR(VK_ERROR_INCOMPLETE_COMMAND_BUFFER);
58 STR(VK_ERROR_BUILDING_COMMAND_BUFFER);
59 STR(VK_ERROR_MEMORY_NOT_BOUND);
60 STR(VK_ERROR_INCOMPATIBLE_QUEUE);
61 STR(VK_ERROR_NOT_SHAREABLE);
Courtney Goeltzenleuchterb7f50502014-08-12 14:09:50 -060062#undef STR
63 default: return "UNKNOWN_RESULT";
64 }
65}
66
Chia-I Wua9a506a2014-12-27 22:04:00 +080067static inline void test_error_callback(const char *expr, const char *file,
68 unsigned int line, const char *function)
69{
70 ADD_FAILURE_AT(file, line) << "Assertion: `" << expr << "'";
71}
72
Courtney Goeltzenleuchterb7f50502014-08-12 14:09:50 -060073#endif // TEST_COMMON_H