| // SPDX-License-Identifier: GPL-2.0 | 
 | #include <string.h> | 
 | #include <stdlib.h> | 
 | #include <stdio.h> | 
 | #include "tests.h" | 
 | #include "session.h" | 
 | #include "debug.h" | 
 | #include "demangle-java.h" | 
 |  | 
 | static int test__demangle_java(struct test_suite *test __maybe_unused, int subtest __maybe_unused) | 
 | { | 
 | 	int ret = TEST_OK; | 
 | 	char *buf = NULL; | 
 | 	size_t i; | 
 |  | 
 | 	struct { | 
 | 		const char *mangled, *demangled; | 
 | 	} test_cases[] = { | 
 | 		{ "Ljava/lang/StringLatin1;equals([B[B)Z", | 
 | 		  "boolean java.lang.StringLatin1.equals(byte[], byte[])" }, | 
 | 		{ "Ljava/util/zip/ZipUtils;CENSIZ([BI)J", | 
 | 		  "long java.util.zip.ZipUtils.CENSIZ(byte[], int)" }, | 
 | 		{ "Ljava/util/regex/Pattern$BmpCharProperty;match(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z", | 
 | 		  "boolean java.util.regex.Pattern$BmpCharProperty.match(java.util.regex.Matcher, int, java.lang.CharSequence)" }, | 
 | 		{ "Ljava/lang/AbstractStringBuilder;appendChars(Ljava/lang/String;II)V", | 
 | 		  "void java.lang.AbstractStringBuilder.appendChars(java.lang.String, int, int)" }, | 
 | 		{ "Ljava/lang/Object;<init>()V", | 
 | 		  "void java.lang.Object<init>()" }, | 
 | 	}; | 
 |  | 
 | 	for (i = 0; i < sizeof(test_cases) / sizeof(test_cases[0]); i++) { | 
 | 		buf = java_demangle_sym(test_cases[i].mangled, 0); | 
 | 		if (strcmp(buf, test_cases[i].demangled)) { | 
 | 			pr_debug("FAILED: %s: %s != %s\n", test_cases[i].mangled, | 
 | 				 buf, test_cases[i].demangled); | 
 | 			ret = TEST_FAIL; | 
 | 		} | 
 | 		free(buf); | 
 | 	} | 
 |  | 
 | 	return ret; | 
 | } | 
 |  | 
 | DEFINE_SUITE("Demangle Java", demangle_java); |