summaryrefslogtreecommitdiff
path: root/src/tests/dlt-test-queue.c
blob: 774ea8f9e833defb1cd8232eeb6fdc9c91f2f770 (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
83
84
85
86
87
88
89
90
91
92
93
94
/**
 * @licence app begin@
 * Copyright (C) 2012  BMW AG
 *
 * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps.
 *
 * Contributions are licensed to the GENIVI Alliance under one or more
 * Contribution License Agreements.
 *
 * \copyright
 * This Source Code Form is subject to the terms of the
 * Mozilla Public License, v. 2.0. If a  copy of the MPL was not distributed with
 * this file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 *
 * \author Lassi Marttala <lassi.lm.marttala@partner.bmw.de> BMW 2012
 *
 * \file dlt-test-queue.h
 * For further information see http://www.genivi.org/.
 * @licence end@
 */


/*******************************************************************************
**                                                                            **
**  SRC-MODULE: dlt_queue.h                                                   **
**                                                                            **
**  TARGET    : linux                                                         **
**                                                                            **
**  PROJECT   : DLT                                                           **
**                                                                            **
**  AUTHOR    : Lassi Marttala <lassi.lm.marttala@partner.bmw.de>             **
**                                                                            **
**  PURPOSE   : Test for queue implementation                                 **
**                                                                            **
**  REMARKS   :                                                               **
**                                                                            **
**  PLATFORM DEPENDANT [yes/no]: no                                           **
**                                                                            **
**  TO BE CHANGED BY USER [yes/no]: no                                        **
**                                                                            **
*******************************************************************************/

/*******************************************************************************
**                      Author Identity                                       **
********************************************************************************
**                                                                            **
** Initials     Name                       Company                            **
** --------     -------------------------  ---------------------------------- **
**  lm          Lassi Marttala             Eureka GmbH                        **
*******************************************************************************/

#include "dlt_queue.h"
#include <stdio.h>
#include <string.h>

int main(void)
{
	char *item_content = "item_content\n";
	int item_len = strlen(item_content) + 1;
	dlt_queue *queue = dlt_queue_create();
	printf("#1\tdlt_queue_is_empty returns\t%d\n", dlt_queue_is_empty(queue));

	dlt_queue_item *first = dlt_queue_create_item();
	first->item = item_content;
	first->item_size = item_len;
	dlt_queue_push(first, queue);

	printf("#2\tdlt_queue_is_empty returns\t%d\n", dlt_queue_is_empty(queue));
	printf("#3\tdlt_queue_item_count returns\t%d\n", dlt_queue_item_count(queue));

	dlt_queue_item *tret = dlt_queue_pop(queue);
	printf("#4\tItem content after pop:\t%d:%s", tret->item_size, (char *)tret->item);
	dlt_queue_free_item(tret);

	int i=0;
	for(i=0;i<5;i++)
	{
		dlt_queue_item *newitem = dlt_queue_create_item();
		newitem->item = item_content;
		newitem->item_size = i;
		dlt_queue_push(newitem, queue);
	}
	printf("#5\tdlt_queue_item_count returns\t%d\n", dlt_queue_item_count(queue));
	while(!dlt_queue_is_empty(queue))
	{
		dlt_queue_item *olditem = dlt_queue_pop(queue);
		printf("#6\tItem size (item number):%d\n", olditem->item_size);
		dlt_queue_free_item(olditem);
	}
	printf("#7\tdlt_queue_is_empty returns\t%d\n", dlt_queue_is_empty(queue));
	printf("#8\tdlt_queue_item_count returns\t%d\n", dlt_queue_item_count(queue));
	return 0;
}