2 * Copyright (c) 2000-2001 Sendmail, Inc. and its suppliers.
5 * By using this file, you agree to the terms and conditions set
6 * forth in the LICENSE file which can be found at the top level of
7 * the sendmail distribution.
10 #pragma ident "%Z%%M% %I% %E% SMI"
13 SM_IDSTR(id
, "@(#)$Id: t-smstdio.c,v 1.9 2001/03/21 18:30:41 ca Exp $")
16 #include <sm/string.h>
28 static char testmsg
[] = "hello, world\n";
30 sm_test_begin(argc
, argv
,
31 "test sm_io_stdioopen, smiostdin, smiostdout");
33 stream
= fopen("t-smstdio.1", "w");
34 SM_TEST(stream
!= NULL
);
36 fp
= sm_io_stdioopen(stream
, "w");
39 (void) sm_io_fprintf(fp
, SM_TIME_DEFAULT
, "%s", testmsg
);
40 sm_io_close(fp
, SM_TIME_DEFAULT
);
44 ** stream should now be closed. This is a tricky way to test
45 ** if it is still open. Alas, it core dumps on Linux.
48 fprintf(stream
, "oops! stream is still open!\n");
52 stream
= fopen("t-smstdio.1", "r");
53 SM_TEST(stream
!= NULL
);
55 fp
= sm_io_stdioopen(stream
, "r");
58 n
= sm_io_read(fp
, SM_TIME_DEFAULT
, buf
, sizeof(buf
));
59 if (SM_TEST(n
== strlen(testmsg
)))
62 SM_TEST(strcmp(buf
, testmsg
) == 0);
68 ** Copy smiostdin to smiostdout
69 ** gotta think some more about how to test smiostdin and smiostdout
72 while ((c
= sm_io_getc(smiostdin
)) != SM_IO_EOF
)
73 sm_io_putc(smiostdout
, c
);