brintos

brintos / linux-shallow public Read only

0
0
Text · 1.2 KiB · 90a4285 Raw
46 lines · c
1// SPDX-License-Identifier: GPL-2.02#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-ocaml.h"9 10static int test__demangle_ocaml(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		{ "main",20		  NULL },21		{ "camlStdlib__array__map_154",22		  "Stdlib.array.map_154" },23		{ "camlStdlib__anon_fn$5bstdlib$2eml$3a334$2c0$2d$2d54$5d_1453",24		  "Stdlib.anon_fn[stdlib.ml:334,0--54]_1453" },25		{ "camlStdlib__bytes__$2b$2b_2205",26		  "Stdlib.bytes.++_2205" },27	};28 29	for (i = 0; i < ARRAY_SIZE(test_cases); i++) {30		buf = ocaml_demangle_sym(test_cases[i].mangled);31		if ((buf == NULL && test_cases[i].demangled != NULL)32				|| (buf != NULL && test_cases[i].demangled == NULL)33				|| (buf != NULL && strcmp(buf, test_cases[i].demangled))) {34			pr_debug("FAILED: %s: %s != %s\n", test_cases[i].mangled,35				 buf == NULL ? "(null)" : buf,36				 test_cases[i].demangled == NULL ? "(null)" : test_cases[i].demangled);37			ret = TEST_FAIL;38		}39		free(buf);40	}41 42	return ret;43}44 45DEFINE_SUITE("Demangle OCaml", demangle_ocaml);46