summaryrefslogtreecommitdiff
path: root/camel/tests/stream/test2.c
blob: 02ad88e95c8caf500c5b636f205209a97b257d4f (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
/*
  test ... camelstreammem */

#include "camel-test.h"
#include "streams.h"

#include <errno.h>
#include <sys/stat.h>
#include <unistd.h>

#include "camel/camel-stream-mem.h"

int main(int argc, char **argv)
{
	CamelSeekableStream *ss = NULL;
	int i;
	int fd = -1;
	struct stat st;
	int size;
	char buffer[1024];
	GByteArray *ba;

	camel_test_init(argc, argv);

	camel_test_start("CamelStream mem, create, seek, read, write, eos");
	for (i=0;i<3;i++) {

		push("Creating stream using method %d", i);
		switch(i) {
		case 0:
			ss = (CamelSeekableStream *)camel_stream_mem_new();
			break;
		case 1:
			ba = g_byte_array_new();
			ss = (CamelSeekableStream *)camel_stream_mem_new_with_byte_array(ba);
			break;
		case 2:
			ss = (CamelSeekableStream *)camel_stream_mem_new_with_buffer("", 0);
			break;
		}
		check(ss != NULL);

		test_stream_seekable_writepart(ss);
		test_stream_seekable_readpart(ss);

		check_unref(ss, 1);
		pull();
	}

	camel_test_end();

	return 0;
}