summaryrefslogtreecommitdiff
path: root/test/regression/ux_test_utility_sim.h
blob: 3df5dcd6832a9d5a76e760f6a24c30f61acb0d34 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
/***************************************************************************/
/* Copyright (c) 2024 Microsoft Corporation                                */
/* Copyright (c) 2026 Eclipse ThreadX contributors                         */
/*                                                                         */
/* This program and the accompanying materials are made available under    */
/* the terms of the MIT License which is available at                      */
/* https://opensource.org/licenses/MIT.                                    */
/*                                                                         */
/* SPDX-License-Identifier: MIT                                            */
/***************************************************************************/

/* This test simulator is designed to simulate ux_utility_ APIs for test.  */

#ifndef _UX_TEST_UTILITY_SIM_H
#define _UX_TEST_UTILITY_SIM_H

VOID  ux_test_sim_inp_sequence_set(ULONG* seq, ULONG size);
VOID  ux_test_sim_outp_logbuf_set(ULONG* buf, ULONG size);
ULONG ux_test_sim_outp_log_get(ULONG seq, ULONG *addr, ULONG *value);
ULONG ux_test_sim_outp_log_count(VOID);
VOID  ux_test_sim_outp_log_reset(VOID);

VOID  ux_test_utility_sim_sem_create_count_reset    (VOID);
ULONG ux_test_utility_sim_sem_create_count          (VOID);

VOID  ux_test_utility_sim_sem_error_generation_start(ULONG fail_after);
VOID  ux_test_utility_sim_sem_error_generation_stop (VOID);

VOID  ux_test_utility_sim_sem_get_count_reset    (VOID);
ULONG ux_test_utility_sim_sem_get_count          (VOID);

VOID  ux_test_utility_sim_sem_get_error_exception_reset(VOID);
VOID  ux_test_utility_sim_sem_get_error_exception_add(TX_SEMAPHORE *semaphore, ULONG semaphore_signal);
VOID  ux_test_utility_sim_sem_get_error_generation_start(ULONG fail_after);
VOID  ux_test_utility_sim_sem_get_error_generation_stop (VOID);

VOID  ux_test_utility_sim_mutex_create_count_reset    (VOID);
ULONG ux_test_utility_sim_mutex_create_count          (VOID);

VOID  ux_test_utility_sim_mutex_error_generation_start(ULONG fail_after);
VOID  ux_test_utility_sim_mutex_error_generation_stop (VOID);

#if 0 /* Current Mutex ON/OFF has no return code. */
VOID  ux_test_utility_sim_mutex_on_count_reset    (VOID);
ULONG ux_test_utility_sim_mutex_on_count          (VOID);
VOID  ux_test_utility_sim_mutex_on_error_generation_start(ULONG fail_after);
VOID  ux_test_utility_sim_mutex_on_error_generation_stop (VOID);
#endif

VOID  ux_test_utility_sim_event_create_count_reset    (VOID);
ULONG ux_test_utility_sim_event_create_count          (VOID);
VOID  ux_test_utility_sim_event_error_generation_start(ULONG fail_after);
VOID  ux_test_utility_sim_event_error_generation_stop (VOID);

VOID  ux_test_utility_sim_thread_create_count_reset    (VOID);
ULONG ux_test_utility_sim_thread_create_count          (VOID);
VOID  ux_test_utility_sim_thread_error_generation_start(ULONG fail_after);
VOID  ux_test_utility_sim_thread_error_generation_stop (VOID);

VOID ux_test_utility_sim_mem_allocate_until_align_flagged(ULONG target_fail_level, ULONG memory_alignment, ULONG memory_cache_flag);

#define ux_test_utility_sim_mem_allocate_until_flagged(fail_level, cache_flag) ux_test_utility_sim_mem_allocate_until_align_flagged(fail_level, UX_NO_ALIGN, cache_flag)

VOID ux_test_utility_sim_mem_free_all_flagged      (ULONG memory_cache_flag);

#define ux_test_utility_sim_mem_allocate_until(l) ux_test_utility_sim_mem_allocate_until_flagged((l), UX_REGULAR_MEMORY)
#define ux_test_utility_sim_mem_free_all()        ux_test_utility_sim_mem_free_all_flagged(UX_REGULAR_MEMORY)

VOID  ux_test_utility_sim_mem_alloc_log_enable(UCHAR enable_disable);
VOID  ux_test_utility_sim_mem_alloc_log_lock(VOID);
ULONG ux_test_utility_sim_mem_alloc_count(VOID);
VOID  ux_test_utility_sim_mem_alloc_count_reset(VOID);
VOID  ux_test_utility_sim_mem_alloc_error_generation_start(ULONG fail_after);
VOID  ux_test_utility_sim_mem_alloc_error_generation_stop(VOID);
UINT  ux_test_utility_sim_mem_alloc_error_generation_active(VOID);

VOID ux_test_utility_sim_mem_alloc_fail_all_start(VOID);
VOID ux_test_utility_sim_mem_alloc_fail_all_stop(VOID);

VOID ux_test_utility_sim_cleanup(VOID);

#endif /* _UX_TEST_UTILITY_SIM_H */