Linux Audio

Check our new training course

Embedded Linux Audio

Check our new training course
with Creative Commons CC-BY-SA
lecture materials

Bootlin logo

Elixir Cross Referencer

Loading...
/*
 * Copyright (c) 2016 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */


#include <zephyr/ztest.h>
#include <zephyr/kernel_version.h>
#include <zephyr/sys/speculation.h>
#include "version.h"

/**
 * @defgroup kernel_common_tests Common Tests
 * @ingroup all_tests
 * @{
 * @}
 *
 */

#ifdef CONFIG_ARM
ZTEST(bitfield, test_bitfield)
{
	ztest_test_skip();
}
#endif

#ifndef CONFIG_PRINTK
ZTEST(printk, test_printk)
{
	ztest_test_skip();
}
#endif

/**
 * @brief Test sys_kernel_version_get() functionality
 *
 * @ingroup kernel_common_tests
 *
 * @see sys_kernel_version_get()
 */
ZTEST(common, test_version)
{
	uint32_t version = sys_kernel_version_get();

	zassert_true(SYS_KERNEL_VER_MAJOR(version) == KERNEL_VERSION_MAJOR,
		     "major version mismatch");
	zassert_true(SYS_KERNEL_VER_MINOR(version) == KERNEL_VERSION_MINOR,
		     "minor version mismatch");
	zassert_true(SYS_KERNEL_VER_PATCHLEVEL(version) == KERNEL_PATCHLEVEL,
		     "patchlevel version match");

}

ZTEST(common, test_bounds_check_mitigation)
{
	/* Very hard to test against speculation attacks, but we can
	 * at least assert that logically this function does
	 * what it says it does.
	 */

	int index = 17;

	index = k_array_index_sanitize(index, 24);
	zassert_equal(index, 17, "bad index");

#ifdef CONFIG_USERSPACE
	index = k_array_index_sanitize(index, 5);
	zassert_equal(index, 0, "bad index");
#endif
}

extern struct k_stack eno_stack;
extern struct k_thread eno_thread;

static void *common_setup(void)
{
#if CONFIG_USERSPACE
	k_thread_access_grant(k_current_get(), &eno_thread, &eno_stack);
#endif

	return NULL;
}

ZTEST_SUITE(common, NULL, common_setup, NULL, NULL, NULL);

ZTEST_SUITE(atomic, NULL, common_setup, NULL, NULL, NULL);

ZTEST_SUITE(bitarray, NULL, common_setup, NULL, NULL, NULL);

ZTEST_SUITE(bitfield, NULL, common_setup, NULL, NULL, NULL);

ZTEST_SUITE(boot_delay, NULL, common_setup, NULL, NULL, NULL);

ZTEST_SUITE(byteorder, NULL, common_setup, NULL, NULL, NULL);

ZTEST_SUITE(clock, NULL, common_setup, NULL, NULL, NULL);

ZTEST_SUITE(common_errno, NULL, common_setup, NULL, NULL, NULL);

ZTEST_SUITE(irq_offload, NULL, common_setup, NULL, NULL, NULL);

ZTEST_SUITE(multilib, NULL, common_setup, NULL, NULL, NULL);

ZTEST_SUITE(pow2, NULL, common_setup, NULL, NULL, NULL);

ZTEST_SUITE(printk, NULL, common_setup, NULL, NULL, NULL);

ZTEST_SUITE(common_1cpu, NULL, common_setup,
		ztest_simple_1cpu_before, ztest_simple_1cpu_after, NULL);