(root)/
gettext-0.22.4/
libtextstyle/
tests/
test-instanceof.c
       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  }