Created SILC GIT repository.
[silc.git] / lib / silcutil / tests / test_silcfdstream.c
diff --git a/lib/silcutil/tests/test_silcfdstream.c b/lib/silcutil/tests/test_silcfdstream.c
deleted file mode 100644 (file)
index dfc2317..0000000
+++ /dev/null
@@ -1,231 +0,0 @@
-/* SILC FD Stream tests */
-
-#include "silc.h"
-
-SilcBool success = FALSE;
-SilcSchedule schedule;
-SilcStream stream;
-char buf1[10240];
-int buf1_len = sizeof(buf1);
-
-static void stream_notifier(SilcStream stream, SilcStreamStatus status,
-                           void *context)
-{
-  SILC_LOG_DEBUG(("Notifier"));
-
-  /* XXX we probably never get here with this test program */
-
-  silc_fsm_continue(context);
-}
-
-static void stream_notifier2(SilcStream stream, SilcStreamStatus status,
-                            void *context)
-{
-  SILC_LOG_DEBUG(("Notifier"));
-
-  /* XXX we probably never get here with this test program */
-
-  silc_fsm_continue(context);
-}
-
-SILC_FSM_STATE(st_end)
-{
-  unlink("/tmp/test_silcfdstream");
-  unlink("/tmp/test_silcfdstream_copy");
-  return SILC_FSM_FINISH;
-}
-
-SILC_FSM_STATE(st_readwrite)
-{
-  int ret, i, k, fd1, fd2;
-  char *cp;
-
-  SILC_LOG_DEBUG(("Opening two files, one for reading, one for writing"));
-
-  SILC_LOG_DEBUG(("Open file /tmp/test_silcfdstream for reading"));
-  fd1 = silc_file_open("/tmp/test_silcfdstream", O_RDONLY);
-  if (fd1 < 0) {
-    SILC_LOG_DEBUG(("Error opening file"));
-    goto err;
-  }
-
-  SILC_LOG_DEBUG(("Open file /tmp/test_silcfdstream_copy for writing"));
-  unlink("/tmp/test_silcfdstream_copy");
-  fd2 = silc_file_open("/tmp/test_silcfdstream_copy", O_CREAT | O_WRONLY);
-  if (fd2 < 0) {
-    SILC_LOG_DEBUG(("Error opening file"));
-    goto err;
-  }
-
-  SILC_LOG_DEBUG(("Creating FD stream (two fds)"));
-  stream = silc_fd_stream_create2(fd1, fd2, NULL);
-  if (!stream) {
-    SILC_LOG_DEBUG(("Error creating stream"));
-    goto err;
-  }
-
-  silc_stream_set_notifier(stream, schedule, stream_notifier2, fsm);
-
-  /* Stream between the fiels */
-  SILC_LOG_DEBUG(("Read/write 3 bytes at a time"));
-  memset(buf1, 0, sizeof(buf1));
-  while ((ret = silc_stream_read(stream, buf1, 3)) > 0) {
-    k = ret;
-    cp = buf1;
-    while (k > 0) {
-      i = silc_stream_write(stream, cp, k);
-
-      if (i == 0) {
-        SILC_LOG_DEBUG(("EOF"));
-        goto err;
-      }
-
-      if (i == -1) {
-        SILC_LOG_DEBUG(("Would block, write later"));
-        silc_fsm_next(fsm, st_end);
-        return SILC_FSM_WAIT;
-      }
-
-      if (i == -2) {
-        SILC_LOG_DEBUG(("Error: %s", strerror(silc_fd_stream_get_error(stream))));
-        goto err;
-      }
-
-      k -= i;
-      cp += i;
-    }
-  }
-
-  if (ret == -1) {
-    SILC_LOG_DEBUG(("Would block, read later"));
-    silc_fsm_next(fsm, st_end);
-    return SILC_FSM_WAIT;
-  }
-
-  if (ret == -2) {
-    SILC_LOG_DEBUG(("Error: %s", strerror(silc_fd_stream_get_error(stream))));
-    goto err;
-  }
-
-  if (ret == 0) {
-    SILC_LOG_DEBUG(("EOF, ok"));
-    success = TRUE;
-    SILC_LOG_DEBUG(("Closing stream"));
-    silc_stream_close(stream);
-    SILC_LOG_DEBUG(("Destroying stream"));
-    silc_stream_destroy(stream);
-  }
-
-  silc_fsm_next(fsm, st_end);
-  return SILC_FSM_CONTINUE;
-
- err:
-  silc_fsm_next(fsm, st_end);
-  return SILC_FSM_CONTINUE;
-}
-
-SILC_FSM_STATE(st_write)
-{
-  int ret, i, k;
-  char *cp;
-
-  /* Simple writing example */
-  SILC_LOG_DEBUG(("Open file /tmp/test_silcfdstream for writing"));
-  SILC_LOG_DEBUG(("Creating FD stream"));
-  unlink("/tmp/test_silcfdstream");
-  stream = silc_fd_stream_file("/tmp/test_silcfdstream", FALSE, TRUE, NULL);
-  if (!stream) {
-    SILC_LOG_DEBUG(("Error creating stream"));
-    goto err;
-  }
-
-  silc_stream_set_notifier(stream, schedule, stream_notifier, fsm);
-
-  memset(buf1, 0, sizeof(buf1));
-  for (i = 0; i < sizeof(buf1); i++)
-    buf1[i] = i;
-
-  SILC_LOG_DEBUG(("Writing data"));
-  k = buf1_len;
-  cp = buf1;
-  while (k > 0) {
-    ret = silc_stream_write(stream, cp, k);
-
-    if (ret == 0) {
-      SILC_LOG_DEBUG(("EOF"));
-      goto err;
-    }
-
-    if (ret == -1) {
-      SILC_LOG_DEBUG(("Would block, write later"));
-      silc_fsm_next(fsm, st_readwrite);
-      return SILC_FSM_WAIT;
-    }
-
-    if (ret == -2) {
-      SILC_LOG_DEBUG(("Error: %s", strerror(silc_fd_stream_get_error(stream))));
-      goto err;
-    }
-
-    k -= ret;
-    cp += ret;
-  }
-
-  SILC_LOG_DEBUG(("Closing stream"));
-  silc_stream_close(stream);
-
-  SILC_LOG_DEBUG(("Destroying stream"));
-  silc_stream_destroy(stream);
-
-  SILC_LOG_DEBUG(("Continue to next state"));
-  silc_fsm_next(fsm, st_readwrite);
-  return SILC_FSM_CONTINUE;
-
- err:
-  silc_fsm_next(fsm, st_end);
-  return SILC_FSM_CONTINUE;
-}
-
-static void fsm_dest(SilcFSM fsm, void *fsm_context, void *context)
-{
-  silc_fsm_free(fsm);
-  silc_schedule_stop(schedule);
-}
-
-int main(int argc, char **argv)
-{
-  SilcFSM fsm;
-
-  if (argc > 1 && !strcmp(argv[1], "-d")) {
-    silc_log_debug(TRUE);
-    silc_log_debug_hexdump(TRUE);
-    silc_log_set_debug_string("*fdstream*,*errno*");
-  }
-
-  SILC_LOG_DEBUG(("Allocating scheduler"));
-  schedule = silc_schedule_init(0, NULL, NULL);
-  if (!schedule)
-    goto err;
-
-  SILC_LOG_DEBUG(("Allocating FSM"));
-  fsm = silc_fsm_alloc(NULL, fsm_dest, NULL, schedule);
-  if (!fsm)
-    goto err;
-
-  silc_fsm_start(fsm, st_write);
-
-  SILC_LOG_DEBUG(("Running scheduler"));
-  silc_schedule(schedule);
-
-  if (!success)
-    goto err;
-
-  silc_schedule_uninit(schedule);
-  success = TRUE;
-
- err:
-  SILC_LOG_DEBUG(("Testing was %s", success ? "SUCCESS" : "FAILURE"));
-  fprintf(stderr, "Testing was %s\n", success ? "SUCCESS" : "FAILURE");
-
-  return success;
-}