]> pd.if.org Git - liblfds/blob - liblfds/liblfds7.0.0/test/src/test_lfds700_queue_bounded_singleconsumer_singleproducer_enqueuing.c
Initial import (all versions, including the new 7.1.0)
[liblfds] / liblfds / liblfds7.0.0 / test / src / test_lfds700_queue_bounded_singleconsumer_singleproducer_enqueuing.c
1 /***** includes *****/
2 #include "internal.h"
3
4
5
6
7
8 /****************************************************************************/
9 void test_lfds700_queue_bss_enqueuing()
10 {
11   enum lfds700_misc_validity
12     dvs = LFDS700_MISC_VALIDITY_VALID;
13
14   int
15     rv;
16
17   lfds700_pal_uint_t
18     loop;
19
20   struct lfds700_queue_bss_element
21     element_array[128];
22
23   struct lfds700_queue_bss_state
24     qs;
25
26   struct lfds700_misc_validation_info
27     vi;
28
29   /* TRD : create an empty queue
30            enqueue 128 elements
31            it's a single producer queue, so we just do this in our current thread
32            it's an API test
33   */
34
35   internal_display_test_name( "Enqueuing" );
36
37   lfds700_queue_bss_init_valid_on_current_logical_core( &qs, element_array, 128, NULL );
38
39   for( loop = 0 ; loop < 127 ; loop++ )
40     if( 1 != lfds700_queue_bss_enqueue(&qs, NULL, (void *) loop) )
41       dvs = LFDS700_MISC_VALIDITY_INVALID_TEST_DATA;
42
43   // TRD : at this point enqueuing one more should return 0
44   rv = lfds700_queue_bss_enqueue( &qs, NULL, (void *) loop );
45
46   if( rv != 0 )
47     dvs = LFDS700_MISC_VALIDITY_INVALID_TEST_DATA;
48
49   vi.min_elements = vi.max_elements = 127;
50
51   lfds700_queue_bss_query( &qs, LFDS700_QUEUE_BSS_QUERY_VALIDATE, &vi, &dvs );
52
53   lfds700_queue_bss_cleanup( &qs, NULL );
54
55   internal_display_test_result( 1, "queue_bss", dvs );
56
57   return;
58 }
59