1 #include <stdio.h>
2
3 #include "HalideBuffer.h"
4 #include "HalideRuntime.h"
5
6 #include <assert.h>
7 #include <string>
8
9 #include "cxx_mangling_define_extern.h"
10
11 using namespace Halide::Runtime;
12
main(int argc,char ** argv)13 int main(int argc, char **argv) {
14 Buffer<uint8_t> input(10);
15
16 for (int32_t i = 0; i < 10; i++) {
17 input(i) = i;
18 }
19
20 Buffer<double> result_1(10), result_2(10), result_3(10);
21
22 const void *user_context = nullptr;
23 int ptr_arg = 42;
24 int *int_ptr = &ptr_arg;
25 const int *const_int_ptr = &ptr_arg;
26 void *void_ptr = nullptr;
27 const void *const_void_ptr = nullptr;
28 std::string *string_ptr = nullptr;
29 const std::string *const_string_ptr = nullptr;
30 int r = HalideTest::cxx_mangling_define_extern(user_context, input, int_ptr, const_int_ptr,
31 void_ptr, const_void_ptr, string_ptr, const_string_ptr,
32 result_1, result_2, result_3);
33 if (r != 0) {
34 fprintf(stderr, "Failure!\n");
35 exit(1);
36 }
37
38 for (int i = 0; i < 10; ++i) {
39 if (result_1(i) != i + 12.0 || result_2(i) != i + 12.0 || result_3(i) != i + 12.0) {
40 fprintf(stderr, "Failure!\n");
41 exit(1);
42 }
43 }
44
45 printf("Success!\n");
46 return 0;
47 }
48