// SPDX-License-Identifier: GPL-2.0-only
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <linux/compiler.h>

#include "debug.h"
#include "tests.h"

#ifdef HAVE_JITDUMP
#include <libelf.h>
#include "../util/genelf.h"
#endif

#define TEMPL "/tmp/perf-test-XXXXXX"

int test__jit_write_elf(struct test *test __maybe_unused,
			int subtest __maybe_unused)
{
#ifdef HAVE_JITDUMP
	static unsigned char x86_code[] = {
		0xBB, 0x2A, 0x00, 0x00, 0x00, /* movl $42, %ebx */
		0xB8, 0x01, 0x00, 0x00, 0x00, /* movl $1, %eax */
		0xCD, 0x80            /* int $0x80 */
	};
	char path[PATH_MAX];
	int fd, ret;

	strcpy(path, TEMPL);

	fd = mkstemp(path);
	if (fd < 0) {
		perror("mkstemp failed");
		return TEST_FAIL;
	}

	pr_info("Writing jit code to: %s\n", path);

	ret = jit_write_elf(fd, 0, "main", x86_code, sizeof(x86_code),
			NULL, 0, NULL, 0, 0);
	close(fd);

	unlink(path);

	return ret ? TEST_FAIL : 0;
#else
	return TEST_SKIP;
#endif
}
