1*6467f958SSadaf Ebrahimi //
2*6467f958SSadaf Ebrahimi // Copyright (c) 2017 The Khronos Group Inc.
3*6467f958SSadaf Ebrahimi //
4*6467f958SSadaf Ebrahimi // Licensed under the Apache License, Version 2.0 (the "License");
5*6467f958SSadaf Ebrahimi // you may not use this file except in compliance with the License.
6*6467f958SSadaf Ebrahimi // You may obtain a copy of the License at
7*6467f958SSadaf Ebrahimi //
8*6467f958SSadaf Ebrahimi // http://www.apache.org/licenses/LICENSE-2.0
9*6467f958SSadaf Ebrahimi //
10*6467f958SSadaf Ebrahimi // Unless required by applicable law or agreed to in writing, software
11*6467f958SSadaf Ebrahimi // distributed under the License is distributed on an "AS IS" BASIS,
12*6467f958SSadaf Ebrahimi // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*6467f958SSadaf Ebrahimi // See the License for the specific language governing permissions and
14*6467f958SSadaf Ebrahimi // limitations under the License.
15*6467f958SSadaf Ebrahimi //
16*6467f958SSadaf Ebrahimi #include "harness/compat.h"
17*6467f958SSadaf Ebrahimi #include <stdio.h>
18*6467f958SSadaf Ebrahimi #include <stdlib.h>
19*6467f958SSadaf Ebrahimi
20*6467f958SSadaf Ebrahimi #include <string.h>
21*6467f958SSadaf Ebrahimi #include "procs.h"
22*6467f958SSadaf Ebrahimi #include "harness/testHarness.h"
23*6467f958SSadaf Ebrahimi
24*6467f958SSadaf Ebrahimi #if !defined(_WIN32)
25*6467f958SSadaf Ebrahimi #include <unistd.h>
26*6467f958SSadaf Ebrahimi #endif
27*6467f958SSadaf Ebrahimi
28*6467f958SSadaf Ebrahimi // FIXME: To use certain functions in harness/imageHelpers.h
29*6467f958SSadaf Ebrahimi // (for example, generate_random_image_data()), the tests are required to
30*6467f958SSadaf Ebrahimi // declare the following variables (<rdar://problem/11111245>):
31*6467f958SSadaf Ebrahimi
32*6467f958SSadaf Ebrahimi test_definition test_list[] = {
33*6467f958SSadaf Ebrahimi ADD_TEST(get_platform_info),
34*6467f958SSadaf Ebrahimi ADD_TEST_VERSION(get_sampler_info, Version(2, 0)),
35*6467f958SSadaf Ebrahimi ADD_TEST(get_sampler_info_compatibility),
36*6467f958SSadaf Ebrahimi ADD_TEST_VERSION(get_command_queue_info, Version(2, 0)),
37*6467f958SSadaf Ebrahimi ADD_TEST(get_command_queue_info_compatibility),
38*6467f958SSadaf Ebrahimi ADD_TEST(get_context_info),
39*6467f958SSadaf Ebrahimi ADD_TEST(get_device_info),
40*6467f958SSadaf Ebrahimi ADD_TEST(enqueue_task),
41*6467f958SSadaf Ebrahimi ADD_TEST(binary_get),
42*6467f958SSadaf Ebrahimi ADD_TEST(binary_create),
43*6467f958SSadaf Ebrahimi ADD_TEST(kernel_required_group_size),
44*6467f958SSadaf Ebrahimi
45*6467f958SSadaf Ebrahimi ADD_TEST(release_kernel_order),
46*6467f958SSadaf Ebrahimi ADD_TEST(release_during_execute),
47*6467f958SSadaf Ebrahimi
48*6467f958SSadaf Ebrahimi ADD_TEST(load_single_kernel),
49*6467f958SSadaf Ebrahimi ADD_TEST(load_two_kernels),
50*6467f958SSadaf Ebrahimi ADD_TEST(load_two_kernels_in_one),
51*6467f958SSadaf Ebrahimi ADD_TEST(load_two_kernels_manually),
52*6467f958SSadaf Ebrahimi ADD_TEST(get_program_info_kernel_names),
53*6467f958SSadaf Ebrahimi ADD_TEST(get_kernel_arg_info),
54*6467f958SSadaf Ebrahimi ADD_TEST(create_kernels_in_program),
55*6467f958SSadaf Ebrahimi ADD_TEST(get_kernel_info),
56*6467f958SSadaf Ebrahimi ADD_TEST(kernel_private_memory_size),
57*6467f958SSadaf Ebrahimi ADD_TEST(execute_kernel_local_sizes),
58*6467f958SSadaf Ebrahimi ADD_TEST(set_kernel_arg_by_index),
59*6467f958SSadaf Ebrahimi ADD_TEST(set_kernel_arg_constant),
60*6467f958SSadaf Ebrahimi ADD_TEST(set_kernel_arg_struct_array),
61*6467f958SSadaf Ebrahimi ADD_TEST(kernel_global_constant),
62*6467f958SSadaf Ebrahimi ADD_TEST(kernel_attributes),
63*6467f958SSadaf Ebrahimi
64*6467f958SSadaf Ebrahimi ADD_TEST(min_max_thread_dimensions),
65*6467f958SSadaf Ebrahimi ADD_TEST(min_max_work_items_sizes),
66*6467f958SSadaf Ebrahimi ADD_TEST(min_max_work_group_size),
67*6467f958SSadaf Ebrahimi ADD_TEST(min_max_read_image_args),
68*6467f958SSadaf Ebrahimi ADD_TEST(min_max_write_image_args),
69*6467f958SSadaf Ebrahimi ADD_TEST(min_max_mem_alloc_size),
70*6467f958SSadaf Ebrahimi ADD_TEST(min_max_image_2d_width),
71*6467f958SSadaf Ebrahimi ADD_TEST(min_max_image_2d_height),
72*6467f958SSadaf Ebrahimi ADD_TEST(min_max_image_3d_width),
73*6467f958SSadaf Ebrahimi ADD_TEST(min_max_image_3d_height),
74*6467f958SSadaf Ebrahimi ADD_TEST(min_max_image_3d_depth),
75*6467f958SSadaf Ebrahimi ADD_TEST(min_max_image_array_size),
76*6467f958SSadaf Ebrahimi ADD_TEST(min_max_image_buffer_size),
77*6467f958SSadaf Ebrahimi ADD_TEST(min_max_parameter_size),
78*6467f958SSadaf Ebrahimi ADD_TEST(min_max_samplers),
79*6467f958SSadaf Ebrahimi ADD_TEST(min_max_constant_buffer_size),
80*6467f958SSadaf Ebrahimi ADD_TEST(min_max_constant_args),
81*6467f958SSadaf Ebrahimi ADD_TEST(min_max_compute_units),
82*6467f958SSadaf Ebrahimi ADD_TEST(min_max_address_bits),
83*6467f958SSadaf Ebrahimi ADD_TEST(min_max_single_fp_config),
84*6467f958SSadaf Ebrahimi ADD_TEST(min_max_double_fp_config),
85*6467f958SSadaf Ebrahimi ADD_TEST(min_max_local_mem_size),
86*6467f958SSadaf Ebrahimi ADD_TEST(min_max_kernel_preferred_work_group_size_multiple),
87*6467f958SSadaf Ebrahimi ADD_TEST(min_max_execution_capabilities),
88*6467f958SSadaf Ebrahimi ADD_TEST(min_max_queue_properties),
89*6467f958SSadaf Ebrahimi ADD_TEST(min_max_device_version),
90*6467f958SSadaf Ebrahimi ADD_TEST(min_max_language_version),
91*6467f958SSadaf Ebrahimi
92*6467f958SSadaf Ebrahimi ADD_TEST(kernel_arg_changes),
93*6467f958SSadaf Ebrahimi ADD_TEST(kernel_arg_multi_setup_random),
94*6467f958SSadaf Ebrahimi
95*6467f958SSadaf Ebrahimi ADD_TEST(native_kernel),
96*6467f958SSadaf Ebrahimi
97*6467f958SSadaf Ebrahimi ADD_TEST(create_context_from_type),
98*6467f958SSadaf Ebrahimi
99*6467f958SSadaf Ebrahimi ADD_TEST(platform_extensions),
100*6467f958SSadaf Ebrahimi ADD_TEST(get_platform_ids),
101*6467f958SSadaf Ebrahimi ADD_TEST(bool_type),
102*6467f958SSadaf Ebrahimi
103*6467f958SSadaf Ebrahimi ADD_TEST(repeated_setup_cleanup),
104*6467f958SSadaf Ebrahimi
105*6467f958SSadaf Ebrahimi ADD_TEST(retain_queue_single),
106*6467f958SSadaf Ebrahimi ADD_TEST(retain_queue_multiple),
107*6467f958SSadaf Ebrahimi ADD_TEST(retain_mem_object_single),
108*6467f958SSadaf Ebrahimi ADD_TEST(retain_mem_object_multiple),
109*6467f958SSadaf Ebrahimi ADD_TEST(retain_mem_object_set_kernel_arg),
110*6467f958SSadaf Ebrahimi ADD_TEST(min_data_type_align_size_alignment),
111*6467f958SSadaf Ebrahimi
112*6467f958SSadaf Ebrahimi ADD_TEST_VERSION(context_destructor_callback, Version(3, 0)),
113*6467f958SSadaf Ebrahimi ADD_TEST(mem_object_destructor_callback),
114*6467f958SSadaf Ebrahimi ADD_TEST(null_buffer_arg),
115*6467f958SSadaf Ebrahimi ADD_TEST(get_buffer_info),
116*6467f958SSadaf Ebrahimi ADD_TEST(get_image2d_info),
117*6467f958SSadaf Ebrahimi ADD_TEST(get_image3d_info),
118*6467f958SSadaf Ebrahimi ADD_TEST(get_image1d_info),
119*6467f958SSadaf Ebrahimi ADD_TEST(get_image1d_array_info),
120*6467f958SSadaf Ebrahimi ADD_TEST(get_image2d_array_info),
121*6467f958SSadaf Ebrahimi ADD_TEST(queue_flush_on_release),
122*6467f958SSadaf Ebrahimi ADD_TEST(queue_hint),
123*6467f958SSadaf Ebrahimi ADD_TEST(queue_properties),
124*6467f958SSadaf Ebrahimi ADD_TEST_VERSION(sub_group_dispatch, Version(2, 1)),
125*6467f958SSadaf Ebrahimi ADD_TEST_VERSION(clone_kernel, Version(2, 1)),
126*6467f958SSadaf Ebrahimi ADD_TEST_VERSION(zero_sized_enqueue, Version(2, 1)),
127*6467f958SSadaf Ebrahimi
128*6467f958SSadaf Ebrahimi ADD_TEST_VERSION(buffer_properties_queries, Version(3, 0)),
129*6467f958SSadaf Ebrahimi ADD_TEST_VERSION(image_properties_queries, Version(3, 0)),
130*6467f958SSadaf Ebrahimi ADD_TEST_VERSION(queue_properties_queries, Version(3, 0)),
131*6467f958SSadaf Ebrahimi ADD_TEST_VERSION(pipe_properties_queries, Version(3, 0)),
132*6467f958SSadaf Ebrahimi
133*6467f958SSadaf Ebrahimi ADD_TEST_VERSION(consistency_svm, Version(3, 0)),
134*6467f958SSadaf Ebrahimi ADD_TEST_VERSION(consistency_memory_model, Version(3, 0)),
135*6467f958SSadaf Ebrahimi ADD_TEST_VERSION(consistency_device_enqueue, Version(3, 0)),
136*6467f958SSadaf Ebrahimi ADD_TEST_VERSION(consistency_pipes, Version(3, 0)),
137*6467f958SSadaf Ebrahimi ADD_TEST_VERSION(consistency_progvar, Version(3, 0)),
138*6467f958SSadaf Ebrahimi ADD_TEST_VERSION(consistency_non_uniform_work_group, Version(3, 0)),
139*6467f958SSadaf Ebrahimi ADD_TEST_VERSION(consistency_read_write_images, Version(3, 0)),
140*6467f958SSadaf Ebrahimi ADD_TEST_VERSION(consistency_2d_image_from_buffer, Version(3, 0)),
141*6467f958SSadaf Ebrahimi ADD_TEST_VERSION(consistency_depth_images, Version(3, 0)),
142*6467f958SSadaf Ebrahimi ADD_TEST_VERSION(consistency_device_and_host_timer, Version(3, 0)),
143*6467f958SSadaf Ebrahimi ADD_TEST_VERSION(consistency_il_programs, Version(3, 0)),
144*6467f958SSadaf Ebrahimi ADD_TEST_VERSION(consistency_subgroups, Version(3, 0)),
145*6467f958SSadaf Ebrahimi ADD_TEST_VERSION(consistency_prog_ctor_dtor, Version(3, 0)),
146*6467f958SSadaf Ebrahimi ADD_TEST_VERSION(consistency_3d_image_writes, Version(3, 0)),
147*6467f958SSadaf Ebrahimi
148*6467f958SSadaf Ebrahimi ADD_TEST(min_image_formats),
149*6467f958SSadaf Ebrahimi ADD_TEST(negative_get_platform_info),
150*6467f958SSadaf Ebrahimi ADD_TEST(negative_get_platform_ids),
151*6467f958SSadaf Ebrahimi };
152*6467f958SSadaf Ebrahimi
153*6467f958SSadaf Ebrahimi const int test_num = ARRAY_SIZE(test_list);
154*6467f958SSadaf Ebrahimi
main(int argc,const char * argv[])155*6467f958SSadaf Ebrahimi int main(int argc, const char *argv[])
156*6467f958SSadaf Ebrahimi {
157*6467f958SSadaf Ebrahimi return runTestHarness(argc, argv, test_num, test_list, false, 0);
158*6467f958SSadaf Ebrahimi }
159