1 /* Test for the is_instance_of_* functions. */
2
3 #include <config.h>
4
5 #include "textstyle.h"
6
7 #include <stdio.h>
8 #include <stdlib.h>
9
10 #define ASSERT(x) if (!(x)) abort ()
11
12 int
13 main ()
14 {
15 ostream_t stream1 = file_ostream_create (stdout);
16 ostream_t stream2 = fd_ostream_create (1, "(stdout)", false);
17 ostream_t stream3 = term_ostream_create (1, "(stdout)", TTYCTL_AUTO);
18 ostream_t stream4 = memory_ostream_create ();
19 ostream_t stream5 = html_ostream_create (stream1);
20 ostream_t sstream1 =
21 term_styled_ostream_create (1, "(stdout)", TTYCTL_AUTO,
22 SRCDIR "../adhoc-tests/hello-default.css");
23 ostream_t sstream2 =
24 html_styled_ostream_create (stream5,
25 SRCDIR "../adhoc-tests/hello-default.css");
26 ostream_t sstream3 = noop_styled_ostream_create (stream1, false);
27
28 if (stream1 != NULL)
29 {
30 ASSERT (! is_instance_of_styled_ostream (stream1));
31 ASSERT (is_instance_of_file_ostream (stream1));
32 ASSERT (! is_instance_of_fd_ostream (stream1));
33 ASSERT (! is_instance_of_term_ostream (stream1));
34 ASSERT (! is_instance_of_memory_ostream (stream1));
35 ASSERT (! is_instance_of_iconv_ostream (stream1));
36 ASSERT (! is_instance_of_html_ostream (stream1));
37 ASSERT (! is_instance_of_term_styled_ostream (stream1));
38 ASSERT (! is_instance_of_html_styled_ostream (stream1));
39 ASSERT (! is_instance_of_noop_styled_ostream (stream1));
40 }
41
42 if (stream2 != NULL)
43 {
44 ASSERT (! is_instance_of_styled_ostream (stream2));
45 ASSERT (! is_instance_of_file_ostream (stream2));
46 ASSERT (is_instance_of_fd_ostream (stream2));
47 ASSERT (! is_instance_of_term_ostream (stream2));
48 ASSERT (! is_instance_of_memory_ostream (stream2));
49 ASSERT (! is_instance_of_iconv_ostream (stream2));
50 ASSERT (! is_instance_of_html_ostream (stream2));
51 ASSERT (! is_instance_of_term_styled_ostream (stream2));
52 ASSERT (! is_instance_of_html_styled_ostream (stream2));
53 ASSERT (! is_instance_of_noop_styled_ostream (stream2));
54 }
55
56 if (stream3 != NULL)
57 {
58 ASSERT (! is_instance_of_styled_ostream (stream3));
59 ASSERT (! is_instance_of_file_ostream (stream3));
60 ASSERT (! is_instance_of_fd_ostream (stream3));
61 ASSERT (is_instance_of_term_ostream (stream3));
62 ASSERT (! is_instance_of_memory_ostream (stream3));
63 ASSERT (! is_instance_of_iconv_ostream (stream3));
64 ASSERT (! is_instance_of_html_ostream (stream3));
65 ASSERT (! is_instance_of_term_styled_ostream (stream3));
66 ASSERT (! is_instance_of_html_styled_ostream (stream3));
67 ASSERT (! is_instance_of_noop_styled_ostream (stream3));
68 }
69
70 if (stream4 != NULL)
71 {
72 ASSERT (! is_instance_of_styled_ostream (stream4));
73 ASSERT (! is_instance_of_file_ostream (stream4));
74 ASSERT (! is_instance_of_fd_ostream (stream4));
75 ASSERT (! is_instance_of_term_ostream (stream4));
76 ASSERT (is_instance_of_memory_ostream (stream4));
77 ASSERT (! is_instance_of_iconv_ostream (stream4));
78 ASSERT (! is_instance_of_html_ostream (stream4));
79 ASSERT (! is_instance_of_term_styled_ostream (stream4));
80 ASSERT (! is_instance_of_html_styled_ostream (stream4));
81 ASSERT (! is_instance_of_noop_styled_ostream (stream4));
82 }
83
84 if (stream5 != NULL)
85 {
86 ASSERT (! is_instance_of_styled_ostream (stream5));
87 ASSERT (! is_instance_of_file_ostream (stream5));
88 ASSERT (! is_instance_of_fd_ostream (stream5));
89 ASSERT (! is_instance_of_term_ostream (stream5));
90 ASSERT (! is_instance_of_memory_ostream (stream5));
91 ASSERT (! is_instance_of_iconv_ostream (stream5));
92 ASSERT (is_instance_of_html_ostream (stream5));
93 ASSERT (! is_instance_of_term_styled_ostream (stream5));
94 ASSERT (! is_instance_of_html_styled_ostream (stream5));
95 ASSERT (! is_instance_of_noop_styled_ostream (stream5));
96 }
97
98 if (sstream1 != NULL)
99 {
100 ASSERT (is_instance_of_styled_ostream (sstream1));
101 ASSERT (! is_instance_of_file_ostream (sstream1));
102 ASSERT (! is_instance_of_fd_ostream (sstream1));
103 ASSERT (! is_instance_of_term_ostream (sstream1));
104 ASSERT (! is_instance_of_memory_ostream (sstream1));
105 ASSERT (! is_instance_of_iconv_ostream (sstream1));
106 ASSERT (! is_instance_of_html_ostream (sstream1));
107 ASSERT (is_instance_of_term_styled_ostream (sstream1));
108 ASSERT (! is_instance_of_html_styled_ostream (sstream1));
109 ASSERT (! is_instance_of_noop_styled_ostream (sstream1));
110 }
111
112 if (sstream2 != NULL)
113 {
114 ASSERT (is_instance_of_styled_ostream (sstream2));
115 ASSERT (! is_instance_of_file_ostream (sstream2));
116 ASSERT (! is_instance_of_fd_ostream (sstream2));
117 ASSERT (! is_instance_of_term_ostream (sstream2));
118 ASSERT (! is_instance_of_memory_ostream (sstream2));
119 ASSERT (! is_instance_of_iconv_ostream (sstream2));
120 ASSERT (! is_instance_of_html_ostream (sstream2));
121 ASSERT (! is_instance_of_term_styled_ostream (sstream2));
122 ASSERT (is_instance_of_html_styled_ostream (sstream2));
123 ASSERT (! is_instance_of_noop_styled_ostream (sstream2));
124 }
125
126 if (sstream3 != NULL)
127 {
128 ASSERT (is_instance_of_styled_ostream (sstream3));
129 ASSERT (! is_instance_of_file_ostream (sstream3));
130 ASSERT (! is_instance_of_fd_ostream (sstream3));
131 ASSERT (! is_instance_of_term_ostream (sstream3));
132 ASSERT (! is_instance_of_memory_ostream (sstream3));
133 ASSERT (! is_instance_of_iconv_ostream (sstream3));
134 ASSERT (! is_instance_of_html_ostream (sstream3));
135 ASSERT (! is_instance_of_term_styled_ostream (sstream3));
136 ASSERT (! is_instance_of_html_styled_ostream (sstream3));
137 ASSERT (is_instance_of_noop_styled_ostream (sstream3));
138 }
139
140 return 0;
141 }