summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--njs.spec25
-rw-r--r--tests.patch63
2 files changed, 83 insertions, 5 deletions
diff --git a/njs.spec b/njs.spec
index 28e9aae..8a81b7e 100644
--- a/njs.spec
+++ b/njs.spec
@@ -19,27 +19,31 @@
# See https://github.com/nginx/njs/tags
%global gh_owner nginx
%global project njs
-%global gh_commit 927d38d8438e8b3b3db63af4d9f6324210fd5dab
+%global gh_commit b9ac319d8bfa696e3943bebbe494e8e723952bdf
%global gh_short %(c=%{gh_commit}; echo ${c:0:7})
# See https://github.com/bellard/quickjs/commits/master/
%global qjs_owner bellard
%global qjs_project quickjs
-%global qjs_commit eb2c89087def1829ed99630cb14b549d7a98408c
+%global qjs_commit f1139494d18a2053630c5ed3384a42bb70db3c53
%global qjs_short %(c=%{qjs_commit}; echo ${c:0:7})
-%global qjs_version 2025.10.18
+%global qjs_version 2025.12.22
Name: %{project}
Summary: NGINX JavaScript
-Version: 0.9.4
-Release: 1%{?dist}
+Version: 0.9.5
+Release: 2%{?dist}
License: BSD-2-Clause AND MIT
URL: https://github.com/%{gh_owner}/%{project}
Source0: https://github.com/%{gh_owner}/%{project}/archive/%{gh_commit}/%{project}-%{version}-%{gh_short}.tar.gz
Source1: https://github.com/%{qjs_owner}/%{qjs_project}/archive/%{qjs_commit}/%{qjs_project}-%{qjs_short}.tar.gz
+# ignore 1 failed test related to pcre2 version
+# https://github.com/nginx/njs/issues/1011
+Patch0: tests.patch
+
BuildRequires: make
BuildRequires: gcc
BuildRequires: openssl-devel
@@ -87,6 +91,8 @@ mv %{qjs_project}-%{qjs_commit} quickjs
%setup -qn %{project}-%{gh_commit}
%endif
+%patch -P0 -p1
+
%build
%if %{with quickjs}
@@ -160,6 +166,15 @@ make test %{?_smp_mflags}
%changelog
+* Thu Jan 15 2026 Remi Collet <remi@remirepo.net> - 0.9.5-2
+- use upstream patch for test suite
+
+* Tue Jan 13 2026 Remi Collet <remi@remirepo.net> - 0.9.5-1
+- update to 0.9.5
+- update bundled quickjs to 2025.12.22
+- open https://github.com/nginx/njs/issues/1011
+ fail test with libpcre2 version 10.47
+
* Wed Oct 29 2025 Remi Collet <remi@remirepo.net> - 0.9.4-1
- update to 0.9.4
- update bundled quickjs to 2025.10.18
diff --git a/tests.patch b/tests.patch
new file mode 100644
index 0000000..131b8ae
--- /dev/null
+++ b/tests.patch
@@ -0,0 +1,63 @@
+From ca8d7740d6545234909131a6de8404109a850d85 Mon Sep 17 00:00:00 2001
+From: Dmitry Volyntsev <xeioex@nginx.com>
+Date: Wed, 14 Jan 2026 14:43:58 -0800
+Subject: [PATCH] Making unit tests less brittle when libpcre2 changes.
+
+This fixes #1011 issue on Github.
+---
+ src/njs_str.h | 6 ++++++
+ src/test/njs_unit_test.c | 10 ++++------
+ 2 files changed, 10 insertions(+), 6 deletions(-)
+
+diff --git a/src/njs_str.h b/src/njs_str.h
+index 8c7e60b06..e64d88a97 100644
+--- a/src/njs_str.h
++++ b/src/njs_str.h
+@@ -139,6 +139,12 @@ njs_strstr_case_eq(s1, s2) \
+ && (njs_strncasecmp((s1)->start, (s2)->start, (s1)->length) == 0))
+
+
++#define \
++njs_strstr_starts_with(str, prefix) \
++ (((str)->length >= (prefix)->length) \
++ && (memcmp((str)->start, (prefix)->start, (prefix)->length) == 0))
++
++
+ NJS_EXPORT njs_int_t njs_strncasecmp(u_char *s1, u_char *s2, size_t n);
+
+
+diff --git a/src/test/njs_unit_test.c b/src/test/njs_unit_test.c
+index c39523ac0..a89d80161 100644
+--- a/src/test/njs_unit_test.c
++++ b/src/test/njs_unit_test.c
+@@ -11806,8 +11806,8 @@ static njs_unit_test_t njs_test[] =
+
+ { njs_str("/+/.test('')"),
+ njs_str("SyntaxError: "
+- njs_pcre_var("pcre_compile2(\"+\") failed: quantifier does not follow a repeatable item at \"+\" in 1",
+- "pcre_compile(\"+\") failed: nothing to repeat at \"+\" in 1")) },
++ njs_pcre_var("pcre_compile2(\"+\") failed: quantifier does not follow a repeatable item",
++ "pcre_compile(\"+\") failed: nothing to repeat")) },
+
+ { njs_str("/^$/.test('')"),
+ njs_str("true") },
+@@ -21994,9 +21994,7 @@ njs_process_test(njs_external_state_t *state, njs_opts_t *opts,
+ return NJS_ERROR;
+ }
+
+- success = expected->ret.length <= s.length
+- && (memcmp(expected->ret.start, s.start, expected->ret.length)
+- == 0);
++ success = njs_strstr_starts_with(&s, &expected->ret);
+ if (!success) {
+ njs_stderror("njs(\"%V\")\nexpected: \"%V\"\n got: \"%V\"\n",
+ &expected->script, &expected->ret, &s);
+@@ -22156,7 +22154,7 @@ njs_unit_test(njs_unit_test_t tests[], size_t num, njs_str_t *name,
+ "Extra characters at the end of the script");
+ }
+
+- success = njs_strstr_eq(&tests[i].ret, &s);
++ success = njs_strstr_starts_with(&s, &tests[i].ret);
+ if (!success) {
+ njs_stderror("njs(\"%V\")\nexpected: \"%V\"\n"
+ " got: \"%V\"\n",