File: TR_list_compat.sh

package info (click to toggle)
cctools 9.9-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 44,624 kB
  • sloc: ansic: 192,539; python: 20,827; cpp: 20,199; sh: 11,719; perl: 4,106; xml: 3,688; makefile: 1,224
file content (77 lines) | stat: -rwxr-xr-x 1,638 bytes parent folder | download | duplicates (4)
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
#!/bin/sh

. ../../dttools/test/test_runner_common.sh

exe="list_compat.test"

prepare()
{
	${CC} -I../src/ -g $CCTOOLS_TEST_CCFLAGS -o "$exe" -x c - -x none ../src/libdttools.a -lm <<EOF
#include <assert.h>
#include <stdbool.h>
#include <stdint.h>

#include "list.h"

int main (int argc, char *argv[])
{
	struct list *list = list_create();
	assert(list_size(list) == 0);

	list_push_head(list, (void *) 1);
	assert(list_size(list) == 1);
	assert(list_peek_head(list) == (void *) 1);
	assert(list_peek_tail(list) == (void *) 1);

	list_push_tail(list, (void *) 2);
	assert(list_size(list) == 2);
	assert(list_peek_head(list) == (void *) 1);
	assert(list_peek_tail(list) == (void *) 2);

	list_push_tail(list, (void *) 3);
	assert(list_size(list) == 3);
	assert(list_peek_head(list) == (void *) 1);
	assert(list_peek_tail(list) == (void *) 3);

	assert(list_next_item(list) == NULL);
	list_first_item(list);
	void *i;
	while ((i = list_next_item(list))) {
		if (i == (void *) 2) break;
	}
	assert(list_peek_current(list) == (void *) 3);
	
	assert(list_pop_tail(list) == (void *) 3);
	assert(list_size(list) == 2);
	assert(list_peek_head(list) == (void *) 1);
	assert(list_peek_tail(list) == (void *) 2);

	assert(list_pop_head(list) == (void *) 1);
	assert(list_size(list) == 1);
	assert(list_peek_head(list) == (void *) 2);
	assert(list_peek_tail(list) == (void *) 2);

	assert(list_pop_tail(list) == (void *) 2);
	assert(list_size(list) == 0);
	assert(list_peek_head(list) == NULL);
	assert(list_peek_tail(list) == NULL);

	return 0;
}
EOF
	return $?
}

run()
{
	./"$exe"
	return $?
}

clean()
{
	rm -f "$exe"
	return 0
}

dispatch "$@"