summaryrefslogtreecommitdiffstats
path: root/unit/test-mux.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2009-09-06 08:35:34 +0200
committerMarcel Holtmann <marcel@holtmann.org>2009-09-06 08:35:34 +0200
commit02eacb65afbbdf224bd61d228aa9601f528f35a8 (patch)
treeba973cfed940017741c34ccaa6c9fe375626cf3b /unit/test-mux.c
parent041b192fcd21615fd016ad603738d3d1b01318a9 (diff)
downloadofono-02eacb65afbbdf224bd61d228aa9601f528f35a8.tar.bz2
Update GSM 07.10 unit testing
Diffstat (limited to 'unit/test-mux.c')
-rw-r--r--unit/test-mux.c65
1 files changed, 63 insertions, 2 deletions
diff --git a/unit/test-mux.c b/unit/test-mux.c
index ba335db9..de774c5f 100644
--- a/unit/test-mux.c
+++ b/unit/test-mux.c
@@ -23,26 +23,87 @@
#include <config.h>
#endif
+#include <unistd.h>
+#include <string.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+
#include <glib.h>
#include <glib/gprintf.h>
#include "gsm0710.h"
+static int at_command(struct gsm0710_context *ctx, const char *cmd)
+{
+ int len;
+
+ g_print("sending: %s\n", cmd);
+
+ len = write(ctx->fd, cmd, strlen(cmd));
+ len = write(ctx->fd, "\r", 1);
+
+ return 1;
+}
+
+static int do_write(struct gsm0710_context *ctx, const void *data, int size)
+{
+ int len;
+
+ g_print("writing: %d bytes\n", size);
+
+ len = write(ctx->fd, data, size);
+
+ return 1;
+}
+
static void debug_message(struct gsm0710_context *ctx, const char *msg)
{
g_print("debug: %s\n", msg);
}
+static int do_connect(const char *address, unsigned short port)
+{
+ struct sockaddr_in addr;
+ int sk, err;
+
+ sk = socket(PF_INET, SOCK_STREAM, 0);
+ if (sk < 0)
+ return sk;
+
+ memset(&addr, 0, sizeof(addr));
+ addr.sin_family = AF_INET;
+ addr.sin_addr.s_addr = inet_addr(address);
+ addr.sin_port = htons(port);
+
+ err = connect(sk, (struct sockaddr *) &addr, sizeof(addr));
+ if (err < 0) {
+ close(sk);
+ return err;
+ }
+
+ return sk;
+}
+
static void test_setup(void)
{
struct gsm0710_context ctx;
gsm0710_initialize(&ctx);
- ctx.fd = -1;
+ ctx.fd = do_connect("127.0.0.1", 12345);
+ if (ctx.fd < 0)
+ return;
+
+ ctx.at_command = at_command;
+ ctx.write = do_write;
ctx.debug_message = debug_message;
- gsm0710_startup(&ctx, 0);
+ gsm0710_startup(&ctx, 1);
+
+ gsm0710_open_channel(&ctx, 1);
+
+ sleep(10);
gsm0710_shutdown(&ctx);
}