49 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| // SPDX-License-Identifier: GPL-2.0
 | |
| #include "tests.h"
 | |
| #include "debug.h"
 | |
| #include "util.h"
 | |
| #include "c++/clang-c.h"
 | |
| #include <linux/kernel.h>
 | |
| 
 | |
| static struct {
 | |
| 	int (*func)(void);
 | |
| 	const char *desc;
 | |
| } clang_testcase_table[] = {
 | |
| #ifdef HAVE_LIBCLANGLLVM_SUPPORT
 | |
| 	{
 | |
| 		.func = test__clang_to_IR,
 | |
| 		.desc = "builtin clang compile C source to IR",
 | |
| 	},
 | |
| 	{
 | |
| 		.func = test__clang_to_obj,
 | |
| 		.desc = "builtin clang compile C source to ELF object",
 | |
| 	},
 | |
| #endif
 | |
| };
 | |
| 
 | |
| int test__clang_subtest_get_nr(void)
 | |
| {
 | |
| 	return (int)ARRAY_SIZE(clang_testcase_table);
 | |
| }
 | |
| 
 | |
| const char *test__clang_subtest_get_desc(int i)
 | |
| {
 | |
| 	if (i < 0 || i >= (int)ARRAY_SIZE(clang_testcase_table))
 | |
| 		return NULL;
 | |
| 	return clang_testcase_table[i].desc;
 | |
| }
 | |
| 
 | |
| #ifndef HAVE_LIBCLANGLLVM_SUPPORT
 | |
| int test__clang(struct test *test __maybe_unused, int i __maybe_unused)
 | |
| {
 | |
| 	return TEST_SKIP;
 | |
| }
 | |
| #else
 | |
| int test__clang(struct test *test __maybe_unused, int i)
 | |
| {
 | |
| 	if (i < 0 || i >= (int)ARRAY_SIZE(clang_testcase_table))
 | |
| 		return TEST_FAIL;
 | |
| 	return clang_testcase_table[i].func();
 | |
| }
 | |
| #endif
 | 
