From 68dafe8df6da166999845cd4e2739b9bf8fbf8db Mon Sep 17 00:00:00 2001
From: Andrea Shepard <andrea@persephoneslair.org>
Date: Thu, 24 Nov 2016 02:31:25 +0000
Subject: [PATCH] Add one-split cases to ch_range unit test

---
 src/t_parser.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/src/t_parser.c b/src/t_parser.c
index 304362e4..b7e2393b 100644
--- a/src/t_parser.c
+++ b/src/t_parser.c
@@ -25,6 +25,9 @@ static void test_ch_range(gconstpointer backend) {
   const HParser *range_2 = h_ch_range('a', 'z');
   const HParser *range_3 = h_ch_range('A', 'z');
   const HParser *range_all = h_ch_range(0, 255);
+  const HParser *range_left = h_ch_range(0, 64);
+  const HParser *range_right = h_ch_range(224, 255);
+  unsigned char tmp[2];
 
   g_check_parse_match(range_1, (HParserBackend)GPOINTER_TO_INT(backend), "b", 1, "u0x62");
   g_check_parse_failed(range_1, (HParserBackend)GPOINTER_TO_INT(backend), "d", 1);
@@ -34,6 +37,15 @@ static void test_ch_range(gconstpointer backend) {
   g_check_parse_failed(range_3, (HParserBackend)GPOINTER_TO_INT(backend), "2", 1);
   /* range_all never fails anything */
   g_check_parse_match(range_all, (HParserBackend)GPOINTER_TO_INT(backend), "B", 1, "u0x42");
+  tmp[1] = '\0';
+  tmp[0] = 32;
+  g_check_parse_match(range_left, (HParserBackend)GPOINTER_TO_INT(backend), tmp, 1, "u0x20");
+  tmp[0] = 128;
+  g_check_parse_failed(range_left, (HParserBackend)GPOINTER_TO_INT(backend), tmp, 1);
+  tmp[0] = 240;
+  g_check_parse_match(range_right, (HParserBackend)GPOINTER_TO_INT(backend), tmp, 1, "u0xf0");
+  tmp[0] = 128;
+  g_check_parse_failed(range_right, (HParserBackend)GPOINTER_TO_INT(backend), tmp, 1);
 }
 
 //@MARK_START
-- 
GitLab