cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

demangle-java-test.c (1439B)


      1// SPDX-License-Identifier: GPL-2.0
      2#include <string.h>
      3#include <stdlib.h>
      4#include <stdio.h>
      5#include "tests.h"
      6#include "session.h"
      7#include "debug.h"
      8#include "demangle-java.h"
      9
     10static int test__demangle_java(struct test_suite *test __maybe_unused, int subtest __maybe_unused)
     11{
     12	int ret = TEST_OK;
     13	char *buf = NULL;
     14	size_t i;
     15
     16	struct {
     17		const char *mangled, *demangled;
     18	} test_cases[] = {
     19		{ "Ljava/lang/StringLatin1;equals([B[B)Z",
     20		  "boolean java.lang.StringLatin1.equals(byte[], byte[])" },
     21		{ "Ljava/util/zip/ZipUtils;CENSIZ([BI)J",
     22		  "long java.util.zip.ZipUtils.CENSIZ(byte[], int)" },
     23		{ "Ljava/util/regex/Pattern$BmpCharProperty;match(Ljava/util/regex/Matcher;ILjava/lang/CharSequence;)Z",
     24		  "boolean java.util.regex.Pattern$BmpCharProperty.match(java.util.regex.Matcher, int, java.lang.CharSequence)" },
     25		{ "Ljava/lang/AbstractStringBuilder;appendChars(Ljava/lang/String;II)V",
     26		  "void java.lang.AbstractStringBuilder.appendChars(java.lang.String, int, int)" },
     27		{ "Ljava/lang/Object;<init>()V",
     28		  "void java.lang.Object<init>()" },
     29	};
     30
     31	for (i = 0; i < sizeof(test_cases) / sizeof(test_cases[0]); i++) {
     32		buf = java_demangle_sym(test_cases[i].mangled, 0);
     33		if (strcmp(buf, test_cases[i].demangled)) {
     34			pr_debug("FAILED: %s: %s != %s\n", test_cases[i].mangled,
     35				 buf, test_cases[i].demangled);
     36			ret = TEST_FAIL;
     37		}
     38		free(buf);
     39	}
     40
     41	return ret;
     42}
     43
     44DEFINE_SUITE("Demangle Java", demangle_java);