aboutsummaryrefslogtreecommitdiffstats
path: root/src/hdlc-test.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/hdlc-test.c')
-rw-r--r--src/hdlc-test.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/hdlc-test.c b/src/hdlc-test.c
new file mode 100644
index 0000000..1c7c6ef
--- /dev/null
+++ b/src/hdlc-test.c
@@ -0,0 +1,42 @@
+#include <string.h>
+#include "hdlc.h"
+
+#include <osmocom/core/utils.h>
+#include <osmocom/core/bits.h>
+
+const char *tdata = "7e7e7e7e7a76f20609167d3cfcfcfc";
+
+static void hdlc_process_hex_str(struct hdlc_proc *hdlc, const char *hex)
+{
+ uint8_t *bytes, *bits;
+ int string_len = strlen(hex);
+ int byte_len = string_len/2;
+ int bit_len = byte_len*8;
+ int rc;
+
+ printf("hex string = %s\n", hex);
+ bytes = alloca(byte_len);
+ bits = alloca(bit_len);
+ rc = osmo_hexparse(hex, bytes, byte_len);
+ printf("parsed bytes = %s\n", osmo_hexdump(bytes, byte_len));
+
+ printf("MSB mode\n");
+ osmo_pbit2ubit(bits, bytes, bit_len);
+ process_raw_hdlc(hdlc, bits, bit_len);
+
+ printf("LSB mode\n");
+ memset(hdlc, 0, sizeof(*hdlc));
+ osmo_pbit2ubit_ext(bits, 0, bytes, 0, bit_len, 1);
+ process_raw_hdlc(hdlc, bits, bit_len);
+}
+
+int main(int argc, char **argv)
+{
+ struct hdlc_proc hdlc;
+ memset(&hdlc, 0, sizeof(hdlc));
+
+ if (argc < 2)
+ exit(1);
+
+ hdlc_process_hex_str(&hdlc, argv[1]);
+}