[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] pickles,testsuite: add test for search pickle
|
From: |
Mohammad-Reza Nabipoor |
|
Subject: |
[PATCH] pickles,testsuite: add test for search pickle |
|
Date: |
Mon, 6 Feb 2023 01:20:05 +0100 |
2023-02-06 Mohammad-Reza Nabipoor <mnabipoor@gnu.org>
* pickles/search.pk (search_type): Fix `mapper' invocation.
* testsuite/poke.pickles/search-test.pk: New test.
* testsuite/Makefile.am (EXTRA_DIST): Add new test.
---
ChangeLog | 6 +++
pickles/search.pk | 2 +-
testsuite/Makefile.am | 1 +
testsuite/poke.pickles/search-test.pk | 54 +++++++++++++++++++++++++++
4 files changed, 62 insertions(+), 1 deletion(-)
create mode 100644 testsuite/poke.pickles/search-test.pk
diff --git a/ChangeLog b/ChangeLog
index e5842d1b..2098ccf3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2023-02-06 Mohammad-Reza Nabipoor <mnabipoor@gnu.org>
+
+ * pickles/search.pk (search_type): Fix `mapper' invocation.
+ * testsuite/poke.pickles/search-test.pk: New test.
+ * testsuite/Makefile.am (EXTRA_DIST): Add new test.
+
2023-02-03 Jose E. Marchesi <jemarch@gnu.org>
* libpoke/pkl-tab.y (declaration): improve error message.
diff --git a/pickles/search.pk b/pickles/search.pk
index 9e907372..cccc8807 100644
--- a/pickles/search.pk
+++ b/pickles/search.pk
@@ -43,7 +43,7 @@ fun search_type = (Pk_Type typ, int<32> ios = get_ios,
try
{
var found = typ.mapper (1 /* strict */,
- ios, from'magnitude*from'unit, 0, 0);
+ ios, from'magnitude*from'unit);
var end = found'offset + found'size;
return Search_Match_Data { start = found'offset, end = end };
diff --git a/testsuite/Makefile.am b/testsuite/Makefile.am
index 2309dcc7..6e528424 100644
--- a/testsuite/Makefile.am
+++ b/testsuite/Makefile.am
@@ -600,6 +600,7 @@ EXTRA_DIST = \
poke.pickles/pe-test.pk \
poke.pickles/riscv-test.pk \
poke.pickles/sframe-test.pk \
+ poke.pickles/search-test.pk \
poke.pickles/ustar-test.pk \
poke.pickles/color-test.pk \
poke.pickles/mbr-test.pk \
diff --git a/testsuite/poke.pickles/search-test.pk
b/testsuite/poke.pickles/search-test.pk
new file mode 100644
index 00000000..4f3e4856
--- /dev/null
+++ b/testsuite/poke.pickles/search-test.pk
@@ -0,0 +1,54 @@
+/* search-test.pk - Tests for the search pickle. */
+
+/* Copyright (C) 2023 The poke authors. */
+
+/* This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+load pktest;
+load search;
+
+set_endian (ENDIAN_BIG);
+
+var data = [0x12UB, 0x34UB, 0x56UB, 0x78UB, 0x9aUB, 0xbcUB, 0xefUB];
+
+type T1 = struct uint<16>
+ {
+ uint<4> three == 3UN;
+ uint<8> anything;
+ uint<4> six == 6UN;
+ };
+
+var tests = [
+ PkTest {
+ name = "load search pickle",
+ func = lambda (string name) void:
+ {
+ with_temp_ios
+ :do lambda void:
+ {
+ byte[] @ 0#B = data;
+
+ var typ = typeof (T1),
+ matches = (search_type :typ typ);
+
+ assert (matches'length == 1);
+ assert (matches[0].start == 1#B);
+ assert (matches[0].end == 1#B + typ.size#b);
+ };
+ },
+ },];
+
+var ok = pktest_run (tests);
+exit (ok ? 0 : 1);
--
2.39.1
- [PATCH] pickles,testsuite: add test for search pickle,
Mohammad-Reza Nabipoor <=