mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-27 14:52:05 -05:00
bcd131dafb
* gnu/packages/bootloaders.scm (patman): New variable. * gnu/packages/patches/u-boot-patman-fix-help.patch: New patch. * gnu/packages/patches/u-boot-patman-get-maintainer.patch: Likewise. * gnu/packages/patches/u-boot-patman-local-conf.patch: Likewise. * gnu/local.mk (dist_patch_DATA): Register them.
104 lines
4.2 KiB
Diff
104 lines
4.2 KiB
Diff
Upstream status: https://patchwork.ozlabs.org/project/uboot/list/?series=333427
|
|
|
|
diff --git a/tools/patman/patman.rst b/tools/patman/patman.rst
|
|
index 7828899879..95b6c9c3f0 100644
|
|
--- a/tools/patman/patman.rst
|
|
+++ b/tools/patman/patman.rst
|
|
@@ -88,7 +88,7 @@ To add your own, create a file `~/.patman` like this::
|
|
Patman will also look for a `.patman` configuration file at the root
|
|
of the current project git repository, which makes it possible to
|
|
override the `project` settings variable or anything else in a
|
|
-project-specific way. The values of this "local" configuration file
|
|
+project-specific way. The values of this "local" configuration file
|
|
take precedence over those of the "global" one.
|
|
|
|
Aliases are recursive.
|
|
diff --git a/tools/patman/test_settings.py b/tools/patman/test_settings.py
|
|
index 9c14b4aaa3..c768a2fc64 100644
|
|
--- a/tools/patman/test_settings.py
|
|
+++ b/tools/patman/test_settings.py
|
|
@@ -6,38 +6,62 @@
|
|
import argparse
|
|
import contextlib
|
|
import os
|
|
-import subprocess
|
|
+import sys
|
|
import tempfile
|
|
|
|
from patman import settings
|
|
+from patman import tools
|
|
|
|
|
|
@contextlib.contextmanager
|
|
def empty_git_repository():
|
|
with tempfile.TemporaryDirectory() as tmpdir:
|
|
os.chdir(tmpdir)
|
|
- subprocess.check_call(['git', 'init'])
|
|
+ tools.run('git', 'init', raise_on_error=True)
|
|
yield tmpdir
|
|
|
|
|
|
+@contextlib.contextmanager
|
|
+def cleared_command_line_args():
|
|
+ old_value = sys.argv[:]
|
|
+ sys.argv = [sys.argv[0]]
|
|
+ try:
|
|
+ yield
|
|
+ finally:
|
|
+ sys.argv = old_value
|
|
+
|
|
+
|
|
def test_git_local_config():
|
|
- with empty_git_repository():
|
|
- with tempfile.NamedTemporaryFile() as global_config:
|
|
- global_config.write(b'[settings]\n'
|
|
- b'project=u-boot\n')
|
|
- global_config.flush()
|
|
- parser = argparse.ArgumentParser()
|
|
- parser.add_argument('-p', '--project', default='unknown')
|
|
-
|
|
- # Test "global" config is used.
|
|
- settings.Setup(parser, 'unknown', global_config.name)
|
|
- args, _ = parser.parse_known_args()
|
|
- assert args.project == 'u-boot'
|
|
-
|
|
- # Test local config can shadow it.
|
|
- with open('.patman', 'w', buffering=1) as f:
|
|
- f.write('[settings]\n'
|
|
- 'project=guix-patches\n')
|
|
- settings.Setup(parser, 'unknown', global_config.name)
|
|
- args, _ = parser.parse_known_args([])
|
|
- assert args.project == 'guix-patches'
|
|
+ # Clearing the command line arguments is required, otherwise
|
|
+ # arguments passed to the test running such as in 'pytest -k
|
|
+ # filter' would be processed by _UpdateDefaults and fail.
|
|
+ with cleared_command_line_args():
|
|
+ with empty_git_repository():
|
|
+ with tempfile.NamedTemporaryFile() as global_config:
|
|
+ global_config.write(b'[settings]\n'
|
|
+ b'project=u-boot\n')
|
|
+ global_config.flush()
|
|
+ parser = argparse.ArgumentParser()
|
|
+ parser.add_argument('-p', '--project', default='unknown')
|
|
+ subparsers = parser.add_subparsers(dest='cmd')
|
|
+ send = subparsers.add_parser('send')
|
|
+ send.add_argument('--no-check', action='store_false',
|
|
+ dest='check_patch', default=True)
|
|
+
|
|
+ # Test "global" config is used.
|
|
+ settings.Setup(parser, 'unknown', global_config.name)
|
|
+ args, _ = parser.parse_known_args([])
|
|
+ assert args.project == 'u-boot'
|
|
+ send_args, _ = send.parse_known_args([])
|
|
+ assert send_args.check_patch
|
|
+
|
|
+ # Test local config can shadow it.
|
|
+ with open('.patman', 'w', buffering=1) as f:
|
|
+ f.write('[settings]\n'
|
|
+ 'project: guix-patches\n'
|
|
+ 'check_patch: False\n')
|
|
+ settings.Setup(parser, 'unknown', global_config.name)
|
|
+ args, _ = parser.parse_known_args([])
|
|
+ assert args.project == 'guix-patches'
|
|
+ send_args, _ = send.parse_known_args([])
|
|
+ assert not send_args.check_patch
|