]> pd.if.org Git - liblfds/blob - liblfds/liblfds7.1.0/test_and_benchmark/libtest/src/libtest_tests/libtest_tests_queue_bounded_singleproducer_singleconsumer_enqueuing.c
Initial import (all versions, including the new 7.1.0)
[liblfds] / liblfds / liblfds7.1.0 / test_and_benchmark / libtest / src / libtest_tests / libtest_tests_queue_bounded_singleproducer_singleconsumer_enqueuing.c
1 /***** includes *****/
2 #include "libtest_tests_internal.h"
3
4
5
6
7
8 /****************************************************************************/
9 #pragma warning( disable : 4100 )
10
11 void libtest_tests_queue_bss_enqueuing( struct lfds710_list_asu_state *list_of_logical_processors, struct libshared_memory_state *ms, enum lfds710_misc_validity *dvs )
12 {
13   int
14     rv;
15
16   lfds710_pal_uint_t
17     loop;
18
19   struct lfds710_queue_bss_element
20     element_array[128];
21
22   struct lfds710_queue_bss_state
23     qs;
24
25   struct lfds710_misc_validation_info
26     vi;
27
28   LFDS710_PAL_ASSERT( list_of_logical_processors != NULL );
29   LFDS710_PAL_ASSERT( ms != NULL );
30   LFDS710_PAL_ASSERT( dvs != NULL );
31
32   /* TRD : create an empty queue
33            enqueue 128 elements
34            it's a single producer queue, so we just do this in our current thread
35            it's an API test
36   */
37
38   *dvs = LFDS710_MISC_VALIDITY_VALID;
39
40   lfds710_queue_bss_init_valid_on_current_logical_core( &qs, element_array, 128, NULL );
41
42   for( loop = 0 ; loop < 127 ; loop++ )
43     if( 1 != lfds710_queue_bss_enqueue(&qs, NULL, (void *) loop) )
44       *dvs = LFDS710_MISC_VALIDITY_INVALID_TEST_DATA;
45
46   // TRD : at this point enqueuing one more should return 0
47   rv = lfds710_queue_bss_enqueue( &qs, NULL, (void *) loop );
48
49   if( rv != 0 )
50     *dvs = LFDS710_MISC_VALIDITY_INVALID_TEST_DATA;
51
52   vi.min_elements = vi.max_elements = 127;
53
54   lfds710_queue_bss_query( &qs, LFDS710_QUEUE_BSS_QUERY_VALIDATE, &vi, dvs );
55
56   lfds710_queue_bss_cleanup( &qs, NULL );
57
58   return;
59 }
60
61 #pragma warning( default : 4100 )
62