/[jscoverage]/trunk/tests/streams.c
ViewVC logotype

Contents of /trunk/tests/streams.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 112 - (show annotations)
Sat May 31 21:21:59 2008 UTC (11 years, 4 months ago) by siliconforks
File MIME type: text/plain
File size: 2119 byte(s)
Add more tests.

1 /*
2 streams.c - test `Stream' object
3 Copyright (C) 2008 siliconforks.com
4
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version.
9
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License along
16 with this program; if not, write to the Free Software Foundation, Inc.,
17 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 */
19
20 #include <assert.h>
21 #include <string.h>
22
23 #include "stream.h"
24
25 int main(void) {
26 Stream * stream;
27
28 stream = Stream_new(0);
29 Stream_write_string(stream, "a");
30 Stream_write_string(stream, "bc");
31 assert(stream->length == 3);
32 assert(memcmp(stream->data, "abc", 3) == 0);
33 Stream_delete(stream);
34
35 stream = Stream_new(0);
36 Stream_printf(stream, "%s %d\n", "abc", 123);
37 assert(stream->length == 8);
38 assert(memcmp(stream->data, "abc 123\n", 8) == 0);
39 Stream_delete(stream);
40
41 stream = Stream_new(10);
42 size_t length = 0;
43 for (int i = 0; i < 100; i++) {
44 Stream_printf(stream, "%s %d\n", "abc", i);
45 if (i < 10) {
46 length += 6;
47 }
48 else {
49 length += 7;
50 }
51 }
52 assert(stream->length == length);
53 length = 0;
54 for (int i = 0; i < 100; i++) {
55 char buffer[8];
56 int result = sprintf(buffer, "%s %d\n", "abc", i);
57 assert(memcmp(stream->data + length, buffer, result) == 0);
58 length += result;
59 }
60 assert(stream->length == length);
61 Stream_delete(stream);
62
63 stream = Stream_new(10);
64 char buffer[100];
65 for (int i = 0; i < 100; i++) {
66 buffer[i] = 'x';
67 }
68 Stream_write(stream, buffer, 100);
69 assert(stream->length == 100);
70 for (int i = 0; i < 100; i++) {
71 assert(stream->data[i] == 'x');
72 }
73 Stream_delete(stream);
74
75 exit(EXIT_SUCCESS);
76 }

  ViewVC Help
Powered by ViewVC 1.1.24