parent
8b92b8a230
commit
e955d5042a
@ -0,0 +1,99 @@
|
|||||||
|
From 5c87167a34c6ed703444af180fffd8a45a7928ee Mon Sep 17 00:00:00 2001
|
||||||
|
From: Daniel Mensinger <daniel@mensinger-ka.de>
|
||||||
|
Date: Sat, 31 Jul 2021 17:51:05 +0200
|
||||||
|
Subject: [PATCH] interpreter: Fix list contains for Holders (fixes #9020
|
||||||
|
#9047)
|
||||||
|
|
||||||
|
---
|
||||||
|
mesonbuild/interpreterbase/interpreterbase.py | 4 ++--
|
||||||
|
test cases/common/56 array methods/a.txt | 0
|
||||||
|
test cases/common/56 array methods/b.txt | 0
|
||||||
|
test cases/common/56 array methods/c.txt | 0
|
||||||
|
.../common/56 array methods/meson.build | 24 +++++++++++++++++++
|
||||||
|
5 files changed, 26 insertions(+), 2 deletions(-)
|
||||||
|
create mode 100644 test cases/common/56 array methods/a.txt
|
||||||
|
create mode 100644 test cases/common/56 array methods/b.txt
|
||||||
|
create mode 100644 test cases/common/56 array methods/c.txt
|
||||||
|
|
||||||
|
diff --git a/mesonbuild/interpreterbase/interpreterbase.py b/mesonbuild/interpreterbase/interpreterbase.py
|
||||||
|
index b8a6d1a0c..115e24be0 100644
|
||||||
|
--- a/mesonbuild/interpreterbase/interpreterbase.py
|
||||||
|
+++ b/mesonbuild/interpreterbase/interpreterbase.py
|
||||||
|
@@ -783,7 +783,7 @@ The result of this is undefined and will become a hard error in a future Meson r
|
||||||
|
posargs: T.List[TYPE_var],
|
||||||
|
kwargs: TYPE_kwargs) -> T.Union[TYPE_var, InterpreterObject]:
|
||||||
|
if method_name == 'contains':
|
||||||
|
- def check_contains(el: list) -> bool:
|
||||||
|
+ def check_contains(el: T.List[TYPE_var]) -> bool:
|
||||||
|
if len(posargs) != 1:
|
||||||
|
raise InterpreterException('Contains method takes exactly one argument.')
|
||||||
|
item = posargs[0]
|
||||||
|
@@ -795,7 +795,7 @@ The result of this is undefined and will become a hard error in a future Meson r
|
||||||
|
if element == item:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
- return check_contains(obj)
|
||||||
|
+ return check_contains([_unholder(x) for x in obj])
|
||||||
|
elif method_name == 'length':
|
||||||
|
return len(obj)
|
||||||
|
elif method_name == 'get':
|
||||||
|
diff --git a/test cases/common/56 array methods/a.txt b/test cases/common/56 array methods/a.txt
|
||||||
|
new file mode 100644
|
||||||
|
index 000000000..e69de29bb
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/test cases/common/56 array methods/a.txt
|
||||||
|
diff --git a/test cases/common/56 array methods/b.txt b/test cases/common/56 array methods/b.txt
|
||||||
|
new file mode 100644
|
||||||
|
index 000000000..e69de29bb
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/test cases/common/56 array methods/b.txt
|
||||||
|
diff --git a/test cases/common/56 array methods/c.txt b/test cases/common/56 array methods/c.txt
|
||||||
|
new file mode 100644
|
||||||
|
index 000000000..e69de29bb
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/test cases/common/56 array methods/c.txt
|
||||||
|
diff --git a/test cases/common/56 array methods/meson.build b/test cases/common/56 array methods/meson.build
|
||||||
|
index cdda41dbf..99855bce0 100644
|
||||||
|
--- a/test cases/common/56 array methods/meson.build
|
||||||
|
+++ b/test cases/common/56 array methods/meson.build
|
||||||
|
@@ -5,6 +5,22 @@ one = ['abc']
|
||||||
|
two = ['def', 'ghi']
|
||||||
|
combined = [empty, one, two]
|
||||||
|
|
||||||
|
+file_list = files('a.txt', 'b.txt')
|
||||||
|
+file_a = files('a.txt')
|
||||||
|
+file_c = files('c.txt')
|
||||||
|
+
|
||||||
|
+if file_a[0] != file_list[0]
|
||||||
|
+ error('Files are not equal')
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+if not file_list.contains(file_a[0])
|
||||||
|
+ error('Contains with ObjectHolder lists does not work')
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+if file_list.contains(file_c[0])
|
||||||
|
+ error('Contains with ObjectHolder lists found non existant object')
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
if empty.contains('abc')
|
||||||
|
error('Empty is not empty.')
|
||||||
|
endif
|
||||||
|
@@ -41,6 +57,14 @@ if not combined.contains('abc')
|
||||||
|
error('Combined claims not to contain abc.')
|
||||||
|
endif
|
||||||
|
|
||||||
|
+if not combined.contains(one)
|
||||||
|
+ error('Combined claims not to contain [abc].')
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+if not combined.contains(two)
|
||||||
|
+ error('Combined claims not to contain [def, ghi].')
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
if not combined.contains('ghi')
|
||||||
|
error('Combined claims not to contain ghi.')
|
||||||
|
endif
|
||||||
|
--
|
||||||
|
2.32.0
|
||||||
|
|
@ -7,12 +7,16 @@
|
|||||||
|
|
||||||
Name: meson
|
Name: meson
|
||||||
Version: 0.59.0
|
Version: 0.59.0
|
||||||
Release: 1%{?dist}
|
Release: 2%{?dist}
|
||||||
Summary: High productivity build system
|
Summary: High productivity build system
|
||||||
|
|
||||||
License: ASL 2.0
|
License: ASL 2.0
|
||||||
URL: https://mesonbuild.com/
|
URL: https://mesonbuild.com/
|
||||||
Source: https://github.com/mesonbuild/meson/releases/download/%{version_no_tilde .}/meson-%{version_no_tilde %{quote:}}.tar.gz
|
Source: https://github.com/mesonbuild/meson/releases/download/%{version_no_tilde .}/meson-%{version_no_tilde %{quote:}}.tar.gz
|
||||||
|
# interperter: Fix list contains for Holders (fixes bolt test suite)
|
||||||
|
# https://github.com/mesonbuild/meson/pull/9027
|
||||||
|
# https://bugzilla.redhat.com/show_bug.cgi?id=1994006
|
||||||
|
Patch0: 0001-interpreter-Fix-list-contains-for-Holders-fixes-9020.patch
|
||||||
|
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
|
|
||||||
@ -112,6 +116,9 @@ export MESON_PRINT_TEST_OUTPUT=1
|
|||||||
%{_datadir}/polkit-1/actions/com.mesonbuild.install.policy
|
%{_datadir}/polkit-1/actions/com.mesonbuild.install.policy
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Aug 17 2021 Adam Williamson <awilliam@redhat.com> - 0.59.0-2
|
||||||
|
- Backport PR #9027 to fix a bug that broke some test suites (#1994006)
|
||||||
|
|
||||||
* Fri Jul 23 2021 Marc-André Lureau <marcandre.lureau@redhat.com> - 0.59.0-1
|
* Fri Jul 23 2021 Marc-André Lureau <marcandre.lureau@redhat.com> - 0.59.0-1
|
||||||
- new version
|
- new version
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user