|
Benjamin Poirier |
600ead |
#!/usr/bin/python3
|
|
Benjamin Poirier |
6a71e7 |
# -*- coding: utf-8 -*-
|
|
Benjamin Poirier |
6a71e7 |
|
|
Benjamin Poirier |
6a71e7 |
import os
|
|
Benjamin Poirier |
6a71e7 |
import os.path
|
|
Benjamin Poirier |
6a71e7 |
import shutil
|
|
Benjamin Poirier |
6a71e7 |
import subprocess
|
|
Benjamin Poirier |
6a71e7 |
import sys
|
|
Benjamin Poirier |
6a71e7 |
import tempfile
|
|
Benjamin Poirier |
6a71e7 |
import unittest
|
|
Benjamin Poirier |
6a71e7 |
|
|
Benjamin Poirier |
50602b |
import pygit2_wrapper as pygit2
|
|
Benjamin Poirier |
50602b |
|
|
Benjamin Poirier |
6a71e7 |
import git_sort
|
|
Benjamin Poirier |
6a71e7 |
import lib
|
|
Benjamin Poirier |
39e1be |
import tests.support
|
|
Benjamin Poirier |
6a71e7 |
|
|
Benjamin Poirier |
6a71e7 |
|
|
Benjamin Poirier |
6a71e7 |
class TestSeriesSort(unittest.TestCase):
|
|
Benjamin Poirier |
6a71e7 |
def setUp(self):
|
|
Benjamin Poirier |
535548 |
self.ss_path = os.path.join(lib.libdir(), "series_sort.py")
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
6a71e7 |
os.environ["XDG_CACHE_HOME"] = tempfile.mkdtemp(prefix="gs_cache")
|
|
Benjamin Poirier |
6a71e7 |
|
|
Benjamin Poirier |
6a71e7 |
# setup stub linux repository
|
|
Benjamin Poirier |
6a71e7 |
os.environ["LINUX_GIT"] = tempfile.mkdtemp(prefix="gs_repo")
|
|
Benjamin Poirier |
6a71e7 |
self.repo = pygit2.init_repository(os.environ["LINUX_GIT"])
|
|
Benjamin Poirier |
6a71e7 |
|
|
Benjamin Poirier |
6a71e7 |
author = pygit2.Signature('Alice Author', 'alice@authors.tld')
|
|
Benjamin Poirier |
6a71e7 |
committer = pygit2.Signature('Cecil Committer', 'cecil@committers.tld')
|
|
Benjamin Poirier |
6a71e7 |
tree = self.repo.TreeBuilder().write()
|
|
Benjamin Poirier |
6a71e7 |
|
|
Benjamin Poirier |
6a71e7 |
m0 = self.repo.create_commit(
|
|
Benjamin Poirier |
6a71e7 |
"refs/heads/mainline",
|
|
Benjamin Poirier |
6a71e7 |
author,
|
|
Benjamin Poirier |
6a71e7 |
committer,
|
|
Benjamin Poirier |
6a71e7 |
"mainline 0\n\nlog",
|
|
Benjamin Poirier |
6a71e7 |
tree,
|
|
Benjamin Poirier |
6a71e7 |
[]
|
|
Benjamin Poirier |
6a71e7 |
)
|
|
Benjamin Poirier |
6a71e7 |
|
|
Benjamin Poirier |
6a71e7 |
n0 = self.repo.create_commit(
|
|
Benjamin Poirier |
6a71e7 |
"refs/heads/net",
|
|
Benjamin Poirier |
6a71e7 |
author,
|
|
Benjamin Poirier |
6a71e7 |
committer,
|
|
Benjamin Poirier |
6a71e7 |
"net 0\n\nlog",
|
|
Benjamin Poirier |
6a71e7 |
tree,
|
|
Benjamin Poirier |
6a71e7 |
[m0]
|
|
Benjamin Poirier |
6a71e7 |
)
|
|
Benjamin Poirier |
6a71e7 |
|
|
Benjamin Poirier |
6a71e7 |
self.repo.checkout("refs/heads/mainline")
|
|
Benjamin Poirier |
6a71e7 |
m1 = self.repo.create_commit(
|
|
Benjamin Poirier |
6a71e7 |
"refs/heads/mainline",
|
|
Benjamin Poirier |
6a71e7 |
author,
|
|
Benjamin Poirier |
6a71e7 |
committer,
|
|
Benjamin Poirier |
6a71e7 |
"mainline 1, merge net\n\nlog",
|
|
Benjamin Poirier |
6a71e7 |
tree,
|
|
Benjamin Poirier |
6a71e7 |
[m0, n0]
|
|
Benjamin Poirier |
6a71e7 |
)
|
|
Benjamin Poirier |
6a71e7 |
|
|
Benjamin Poirier |
6a71e7 |
m2 = self.repo.create_commit(
|
|
Benjamin Poirier |
6a71e7 |
"refs/heads/mainline",
|
|
Benjamin Poirier |
6a71e7 |
author,
|
|
Benjamin Poirier |
6a71e7 |
committer,
|
|
Benjamin Poirier |
6a71e7 |
"mainline 2\n\nlog",
|
|
Benjamin Poirier |
6a71e7 |
tree,
|
|
Benjamin Poirier |
6a71e7 |
[m1]
|
|
Benjamin Poirier |
6a71e7 |
)
|
|
Benjamin Poirier |
6a71e7 |
|
|
Benjamin Poirier |
6a71e7 |
n1 = self.repo.create_commit(
|
|
Benjamin Poirier |
6a71e7 |
"refs/heads/net",
|
|
Benjamin Poirier |
6a71e7 |
author,
|
|
Benjamin Poirier |
6a71e7 |
committer,
|
|
Benjamin Poirier |
6a71e7 |
"net 1\n\nlog",
|
|
Benjamin Poirier |
6a71e7 |
tree,
|
|
Benjamin Poirier |
6a71e7 |
[n0]
|
|
Benjamin Poirier |
6a71e7 |
)
|
|
Benjamin Poirier |
6a71e7 |
|
|
Benjamin Poirier |
6a71e7 |
n2 = self.repo.create_commit(
|
|
Benjamin Poirier |
6a71e7 |
"refs/heads/net",
|
|
Benjamin Poirier |
6a71e7 |
author,
|
|
Benjamin Poirier |
6a71e7 |
committer,
|
|
Benjamin Poirier |
6a71e7 |
"net 2\n\nlog",
|
|
Benjamin Poirier |
6a71e7 |
tree,
|
|
Benjamin Poirier |
6a71e7 |
[n1]
|
|
Benjamin Poirier |
6a71e7 |
)
|
|
Benjamin Poirier |
6a71e7 |
|
|
Benjamin Poirier |
39e1be |
oot0 = self.repo.create_commit(
|
|
Benjamin Poirier |
39e1be |
"refs/heads/oot",
|
|
Benjamin Poirier |
39e1be |
author,
|
|
Benjamin Poirier |
39e1be |
committer,
|
|
Benjamin Poirier |
39e1be |
"oot 0\n\nlog",
|
|
Benjamin Poirier |
39e1be |
tree,
|
|
Benjamin Poirier |
39e1be |
[m0]
|
|
Benjamin Poirier |
39e1be |
)
|
|
Benjamin Poirier |
39e1be |
|
|
Benjamin Poirier |
39e1be |
oot1 = self.repo.create_commit(
|
|
Benjamin Poirier |
39e1be |
"refs/heads/oot",
|
|
Benjamin Poirier |
39e1be |
author,
|
|
Benjamin Poirier |
39e1be |
committer,
|
|
Benjamin Poirier |
39e1be |
"oot 1\n\nlog",
|
|
Benjamin Poirier |
39e1be |
tree,
|
|
Benjamin Poirier |
39e1be |
[oot0]
|
|
Benjamin Poirier |
39e1be |
)
|
|
Benjamin Poirier |
39e1be |
|
|
Benjamin Poirier |
39e1be |
k_org_canon_prefix = "git://git.kernel.org/pub/scm/linux/kernel/git/"
|
|
Benjamin Poirier |
39e1be |
origin_repo = k_org_canon_prefix + "torvalds/linux.git"
|
|
Benjamin Poirier |
39e1be |
self.repo.remotes.create("origin", origin_repo)
|
|
Benjamin Poirier |
6a71e7 |
self.repo.references.create("refs/remotes/origin/master", m2)
|
|
Benjamin Poirier |
6a71e7 |
|
|
Benjamin Poirier |
39e1be |
net_repo = k_org_canon_prefix + "davem/net.git"
|
|
Benjamin Poirier |
39e1be |
self.repo.remotes.create("net", net_repo)
|
|
Benjamin Poirier |
6a71e7 |
self.repo.references.create("refs/remotes/net/master", n2)
|
|
Benjamin Poirier |
6a71e7 |
|
|
Benjamin Poirier |
6a71e7 |
self.index = git_sort.SortIndex(self.repo)
|
|
Benjamin Poirier |
6a71e7 |
|
|
Benjamin Poirier |
6a71e7 |
# setup stub kernel-source content
|
|
Benjamin Poirier |
6a71e7 |
self.ks_dir = tempfile.mkdtemp(prefix="gs_ks")
|
|
Benjamin Poirier |
960235 |
patch_dir = os.path.join(self.ks_dir, "patches.suse")
|
|
Benjamin Poirier |
960235 |
os.mkdir(patch_dir)
|
|
Benjamin Poirier |
960235 |
os.chdir(patch_dir)
|
|
Benjamin Poirier |
39e1be |
tests.support.format_patch(self.repo.get(m0), mainline="v3.45-rc6")
|
|
Benjamin Poirier |
39e1be |
tests.support.format_patch(self.repo.get(n0), mainline="v3.45-rc6")
|
|
Benjamin Poirier |
39e1be |
tests.support.format_patch(self.repo.get(n1), repo=net_repo)
|
|
Benjamin Poirier |
39e1be |
tests.support.format_patch(self.repo.get(n2), repo=net_repo)
|
|
Benjamin Poirier |
39e1be |
tests.support.format_patch(self.repo.get(oot0))
|
|
Michal Suchanek |
6a7dd9 |
tests.support.format_patch(self.repo.get(oot1), mainline="Submitted http://lore.kernel.org/somelist/somemessage")
|
|
Benjamin Poirier |
535548 |
os.chdir(self.ks_dir)
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
960235 |
|
|
Benjamin Poirier |
960235 |
def tearDown(self):
|
|
Benjamin Poirier |
960235 |
shutil.rmtree(os.environ["XDG_CACHE_HOME"])
|
|
Benjamin Poirier |
960235 |
shutil.rmtree(os.environ["LINUX_GIT"])
|
|
Benjamin Poirier |
960235 |
shutil.rmtree(self.ks_dir)
|
|
Benjamin Poirier |
960235 |
|
|
Benjamin Poirier |
960235 |
|
|
Benjamin Poirier |
4f8279 |
def test_nofile(self):
|
|
Benjamin Poirier |
4f8279 |
try:
|
|
Benjamin Poirier |
535548 |
subprocess.check_output([self.ss_path, "aaa"],
|
|
Benjamin Poirier |
535548 |
stderr=subprocess.STDOUT)
|
|
Benjamin Poirier |
4f8279 |
except subprocess.CalledProcessError as err:
|
|
Benjamin Poirier |
4f8279 |
self.assertEqual(err.returncode, 1)
|
|
Benjamin Poirier |
4f8279 |
self.assertEqual(
|
|
Benjamin Poirier |
4f8279 |
err.output.decode(),
|
|
Benjamin Poirier |
4f8279 |
"Error: [Errno 2] No such file or directory: 'aaa'\n")
|
|
Benjamin Poirier |
4f8279 |
else:
|
|
Benjamin Poirier |
4f8279 |
self.assertTrue(False)
|
|
Benjamin Poirier |
4f8279 |
|
|
Benjamin Poirier |
4f8279 |
|
|
Benjamin Poirier |
960235 |
def test_absent(self):
|
|
Benjamin Poirier |
960235 |
(tmp, series,) = tempfile.mkstemp(dir=self.ks_dir)
|
|
Benjamin Poirier |
600ead |
with open(series, mode="w") as f:
|
|
Benjamin Poirier |
600ead |
f.write(
|
|
Benjamin Poirier |
960235 |
"""
|
|
Benjamin Poirier |
960235 |
patches.suse/unsorted-before.patch
|
|
Benjamin Poirier |
960235 |
""")
|
|
Benjamin Poirier |
960235 |
|
|
Benjamin Poirier |
960235 |
try:
|
|
Benjamin Poirier |
535548 |
subprocess.check_output([self.ss_path, series],
|
|
Benjamin Poirier |
535548 |
stderr=subprocess.STDOUT)
|
|
Benjamin Poirier |
960235 |
except subprocess.CalledProcessError as err:
|
|
Benjamin Poirier |
600ead |
self.assertEqual(err.output.decode(), "Error: Sorted subseries not found.\n")
|
|
Benjamin Poirier |
3e2b4f |
else:
|
|
Benjamin Poirier |
3e2b4f |
self.assertTrue(False)
|
|
Benjamin Poirier |
3e2b4f |
|
|
Benjamin Poirier |
3e2b4f |
os.unlink(series)
|
|
Benjamin Poirier |
3e2b4f |
|
|
Benjamin Poirier |
3e2b4f |
|
|
Benjamin Poirier |
3e2b4f |
def test_sort_small(self):
|
|
Benjamin Poirier |
3e2b4f |
(tmp, series,) = tempfile.mkstemp(dir=self.ks_dir)
|
|
Benjamin Poirier |
600ead |
with open(series, mode="w") as f:
|
|
Benjamin Poirier |
535548 |
f.write(tests.support.format_series((
|
|
Benjamin Poirier |
535548 |
(None, (
|
|
Benjamin Poirier |
535548 |
"patches.suse/mainline-0.patch",
|
|
Benjamin Poirier |
535548 |
"patches.suse/net-0.patch",
|
|
Benjamin Poirier |
535548 |
)),
|
|
Benjamin Poirier |
535548 |
)))
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
subprocess.check_call([self.ss_path, "-c", series])
|
|
Benjamin Poirier |
600ead |
with open(series) as f:
|
|
Benjamin Poirier |
600ead |
content1 = f.read()
|
|
Benjamin Poirier |
535548 |
subprocess.check_call([self.ss_path, series])
|
|
Benjamin Poirier |
600ead |
with open(series) as f:
|
|
Benjamin Poirier |
600ead |
content2 = f.read()
|
|
Benjamin Poirier |
600ead |
self.assertEqual(content2, content1)
|
|
Benjamin Poirier |
960235 |
|
|
Benjamin Poirier |
960235 |
os.unlink(series)
|
|
Benjamin Poirier |
960235 |
|
|
Benjamin Poirier |
960235 |
|
|
Benjamin Poirier |
960235 |
def test_sort(self):
|
|
Benjamin Poirier |
960235 |
(tmp, series,) = tempfile.mkstemp(dir=self.ks_dir)
|
|
Benjamin Poirier |
600ead |
with open(series, mode="w") as f:
|
|
Benjamin Poirier |
600ead |
f.write(
|
|
Benjamin Poirier |
6a71e7 |
"""
|
|
Benjamin Poirier |
6a71e7 |
patches.suse/unsorted-before.patch
|
|
Benjamin Poirier |
6a71e7 |
|
|
Benjamin Poirier |
6a71e7 |
########################################################
|
|
Benjamin Poirier |
6a71e7 |
# sorted patches
|
|
Benjamin Poirier |
6a71e7 |
########################################################
|
|
Benjamin Poirier |
39e1be |
patches.suse/mainline-0.patch
|
|
Benjamin Poirier |
39e1be |
patches.suse/net-0.patch
|
|
Benjamin Poirier |
6a71e7 |
|
|
Benjamin Poirier |
6a71e7 |
# davem/net
|
|
Benjamin Poirier |
39e1be |
patches.suse/net-1.patch
|
|
Benjamin Poirier |
39e1be |
patches.suse/net-2.patch
|
|
Benjamin Poirier |
6a71e7 |
|
|
Benjamin Poirier |
6a71e7 |
# out-of-tree patches
|
|
Benjamin Poirier |
39e1be |
patches.suse/oot-0.patch
|
|
Benjamin Poirier |
39e1be |
patches.suse/oot-1.patch
|
|
Benjamin Poirier |
6a71e7 |
|
|
Benjamin Poirier |
6a71e7 |
########################################################
|
|
Benjamin Poirier |
6a71e7 |
# end of sorted patches
|
|
Michal Suchanek |
06a0c3 |
########################################################
|
|
Michal Suchanek |
06a0c3 |
|
|
Michal Suchanek |
06a0c3 |
patches.suse/unsorted-after.patch
|
|
Michal Suchanek |
06a0c3 |
""")
|
|
Michal Suchanek |
06a0c3 |
|
|
Michal Suchanek |
06a0c3 |
subprocess.check_call([self.ss_path, "-c", series])
|
|
Michal Suchanek |
06a0c3 |
with open(series) as f:
|
|
Michal Suchanek |
06a0c3 |
content1 = f.read()
|
|
Michal Suchanek |
06a0c3 |
subprocess.check_call([self.ss_path, series])
|
|
Michal Suchanek |
06a0c3 |
with open(series) as f:
|
|
Michal Suchanek |
06a0c3 |
content2 = f.read()
|
|
Michal Suchanek |
06a0c3 |
self.assertEqual(content2, content1)
|
|
Michal Suchanek |
06a0c3 |
|
|
Michal Suchanek |
06a0c3 |
os.unlink(series)
|
|
Michal Suchanek |
06a0c3 |
|
|
Michal Suchanek |
06a0c3 |
|
|
Michal Suchanek |
06a0c3 |
def test_sort_empty(self):
|
|
Michal Suchanek |
06a0c3 |
(tmp, series,) = tempfile.mkstemp(dir=self.ks_dir)
|
|
Michal Suchanek |
06a0c3 |
with open(series, mode="w") as f:
|
|
Michal Suchanek |
06a0c3 |
f.write(
|
|
Michal Suchanek |
06a0c3 |
"""
|
|
Michal Suchanek |
06a0c3 |
patches.suse/unsorted-before.patch
|
|
Michal Suchanek |
06a0c3 |
|
|
Michal Suchanek |
06a0c3 |
########################################################
|
|
Michal Suchanek |
06a0c3 |
# sorted patches
|
|
Michal Suchanek |
06a0c3 |
########################################################
|
|
Michal Suchanek |
06a0c3 |
|
|
Michal Suchanek |
06a0c3 |
########################################################
|
|
Michal Suchanek |
06a0c3 |
# end of sorted patches
|
|
Benjamin Poirier |
6a71e7 |
########################################################
|
|
Benjamin Poirier |
6a71e7 |
|
|
Benjamin Poirier |
6a71e7 |
patches.suse/unsorted-after.patch
|
|
Benjamin Poirier |
6a71e7 |
""")
|
|
Benjamin Poirier |
6a71e7 |
|
|
Benjamin Poirier |
535548 |
subprocess.check_call([self.ss_path, "-c", series])
|
|
Benjamin Poirier |
600ead |
with open(series) as f:
|
|
Benjamin Poirier |
600ead |
content1 = f.read()
|
|
Benjamin Poirier |
535548 |
subprocess.check_call([self.ss_path, series])
|
|
Benjamin Poirier |
600ead |
with open(series) as f:
|
|
Benjamin Poirier |
600ead |
content2 = f.read()
|
|
Benjamin Poirier |
600ead |
self.assertEqual(content2, content1)
|
|
Benjamin Poirier |
960235 |
|
|
Benjamin Poirier |
960235 |
os.unlink(series)
|
|
Benjamin Poirier |
6a71e7 |
|
|
Benjamin Poirier |
6a71e7 |
|
|
Benjamin Poirier |
535548 |
class TestFromPatch(unittest.TestCase):
|
|
Benjamin Poirier |
535548 |
"""
|
|
Benjamin Poirier |
535548 |
The naming of these tests stems from the following factors which determine
|
|
Benjamin Poirier |
535548 |
how a patch is sorted:
|
|
Benjamin Poirier |
535548 |
* commit found in index
|
|
Benjamin Poirier |
535548 |
* patch's series.conf current_head is indexed (ie. the local repo
|
|
Benjamin Poirier |
535548 |
fetches from that remote)
|
|
Benjamin Poirier |
535548 |
* patch appears to have moved downstream/didn't move/upstream
|
|
Benjamin Poirier |
535548 |
* patch's tag is good ("Git-repo:" == current_head.url)
|
|
Benjamin Poirier |
cb21f8 |
* patches may be moved upstream between subsystem sections
|
|
Benjamin Poirier |
535548 |
"""
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
def setUp(self):
|
|
Benjamin Poirier |
535548 |
self.maxDiff = None
|
|
Benjamin Poirier |
535548 |
self.ss_path = os.path.join(lib.libdir(), "series_sort.py")
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
os.environ["XDG_CACHE_HOME"] = tempfile.mkdtemp(prefix="gs_cache")
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
# setup stub linux repository
|
|
Benjamin Poirier |
535548 |
os.environ["LINUX_GIT"] = tempfile.mkdtemp(prefix="gs_repo")
|
|
Benjamin Poirier |
535548 |
self.repo = pygit2.init_repository(os.environ["LINUX_GIT"])
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
author = pygit2.Signature("Alice Author", "alice@authors.tld", time=0,
|
|
Benjamin Poirier |
535548 |
offset=0)
|
|
Benjamin Poirier |
535548 |
committer = pygit2.Signature("Cecil Committer", "cecil@committers.tld",
|
|
Benjamin Poirier |
535548 |
time=0, offset=0)
|
|
Benjamin Poirier |
535548 |
tree = self.repo.TreeBuilder()
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
k_org_canon_prefix = "git://git.kernel.org/pub/scm/linux/kernel/git/"
|
|
Benjamin Poirier |
535548 |
self.mainline_repo = k_org_canon_prefix + "torvalds/linux.git"
|
|
Benjamin Poirier |
535548 |
self.repo.remotes.create("origin", self.mainline_repo)
|
|
Benjamin Poirier |
535548 |
self.net_next_repo = k_org_canon_prefix + "davem/net-next.git"
|
|
Benjamin Poirier |
535548 |
self.repo.remotes.create("net-next", self.net_next_repo)
|
|
Benjamin Poirier |
535548 |
self.net_repo = k_org_canon_prefix + "davem/net.git"
|
|
Benjamin Poirier |
535548 |
self.rdma_repo = k_org_canon_prefix + "rdma/rdma.git"
|
|
Benjamin Poirier |
535548 |
self.repo.remotes.create("rdma", self.rdma_repo)
|
|
Benjamin Poirier |
535548 |
self.dledford_repo = k_org_canon_prefix + "dledford/rdma.git"
|
|
Benjamin Poirier |
535548 |
self.repo.remotes.create("dledford/rdma", self.dledford_repo)
|
|
Michal Suchanek |
de2dc4 |
self.nf_repo = k_org_canon_prefix + "netfilter/nf.git"
|
|
Michal Suchanek |
de2dc4 |
self.repo.remotes.create("netfilter/nf", self.nf_repo)
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
self.commits = {}
|
|
Benjamin Poirier |
535548 |
self.commits["mainline 0"] = self.repo.create_commit(
|
|
Benjamin Poirier |
535548 |
"refs/heads/mainline",
|
|
Benjamin Poirier |
535548 |
author,
|
|
Benjamin Poirier |
535548 |
committer,
|
|
Benjamin Poirier |
535548 |
"mainline 0\n\nlog",
|
|
Benjamin Poirier |
535548 |
tree.write(),
|
|
Benjamin Poirier |
535548 |
[]
|
|
Benjamin Poirier |
535548 |
)
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
self.commits["net-next 0"] = self.repo.create_commit(
|
|
Benjamin Poirier |
535548 |
"refs/heads/net-next",
|
|
Benjamin Poirier |
535548 |
author,
|
|
Benjamin Poirier |
535548 |
committer,
|
|
Benjamin Poirier |
535548 |
"net-next 0\n\nlog",
|
|
Benjamin Poirier |
535548 |
tree.write(),
|
|
Benjamin Poirier |
535548 |
[self.commits["mainline 0"]]
|
|
Benjamin Poirier |
535548 |
)
|
|
Benjamin Poirier |
535548 |
self.repo.references.create("refs/remotes/net-next/master",
|
|
Benjamin Poirier |
535548 |
self.commits["net-next 0"])
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
self.commits["other 0"] = self.repo.create_commit(
|
|
Benjamin Poirier |
535548 |
"refs/heads/other",
|
|
Benjamin Poirier |
535548 |
author,
|
|
Benjamin Poirier |
535548 |
committer,
|
|
Benjamin Poirier |
535548 |
"other 0\n\nlog",
|
|
Benjamin Poirier |
535548 |
tree.write(),
|
|
Benjamin Poirier |
535548 |
[self.commits["mainline 0"]]
|
|
Benjamin Poirier |
535548 |
)
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
self.commits["rdma for-next 0"] = self.repo.create_commit(
|
|
Benjamin Poirier |
535548 |
"refs/heads/rdma-next",
|
|
Benjamin Poirier |
535548 |
author,
|
|
Benjamin Poirier |
535548 |
committer,
|
|
Benjamin Poirier |
535548 |
"rdma for-next 0\n\nlog",
|
|
Benjamin Poirier |
535548 |
tree.write(),
|
|
Benjamin Poirier |
535548 |
[self.commits["mainline 0"]]
|
|
Benjamin Poirier |
535548 |
)
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
self.commits["mainline 1"] = self.repo.create_commit(
|
|
Benjamin Poirier |
535548 |
"refs/heads/mainline",
|
|
Benjamin Poirier |
535548 |
author,
|
|
Benjamin Poirier |
535548 |
committer,
|
|
Benjamin Poirier |
535548 |
"mainline 1, merge rdma\n\nlog",
|
|
Benjamin Poirier |
535548 |
tree.write(),
|
|
Benjamin Poirier |
535548 |
[self.commits["mainline 0"], self.commits["rdma for-next 0"]]
|
|
Benjamin Poirier |
535548 |
)
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
self.commits["dledford/rdma k.o/for-next 0"] = self.repo.create_commit(
|
|
Benjamin Poirier |
535548 |
"refs/heads/dledford-next",
|
|
Benjamin Poirier |
535548 |
author,
|
|
Benjamin Poirier |
535548 |
committer,
|
|
Benjamin Poirier |
535548 |
"dledford/rdma k.o/for-next 0\n\nlog",
|
|
Benjamin Poirier |
535548 |
tree.write(),
|
|
Benjamin Poirier |
535548 |
[self.commits["rdma for-next 0"]]
|
|
Benjamin Poirier |
535548 |
)
|
|
Benjamin Poirier |
535548 |
self.repo.references.create(
|
|
Benjamin Poirier |
535548 |
"refs/remotes/dledford/rdma/k.o/for-next",
|
|
Benjamin Poirier |
535548 |
self.commits["dledford/rdma k.o/for-next 0"])
|
|
Benjamin Poirier |
535548 |
self.repo.references.create("refs/remotes/rdma/for-next",
|
|
Benjamin Poirier |
535548 |
self.commits["dledford/rdma k.o/for-next 0"])
|
|
Benjamin Poirier |
535548 |
self.repo.references.create("refs/remotes/rdma/for-rc",
|
|
Benjamin Poirier |
535548 |
self.commits["dledford/rdma k.o/for-next 0"])
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
self.commits["net 0"] = self.repo.create_commit(
|
|
Benjamin Poirier |
535548 |
"refs/heads/net",
|
|
Benjamin Poirier |
535548 |
author,
|
|
Benjamin Poirier |
535548 |
committer,
|
|
Benjamin Poirier |
535548 |
"net 0\n\nlog",
|
|
Benjamin Poirier |
535548 |
tree.write(),
|
|
Benjamin Poirier |
535548 |
[self.commits["mainline 0"]]
|
|
Benjamin Poirier |
535548 |
)
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
self.commits["nf 0"] = self.repo.create_commit(
|
|
Benjamin Poirier |
535548 |
"refs/heads/nf",
|
|
Benjamin Poirier |
535548 |
author,
|
|
Benjamin Poirier |
535548 |
committer,
|
|
Benjamin Poirier |
535548 |
"nf 0\n\nlog",
|
|
Benjamin Poirier |
535548 |
tree.write(),
|
|
Benjamin Poirier |
535548 |
[self.commits["mainline 0"]]
|
|
Benjamin Poirier |
535548 |
)
|
|
Michal Suchanek |
de2dc4 |
self.repo.references.create("refs/remotes/netfilter/nf/master",
|
|
Benjamin Poirier |
535548 |
self.commits["nf 0"])
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
self.commits["mainline 2"] = self.repo.create_commit(
|
|
Benjamin Poirier |
535548 |
"refs/heads/mainline",
|
|
Benjamin Poirier |
535548 |
author,
|
|
Benjamin Poirier |
535548 |
committer,
|
|
Benjamin Poirier |
535548 |
"mainline 2, merge net\n\nlog",
|
|
Benjamin Poirier |
535548 |
tree.write(),
|
|
Benjamin Poirier |
535548 |
[self.commits["mainline 1"], self.commits["net 0"]]
|
|
Benjamin Poirier |
535548 |
)
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
self.commits["net 1"] = self.repo.create_commit(
|
|
Benjamin Poirier |
535548 |
"refs/heads/net",
|
|
Benjamin Poirier |
535548 |
author,
|
|
Benjamin Poirier |
535548 |
committer,
|
|
Benjamin Poirier |
535548 |
"net 1\n\nlog",
|
|
Benjamin Poirier |
535548 |
tree.write(),
|
|
Benjamin Poirier |
535548 |
[self.commits["net 0"]]
|
|
Benjamin Poirier |
535548 |
)
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
tree.insert("README",
|
|
Benjamin Poirier |
535548 |
self.repo.create_blob("NAME = v4.1 release\n"),
|
|
Benjamin Poirier |
535548 |
pygit2.GIT_FILEMODE_BLOB)
|
|
Benjamin Poirier |
535548 |
self.commits["v4.1"] = self.repo.create_commit(
|
|
Benjamin Poirier |
535548 |
"refs/heads/mainline",
|
|
Benjamin Poirier |
535548 |
author,
|
|
Benjamin Poirier |
535548 |
committer,
|
|
Benjamin Poirier |
535548 |
"Linux 4.1",
|
|
Benjamin Poirier |
535548 |
tree.write(),
|
|
Benjamin Poirier |
535548 |
[self.commits["mainline 2"]]
|
|
Benjamin Poirier |
535548 |
)
|
|
Benjamin Poirier |
535548 |
self.repo.references.create("refs/remotes/origin/master",
|
|
Benjamin Poirier |
535548 |
self.commits["v4.1"])
|
|
Benjamin Poirier |
535548 |
self.repo.create_tag("v4.1", self.commits["v4.1"], pygit2.GIT_REF_OID,
|
|
Benjamin Poirier |
535548 |
committer, "Linux 4.1")
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
self.repo.checkout("refs/heads/mainline")
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
# setup stub kernel-source content
|
|
Benjamin Poirier |
535548 |
self.ks_dir = tempfile.mkdtemp(prefix="gs_ks")
|
|
Benjamin Poirier |
535548 |
os.chdir(self.ks_dir)
|
|
Benjamin Poirier |
535548 |
self.patch_dir = "patches.suse"
|
|
Benjamin Poirier |
535548 |
os.mkdir(self.patch_dir)
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
def tearDown(self):
|
|
Benjamin Poirier |
535548 |
shutil.rmtree(os.environ["XDG_CACHE_HOME"])
|
|
Benjamin Poirier |
535548 |
shutil.rmtree(os.environ["LINUX_GIT"])
|
|
Benjamin Poirier |
535548 |
shutil.rmtree(self.ks_dir)
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
def check_tag(self, patch, tag, value):
|
|
Benjamin Poirier |
535548 |
with open(patch) as f:
|
|
Benjamin Poirier |
535548 |
for line in f:
|
|
Benjamin Poirier |
535548 |
if line.startswith(tag):
|
|
Benjamin Poirier |
535548 |
self.assertEqual(line[len(tag):-1], value)
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
cb21f8 |
def _transform_arg(move_upstream):
|
|
Benjamin Poirier |
cb21f8 |
if move_upstream is None:
|
|
Benjamin Poirier |
cb21f8 |
return [[], ["-u"]]
|
|
Benjamin Poirier |
cb21f8 |
elif move_upstream:
|
|
Benjamin Poirier |
cb21f8 |
return [["-u"]]
|
|
Benjamin Poirier |
535548 |
else:
|
|
Benjamin Poirier |
cb21f8 |
return [[]]
|
|
Benjamin Poirier |
cb21f8 |
|
|
Benjamin Poirier |
cb21f8 |
|
|
Benjamin Poirier |
cb21f8 |
def check_failure(self, msg, move_upstream=None):
|
|
Benjamin Poirier |
cb21f8 |
for extra_arg in self.__class__._transform_arg(move_upstream):
|
|
Benjamin Poirier |
cb21f8 |
try:
|
|
Benjamin Poirier |
cb21f8 |
subprocess.check_output(
|
|
Benjamin Poirier |
cb21f8 |
[self.ss_path] + extra_arg + ["-c", "series.conf"],
|
|
Benjamin Poirier |
cb21f8 |
stderr=subprocess.STDOUT)
|
|
Benjamin Poirier |
cb21f8 |
except subprocess.CalledProcessError as err:
|
|
Benjamin Poirier |
cb21f8 |
self.assertEqual(err.returncode, 1)
|
|
Benjamin Poirier |
cb21f8 |
self.assertTrue(err.output.decode(), msg)
|
|
Benjamin Poirier |
cb21f8 |
else:
|
|
Benjamin Poirier |
cb21f8 |
self.assertTrue(False)
|
|
Benjamin Poirier |
cb21f8 |
|
|
Benjamin Poirier |
cb21f8 |
try:
|
|
Benjamin Poirier |
cb21f8 |
subprocess.check_output(
|
|
Benjamin Poirier |
cb21f8 |
[self.ss_path] + extra_arg + ["series.conf"],
|
|
Benjamin Poirier |
cb21f8 |
stderr=subprocess.STDOUT)
|
|
Benjamin Poirier |
cb21f8 |
except subprocess.CalledProcessError as err:
|
|
Benjamin Poirier |
cb21f8 |
self.assertEqual(err.returncode, 1)
|
|
Benjamin Poirier |
cb21f8 |
self.assertEqual(err.output.decode(), msg)
|
|
Benjamin Poirier |
cb21f8 |
else:
|
|
Benjamin Poirier |
cb21f8 |
self.assertTrue(False)
|
|
Benjamin Poirier |
cb21f8 |
|
|
Benjamin Poirier |
cb21f8 |
|
|
Benjamin Poirier |
cb21f8 |
def check_constant(self, name, move_upstream=None):
|
|
Benjamin Poirier |
cb21f8 |
for extra_arg in self.__class__._transform_arg(move_upstream):
|
|
Benjamin Poirier |
cb21f8 |
subprocess.check_call(
|
|
Benjamin Poirier |
cb21f8 |
[self.ss_path] + extra_arg + ["-c", "series.conf"])
|
|
Benjamin Poirier |
cb21f8 |
|
|
Benjamin Poirier |
cb21f8 |
with open("series.conf") as f:
|
|
Benjamin Poirier |
cb21f8 |
series1 = f.read()
|
|
Benjamin Poirier |
cb21f8 |
with open(name) as f:
|
|
Benjamin Poirier |
cb21f8 |
patch1 = f.read()
|
|
Benjamin Poirier |
cb21f8 |
subprocess.check_call([self.ss_path] + extra_arg + ["series.conf"])
|
|
Benjamin Poirier |
cb21f8 |
with open("series.conf") as f:
|
|
Benjamin Poirier |
cb21f8 |
series2 = f.read()
|
|
Benjamin Poirier |
cb21f8 |
with open(name) as f:
|
|
Benjamin Poirier |
cb21f8 |
patch2 = f.read()
|
|
Benjamin Poirier |
cb21f8 |
self.assertEqual(series2, series1)
|
|
Benjamin Poirier |
cb21f8 |
self.assertEqual(patch2, patch1)
|
|
Benjamin Poirier |
cb21f8 |
|
|
Benjamin Poirier |
cb21f8 |
|
|
Benjamin Poirier |
cb21f8 |
def check_outdated(self, name, msg, series2, move_upstream=None):
|
|
Benjamin Poirier |
cb21f8 |
(tmp, series,) = tempfile.mkstemp(dir=self.ks_dir)
|
|
Benjamin Poirier |
cb21f8 |
(tmp, patch,) = tempfile.mkstemp(dir=self.ks_dir)
|
|
Benjamin Poirier |
cb21f8 |
shutil.copy(name, patch)
|
|
Benjamin Poirier |
cb21f8 |
|
|
Benjamin Poirier |
cb21f8 |
for extra_arg in self.__class__._transform_arg(move_upstream):
|
|
Benjamin Poirier |
cb21f8 |
shutil.copy(patch, name)
|
|
Benjamin Poirier |
cb21f8 |
try:
|
|
Benjamin Poirier |
cb21f8 |
subprocess.check_output(
|
|
Benjamin Poirier |
cb21f8 |
[self.ss_path] + extra_arg + ["-c", "series.conf"],
|
|
Benjamin Poirier |
cb21f8 |
stderr=subprocess.STDOUT)
|
|
Benjamin Poirier |
cb21f8 |
except subprocess.CalledProcessError as err:
|
|
Benjamin Poirier |
cb21f8 |
self.assertEqual(err.returncode, 2)
|
|
Benjamin Poirier |
cb21f8 |
self.assertEqual(err.output.decode(), msg)
|
|
Benjamin Poirier |
cb21f8 |
else:
|
|
Benjamin Poirier |
cb21f8 |
self.assertTrue(False)
|
|
Benjamin Poirier |
cb21f8 |
|
|
Benjamin Poirier |
cb21f8 |
shutil.copy("series.conf", series)
|
|
Benjamin Poirier |
cb21f8 |
subprocess.check_call([self.ss_path] + extra_arg + [series])
|
|
Benjamin Poirier |
cb21f8 |
with open(series) as f:
|
|
Benjamin Poirier |
cb21f8 |
content2 = f.read()
|
|
Benjamin Poirier |
cb21f8 |
self.assertEqual(content2, series2)
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
cb21f8 |
os.unlink(series)
|
|
Benjamin Poirier |
cb21f8 |
os.unlink(patch)
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
def test_found_indexed_downstream_good(self):
|
|
Benjamin Poirier |
535548 |
"""
|
|
Benjamin Poirier |
535548 |
patch sorted in mainline, commit found in net-next
|
|
Benjamin Poirier |
535548 |
error, possible causes:
|
|
Benjamin Poirier |
535548 |
mainline repo is outdated
|
|
Benjamin Poirier |
535548 |
because it was not found in mainline index/appears to have
|
|
Benjamin Poirier |
535548 |
moved downstream
|
|
Benjamin Poirier |
535548 |
order in remotes is wrong
|
|
Benjamin Poirier |
535548 |
because it appears to have moved downstream
|
|
Benjamin Poirier |
535548 |
section and Git-repo are wrong
|
|
Benjamin Poirier |
535548 |
because it appears to have moved downstream and tag is good
|
|
Benjamin Poirier |
535548 |
"""
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
name = tests.support.format_patch(
|
|
Benjamin Poirier |
535548 |
self.repo.get(self.commits["net-next 0"]), mainline="v0",
|
|
Benjamin Poirier |
535548 |
directory=self.patch_dir)
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
with open("series.conf", mode="w") as f:
|
|
Benjamin Poirier |
535548 |
f.write(tests.support.format_series((
|
|
Benjamin Poirier |
535548 |
(None, (
|
|
Benjamin Poirier |
535548 |
name,
|
|
Benjamin Poirier |
535548 |
)),
|
|
Benjamin Poirier |
535548 |
)))
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
self.check_failure(
|
|
Benjamin Poirier |
535548 |
"Error: There is a problem with patch \"%s\". The patch is in the wrong section of series.conf or the remote fetching from \"torvalds/linux\" needs to be fetched or the relative order of \"davem/net-next\" and \"torvalds/linux\" in \"remotes\" is incorrect. Manual intervention is required.\n" % (name,))
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
def test_found_indexed_downstream_bad(self):
|
|
Benjamin Poirier |
535548 |
"""
|
|
Benjamin Poirier |
535548 |
patch sorted in mainline, commit found in net-next
|
|
Benjamin Poirier |
535548 |
error, possible causes:
|
|
Benjamin Poirier |
535548 |
mainline repo is outdated
|
|
Benjamin Poirier |
535548 |
because it was not found in mainline index/appears to have
|
|
Benjamin Poirier |
535548 |
moved downstream
|
|
Benjamin Poirier |
535548 |
section is wrong or Git-repo is wrong
|
|
Benjamin Poirier |
535548 |
because it appears to have moved downstream and the two
|
|
Benjamin Poirier |
535548 |
differ
|
|
Benjamin Poirier |
535548 |
"""
|
|
Benjamin Poirier |
535548 |
name = tests.support.format_patch(
|
|
Benjamin Poirier |
535548 |
self.repo.get(self.commits["net-next 0"]), repo=self.net_next_repo,
|
|
Benjamin Poirier |
535548 |
directory=self.patch_dir)
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
with open("series.conf", mode="w") as f:
|
|
Benjamin Poirier |
535548 |
f.write(tests.support.format_series((
|
|
Benjamin Poirier |
535548 |
(None, (
|
|
Benjamin Poirier |
535548 |
name,
|
|
Benjamin Poirier |
535548 |
)),
|
|
Benjamin Poirier |
535548 |
)))
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
self.check_failure(
|
|
Benjamin Poirier |
535548 |
"Error: There is a problem with patch \"%s\". The patch is in the wrong section of series.conf or the remote fetching from \"torvalds/linux\" needs to be fetched. Manual intervention is required.\n" % (name,))
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
def test_found_indexed_nomove_good(self):
|
|
Benjamin Poirier |
535548 |
"""
|
|
Benjamin Poirier |
535548 |
patch sorted in net-next
|
|
Benjamin Poirier |
535548 |
stays there
|
|
Benjamin Poirier |
535548 |
"""
|
|
Benjamin Poirier |
535548 |
name = tests.support.format_patch(
|
|
Benjamin Poirier |
535548 |
self.repo.get(self.commits["net-next 0"]), repo=self.net_next_repo,
|
|
Benjamin Poirier |
535548 |
directory=self.patch_dir)
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
with open("series.conf", mode="w") as f:
|
|
Benjamin Poirier |
535548 |
f.write(tests.support.format_series((
|
|
Benjamin Poirier |
535548 |
("davem/net-next", (
|
|
Benjamin Poirier |
535548 |
name,
|
|
Benjamin Poirier |
535548 |
)),
|
|
Benjamin Poirier |
535548 |
)))
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
self.check_constant(name)
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
def test_found_indexed_nomove_bad(self):
|
|
Benjamin Poirier |
535548 |
"""
|
|
Benjamin Poirier |
535548 |
patch sorted in net-next, tagged with mainline
|
|
Benjamin Poirier |
535548 |
stays there
|
|
Benjamin Poirier |
535548 |
update tag
|
|
Benjamin Poirier |
535548 |
"""
|
|
Benjamin Poirier |
535548 |
name = tests.support.format_patch(
|
|
Benjamin Poirier |
535548 |
self.repo.get(self.commits["net-next 0"]), repo=self.net_repo,
|
|
Benjamin Poirier |
535548 |
directory=self.patch_dir)
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
series1 = tests.support.format_series((
|
|
Benjamin Poirier |
535548 |
("davem/net-next", (
|
|
Benjamin Poirier |
535548 |
name,
|
|
Benjamin Poirier |
535548 |
)),
|
|
Benjamin Poirier |
535548 |
))
|
|
Benjamin Poirier |
535548 |
with open("series.conf", mode="w") as f:
|
|
Benjamin Poirier |
535548 |
f.write(series1)
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
cb21f8 |
self.check_outdated(name, "Git-repo tags are outdated.\n", series1)
|
|
Benjamin Poirier |
535548 |
self.check_tag(name, "Git-repo: ", self.net_next_repo)
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
cb21f8 |
def prepare_found_indexed_upstream_good(self):
|
|
Benjamin Poirier |
535548 |
name = tests.support.format_patch(
|
|
Benjamin Poirier |
535548 |
self.repo.get(self.commits["rdma for-next 0"]), repo=self.rdma_repo,
|
|
Benjamin Poirier |
535548 |
directory=self.patch_dir)
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
with open("series.conf", mode="w") as f:
|
|
Benjamin Poirier |
535548 |
f.write(tests.support.format_series((
|
|
Benjamin Poirier |
535548 |
("rdma/rdma for-next", (
|
|
Benjamin Poirier |
535548 |
name,
|
|
Benjamin Poirier |
535548 |
)),
|
|
Benjamin Poirier |
535548 |
)))
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
series2 = tests.support.format_series((
|
|
Benjamin Poirier |
535548 |
(None, (
|
|
Benjamin Poirier |
535548 |
name,
|
|
Benjamin Poirier |
535548 |
)),
|
|
Benjamin Poirier |
535548 |
))
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
cb21f8 |
return name, series2
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
cb21f8 |
def test_found_indexed_upstream_good_moveupstream(self):
|
|
Benjamin Poirier |
535548 |
"""
|
|
Benjamin Poirier |
cb21f8 |
patch sorted in rdma for-next, commit found in mainline
|
|
Benjamin Poirier |
cb21f8 |
moves to mainline
|
|
Benjamin Poirier |
cb21f8 |
tag is updated
|
|
Benjamin Poirier |
cb21f8 |
"""
|
|
Benjamin Poirier |
cb21f8 |
name, series2 = self.prepare_found_indexed_upstream_good()
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
cb21f8 |
self.check_outdated(name,
|
|
Benjamin Poirier |
cb21f8 |
"Input is not sorted.\nGit-repo tags are outdated.\n", series2,
|
|
Benjamin Poirier |
cb21f8 |
True)
|
|
Benjamin Poirier |
cb21f8 |
self.check_tag(name, "Git-repo: ", self.mainline_repo)
|
|
Benjamin Poirier |
cb21f8 |
|
|
Benjamin Poirier |
cb21f8 |
|
|
Benjamin Poirier |
cb21f8 |
def test_found_indexed_upstream_good_nomoveupstream(self):
|
|
Benjamin Poirier |
535548 |
"""
|
|
Benjamin Poirier |
cb21f8 |
patch sorted in rdma for-next, commit found in mainline
|
|
Benjamin Poirier |
cb21f8 |
stays there
|
|
Benjamin Poirier |
cb21f8 |
"""
|
|
Benjamin Poirier |
cb21f8 |
name, series2 = self.prepare_found_indexed_upstream_good()
|
|
Benjamin Poirier |
cb21f8 |
|
|
Benjamin Poirier |
cb21f8 |
self.check_constant(name, False)
|
|
Benjamin Poirier |
cb21f8 |
|
|
Benjamin Poirier |
cb21f8 |
|
|
Benjamin Poirier |
cb21f8 |
def prepare_found_indexed_upstream_bad2(self):
|
|
Benjamin Poirier |
535548 |
alt_repo = self.rdma_repo.replace("git://", "https://")
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
name = tests.support.format_patch(
|
|
Benjamin Poirier |
535548 |
self.repo.get(self.commits["dledford/rdma k.o/for-next 0"]),
|
|
Benjamin Poirier |
535548 |
repo=alt_repo, directory=self.patch_dir)
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
with open("series.conf", mode="w") as f:
|
|
Benjamin Poirier |
535548 |
f.write(tests.support.format_series((
|
|
Benjamin Poirier |
535548 |
("dledford/rdma k.o/for-next", (
|
|
Benjamin Poirier |
535548 |
name,
|
|
Benjamin Poirier |
535548 |
)),
|
|
Benjamin Poirier |
535548 |
)))
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
series2 = tests.support.format_series((
|
|
Benjamin Poirier |
535548 |
("rdma/rdma for-rc", (
|
|
Benjamin Poirier |
535548 |
name,
|
|
Benjamin Poirier |
535548 |
)),
|
|
Benjamin Poirier |
535548 |
))
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
cb21f8 |
return name, series2, alt_repo
|
|
Benjamin Poirier |
cb21f8 |
|
|
Benjamin Poirier |
cb21f8 |
|
|
Benjamin Poirier |
cb21f8 |
def test_found_indexed_upstream_bad2_moveupstream(self):
|
|
Benjamin Poirier |
cb21f8 |
"""
|
|
Benjamin Poirier |
cb21f8 |
patch sorted in dledford/rdma k.o/for-next, tagged with rdma/rdma,
|
|
Benjamin Poirier |
cb21f8 |
commit found in rdma/rdma for-rc
|
|
Benjamin Poirier |
cb21f8 |
moves to rdma/rdma for-rc
|
|
Benjamin Poirier |
cb21f8 |
tag is NOT updated
|
|
Benjamin Poirier |
cb21f8 |
|
|
Benjamin Poirier |
cb21f8 |
This is a special case. See the log of commit 0ac6457e94e8
|
|
Benjamin Poirier |
cb21f8 |
("scripts/git_sort/lib.py: Rewrite Git-repo only if it differs.")
|
|
Benjamin Poirier |
cb21f8 |
"""
|
|
Benjamin Poirier |
cb21f8 |
name, series2, alt_repo = self.prepare_found_indexed_upstream_bad2()
|
|
Benjamin Poirier |
cb21f8 |
|
|
Benjamin Poirier |
cb21f8 |
self.check_outdated(name, "Input is not sorted.\n", series2, True)
|
|
Benjamin Poirier |
535548 |
self.check_tag(name, "Git-repo: ", alt_repo)
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
cb21f8 |
def test_found_indexed_upstream_bad2_nomoveupstream(self):
|
|
Benjamin Poirier |
cb21f8 |
"""
|
|
Benjamin Poirier |
cb21f8 |
patch sorted in dledford/rdma k.o/for-next, tagged with rdma/rdma,
|
|
Benjamin Poirier |
cb21f8 |
commit found in rdma/rdma for-rc
|
|
Benjamin Poirier |
cb21f8 |
error, possible causes:
|
|
Benjamin Poirier |
cb21f8 |
section is wrong or Git-repo is wrong
|
|
Benjamin Poirier |
cb21f8 |
because they differ and there is no way to know which head
|
|
Benjamin Poirier |
cb21f8 |
the user intended.
|
|
Benjamin Poirier |
cb21f8 |
"""
|
|
Benjamin Poirier |
cb21f8 |
name, series2, alt_repo = self.prepare_found_indexed_upstream_bad2()
|
|
Benjamin Poirier |
cb21f8 |
|
|
Benjamin Poirier |
cb21f8 |
self.check_failure(
|
|
Benjamin Poirier |
cb21f8 |
"Error: There is a problem with patch \"%s\". The Git-repo tag is incorrect or the patch is in the wrong section of series.conf. Manual intervention is required.\n" % (name,), False)
|
|
Benjamin Poirier |
cb21f8 |
|
|
Benjamin Poirier |
cb21f8 |
|
|
Benjamin Poirier |
535548 |
def test_found_notindexed_downstream_good(self):
|
|
Benjamin Poirier |
535548 |
"""
|
|
Benjamin Poirier |
535548 |
patch sorted in net (not fetched), commit found in net-next
|
|
Benjamin Poirier |
535548 |
stays there
|
|
Benjamin Poirier |
535548 |
"""
|
|
Benjamin Poirier |
535548 |
name = tests.support.format_patch(
|
|
Benjamin Poirier |
535548 |
self.repo.get(self.commits["net-next 0"]), repo=self.net_repo,
|
|
Benjamin Poirier |
535548 |
directory=self.patch_dir)
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
with open("series.conf", mode="w") as f:
|
|
Benjamin Poirier |
535548 |
f.write(tests.support.format_series((
|
|
Benjamin Poirier |
535548 |
("davem/net", (
|
|
Benjamin Poirier |
535548 |
name,
|
|
Benjamin Poirier |
535548 |
)),
|
|
Benjamin Poirier |
535548 |
)))
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
self.check_constant(name)
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
def test_found_notindexed_downstream_bad(self):
|
|
Benjamin Poirier |
535548 |
"""
|
|
Benjamin Poirier |
535548 |
patch sorted in net (not fetched), commit found in net-next,
|
|
Benjamin Poirier |
535548 |
git-repo tag is bad
|
|
Benjamin Poirier |
535548 |
error, possible causes:
|
|
Benjamin Poirier |
535548 |
section is wrong or Git-repo is wrong
|
|
Benjamin Poirier |
535548 |
because they differ and there is no (usual) scenario where
|
|
Benjamin Poirier |
535548 |
commits move downstream
|
|
Benjamin Poirier |
535548 |
"""
|
|
Benjamin Poirier |
535548 |
name = tests.support.format_patch(
|
|
Benjamin Poirier |
535548 |
self.repo.get(self.commits["net-next 0"]), repo=self.rdma_repo,
|
|
Benjamin Poirier |
535548 |
directory=self.patch_dir)
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
with open("series.conf", mode="w") as f:
|
|
Benjamin Poirier |
535548 |
f.write(tests.support.format_series((
|
|
Benjamin Poirier |
535548 |
("davem/net", (
|
|
Benjamin Poirier |
535548 |
name,
|
|
Benjamin Poirier |
535548 |
)),
|
|
Benjamin Poirier |
535548 |
)))
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
self.check_failure(
|
|
Benjamin Poirier |
535548 |
"Error: There is a problem with patch \"%s\". The Git-repo tag is incorrect or the patch is in the wrong section of series.conf. Manual intervention is required.\n" % (name,))
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
# test_found_notindexed_nomove_NA()
|
|
Benjamin Poirier |
535548 |
# cannot be tested (without stubbing some code to return invalid data)
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
cb21f8 |
def prepare_found_notindexed_upstream_good(self):
|
|
Benjamin Poirier |
535548 |
name = tests.support.format_patch(
|
|
Benjamin Poirier |
535548 |
self.repo.get(self.commits["net 0"]), repo=self.net_repo,
|
|
Benjamin Poirier |
535548 |
directory=self.patch_dir)
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
with open("series.conf", mode="w") as f:
|
|
Benjamin Poirier |
535548 |
f.write(tests.support.format_series((
|
|
Benjamin Poirier |
535548 |
("davem/net", (
|
|
Benjamin Poirier |
535548 |
name,
|
|
Benjamin Poirier |
535548 |
)),
|
|
Benjamin Poirier |
535548 |
)))
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
series2 = tests.support.format_series((
|
|
Benjamin Poirier |
535548 |
(None, (
|
|
Benjamin Poirier |
535548 |
name,
|
|
Benjamin Poirier |
535548 |
)),
|
|
Benjamin Poirier |
535548 |
))
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
cb21f8 |
return name, series2
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
a59701 |
@staticmethod
|
|
Benjamin Poirier |
a59701 |
def filter_out_tags(name):
|
|
Benjamin Poirier |
a59701 |
with open(name) as f:
|
|
Benjamin Poirier |
a59701 |
result = [line
|
|
Benjamin Poirier |
a59701 |
for line in f
|
|
Benjamin Poirier |
a59701 |
if not line.startswith(("Git-repo", "Patch-mainline",))]
|
|
Benjamin Poirier |
a59701 |
|
|
Benjamin Poirier |
a59701 |
return result
|
|
Benjamin Poirier |
a59701 |
|
|
Benjamin Poirier |
a59701 |
|
|
Benjamin Poirier |
cb21f8 |
def test_found_notindexed_upstream_good_moveupstream(self):
|
|
Benjamin Poirier |
535548 |
"""
|
|
Benjamin Poirier |
cb21f8 |
patch sorted in net (not fetched), commit found in mainline
|
|
Benjamin Poirier |
cb21f8 |
moves to mainline
|
|
Benjamin Poirier |
cb21f8 |
tag is updated
|
|
Benjamin Poirier |
cb21f8 |
"""
|
|
Benjamin Poirier |
cb21f8 |
name, series2 = self.prepare_found_notindexed_upstream_good()
|
|
Benjamin Poirier |
a59701 |
before = self.filter_out_tags(name)
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
cb21f8 |
self.check_outdated(name,
|
|
Benjamin Poirier |
cb21f8 |
"Input is not sorted.\nGit-repo tags are outdated.\n", series2,
|
|
Benjamin Poirier |
cb21f8 |
True)
|
|
Benjamin Poirier |
cb21f8 |
self.check_tag(name, "Git-repo: ", self.mainline_repo)
|
|
Benjamin Poirier |
cb21f8 |
|
|
Benjamin Poirier |
a59701 |
# check that only the expected tags changed
|
|
Benjamin Poirier |
a59701 |
after = self.filter_out_tags(name)
|
|
Benjamin Poirier |
a59701 |
self.assertEqual(before, after)
|
|
Benjamin Poirier |
a59701 |
|
|
Benjamin Poirier |
cb21f8 |
|
|
Benjamin Poirier |
cb21f8 |
def test_found_notindexed_upstream_good_nomoveupstream(self):
|
|
Benjamin Poirier |
535548 |
"""
|
|
Benjamin Poirier |
cb21f8 |
patch sorted in net (not fetched), commit found in mainline
|
|
Benjamin Poirier |
cb21f8 |
stays there
|
|
Benjamin Poirier |
cb21f8 |
"""
|
|
Benjamin Poirier |
cb21f8 |
name, series2 = self.prepare_found_notindexed_upstream_good()
|
|
Benjamin Poirier |
cb21f8 |
|
|
Benjamin Poirier |
cb21f8 |
self.check_constant(name, False)
|
|
Benjamin Poirier |
cb21f8 |
|
|
Benjamin Poirier |
cb21f8 |
def prepare_found_notindexed_upstream_bad2(self):
|
|
Benjamin Poirier |
535548 |
alt_repo = self.nf_repo.replace("git://", "https://")
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
name = tests.support.format_patch(
|
|
Benjamin Poirier |
535548 |
self.repo.get(self.commits["nf 0"]), repo=alt_repo,
|
|
Benjamin Poirier |
535548 |
directory=self.patch_dir)
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
with open("series.conf", mode="w") as f:
|
|
Benjamin Poirier |
535548 |
f.write(tests.support.format_series((
|
|
Michal Suchanek |
de2dc4 |
("netfilter/nf-next", (
|
|
Benjamin Poirier |
535548 |
name,
|
|
Benjamin Poirier |
535548 |
)),
|
|
Benjamin Poirier |
535548 |
)))
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
series2 = tests.support.format_series((
|
|
Michal Suchanek |
de2dc4 |
("netfilter/nf", (
|
|
Benjamin Poirier |
535548 |
name,
|
|
Benjamin Poirier |
535548 |
)),
|
|
Benjamin Poirier |
535548 |
))
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
cb21f8 |
return name, series2, alt_repo
|
|
Benjamin Poirier |
cb21f8 |
|
|
Benjamin Poirier |
cb21f8 |
|
|
Benjamin Poirier |
cb21f8 |
def test_found_notindexed_upstream_bad2_moveupstream(self):
|
|
Benjamin Poirier |
cb21f8 |
"""
|
|
Michal Suchanek |
de2dc4 |
patch sorted in netfilter nf-next (not fetched), commit found in netfilter nf,
|
|
Benjamin Poirier |
cb21f8 |
git-repo tag is bad
|
|
Michal Suchanek |
de2dc4 |
moves to netfilter nf
|
|
Benjamin Poirier |
cb21f8 |
tag is NOT updated
|
|
Benjamin Poirier |
cb21f8 |
|
|
Benjamin Poirier |
cb21f8 |
This is a special case. See the log of commit 0ac6457e94e8
|
|
Benjamin Poirier |
cb21f8 |
("scripts/git_sort/lib.py: Rewrite Git-repo only if it differs.")
|
|
Benjamin Poirier |
cb21f8 |
"""
|
|
Benjamin Poirier |
cb21f8 |
name, series2, alt_repo = self.prepare_found_notindexed_upstream_bad2()
|
|
Benjamin Poirier |
cb21f8 |
|
|
Benjamin Poirier |
cb21f8 |
self.check_outdated(name, "Input is not sorted.\n", series2, True)
|
|
Benjamin Poirier |
535548 |
self.check_tag(name, "Git-repo: ", alt_repo)
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
cb21f8 |
def test_found_notindexed_upstream_bad2_nomoveupstream(self):
|
|
Benjamin Poirier |
cb21f8 |
"""
|
|
Michal Suchanek |
de2dc4 |
patch sorted in netfilter nf-next (not fetched), commit found in netfilter nf,
|
|
Benjamin Poirier |
cb21f8 |
git-repo tag is bad
|
|
Benjamin Poirier |
cb21f8 |
error, possible causes:
|
|
Benjamin Poirier |
cb21f8 |
section is wrong or Git-repo is wrong
|
|
Benjamin Poirier |
cb21f8 |
because they differ and there is no way to know which head
|
|
Benjamin Poirier |
cb21f8 |
the user intended.
|
|
Benjamin Poirier |
cb21f8 |
"""
|
|
Benjamin Poirier |
cb21f8 |
name, series2, alt_repo = self.prepare_found_notindexed_upstream_bad2()
|
|
Benjamin Poirier |
cb21f8 |
|
|
Benjamin Poirier |
cb21f8 |
self.check_failure(
|
|
Benjamin Poirier |
cb21f8 |
"Error: There is a problem with patch \"%s\". The Git-repo tag is incorrect or the patch is in the wrong section of series.conf. Manual intervention is required.\n" % (name,), False)
|
|
Benjamin Poirier |
cb21f8 |
|
|
Benjamin Poirier |
cb21f8 |
|
|
Benjamin Poirier |
535548 |
def test_notfound_indexed_NA_good(self):
|
|
Benjamin Poirier |
535548 |
"""
|
|
Benjamin Poirier |
535548 |
patch sorted in net-next
|
|
Benjamin Poirier |
535548 |
error, possible causes:
|
|
Benjamin Poirier |
535548 |
net-next repo is outdated
|
|
Benjamin Poirier |
535548 |
Git-commit is wrong
|
|
Benjamin Poirier |
535548 |
section and Git-repo are wrong
|
|
Benjamin Poirier |
535548 |
"""
|
|
Benjamin Poirier |
535548 |
commit = self.repo.get(self.commits["other 0"])
|
|
Benjamin Poirier |
535548 |
name = tests.support.format_patch(commit, repo=self.net_next_repo,
|
|
Benjamin Poirier |
535548 |
directory=self.patch_dir)
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
with open("series.conf", mode="w") as f:
|
|
Benjamin Poirier |
535548 |
f.write(tests.support.format_series((
|
|
Benjamin Poirier |
535548 |
("davem/net-next", (
|
|
Benjamin Poirier |
535548 |
name,
|
|
Benjamin Poirier |
535548 |
)),
|
|
Benjamin Poirier |
535548 |
)))
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
self.check_failure(
|
|
Benjamin Poirier |
535548 |
"Error: There is a problem with patch \"%s\". Commit \"%s\" not found in git-sort index. The remote fetching from \"davem/net-next\" needs to be fetched or the Git-commit tag is incorrect or the patch is in the wrong section of series.conf. Manual intervention is required.\n" % (name, str(commit.id),))
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
def test_notfound_indexed_NA_bad(self):
|
|
Benjamin Poirier |
535548 |
"""
|
|
Benjamin Poirier |
535548 |
patch sorted in net-next, git-repo tag is bad
|
|
Benjamin Poirier |
535548 |
error, possible causes:
|
|
Benjamin Poirier |
535548 |
section or Git-repo are wrong
|
|
Benjamin Poirier |
535548 |
"""
|
|
Benjamin Poirier |
535548 |
name = tests.support.format_patch(
|
|
Benjamin Poirier |
535548 |
self.repo.get(self.commits["other 0"]), repo=self.rdma_repo,
|
|
Benjamin Poirier |
535548 |
directory=self.patch_dir)
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
with open("series.conf", mode="w") as f:
|
|
Benjamin Poirier |
535548 |
f.write(tests.support.format_series((
|
|
Benjamin Poirier |
535548 |
("davem/net-next", (
|
|
Benjamin Poirier |
535548 |
name,
|
|
Benjamin Poirier |
535548 |
)),
|
|
Benjamin Poirier |
535548 |
)))
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
self.check_failure(
|
|
Benjamin Poirier |
535548 |
"Error: There is a problem with patch \"%s\". The Git-repo tag is incorrect or the patch is in the wrong section of series.conf. Manual intervention is required.\n" % (name,))
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
def test_notfound_notindexed_NA_good(self):
|
|
Benjamin Poirier |
535548 |
"""
|
|
Benjamin Poirier |
535548 |
patch sorted in net
|
|
Benjamin Poirier |
535548 |
stays there
|
|
Benjamin Poirier |
535548 |
"""
|
|
Benjamin Poirier |
535548 |
name = tests.support.format_patch(
|
|
Benjamin Poirier |
535548 |
self.repo.get(self.commits["net 1"]), repo=self.net_repo,
|
|
Benjamin Poirier |
535548 |
directory=self.patch_dir)
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
with open("series.conf", mode="w") as f:
|
|
Benjamin Poirier |
535548 |
f.write(tests.support.format_series((
|
|
Benjamin Poirier |
535548 |
("davem/net", (
|
|
Benjamin Poirier |
535548 |
name,
|
|
Benjamin Poirier |
535548 |
)),
|
|
Benjamin Poirier |
535548 |
)))
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
self.check_constant(name)
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
def test_notfound_notindexed_NA_bad(self):
|
|
Benjamin Poirier |
535548 |
"""
|
|
Benjamin Poirier |
535548 |
patch sorted in net, bad git-repo tag
|
|
Benjamin Poirier |
535548 |
error, possible causes:
|
|
Benjamin Poirier |
535548 |
Git-repo is wrong
|
|
Benjamin Poirier |
535548 |
series.conf section is wrong and (git-commit is wrong or the
|
|
Benjamin Poirier |
535548 |
remote is outdated or not available locally
|
|
Benjamin Poirier |
535548 |
Git-repo is not indexed because it's missing in git_sort.py's
|
|
Benjamin Poirier |
535548 |
remote list
|
|
Benjamin Poirier |
535548 |
"""
|
|
Benjamin Poirier |
535548 |
name = tests.support.format_patch(
|
|
Benjamin Poirier |
535548 |
self.repo.get(self.commits["net 1"]), repo=self.rdma_repo,
|
|
Benjamin Poirier |
535548 |
directory=self.patch_dir)
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
with open("series.conf", mode="w") as f:
|
|
Benjamin Poirier |
535548 |
f.write(tests.support.format_series((
|
|
Benjamin Poirier |
535548 |
("davem/net", (
|
|
Benjamin Poirier |
535548 |
name,
|
|
Benjamin Poirier |
535548 |
)),
|
|
Benjamin Poirier |
535548 |
)))
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
self.check_failure(
|
|
Benjamin Poirier |
535548 |
"Error: There is a problem with patch \"%s\". The Git-repo tag is incorrect or the patch is in the wrong section of series.conf and (the Git-commit tag is incorrect or the relevant remote is outdated or not available locally) or an entry for this repository is missing from \"remotes\". In the last case, please edit \"remotes\" in \"scripts/git_sort/git_sort.py\" and commit the result. Manual intervention is required.\n" % (name,))
|
|
Benjamin Poirier |
535548 |
|
|
Benjamin Poirier |
535548 |
|
|
Michal Suchanek |
24354f |
def test_malformed(self):
|
|
Michal Suchanek |
24354f |
"""
|
|
Michal Suchanek |
24354f |
Generate a series and destroy the Git-commit tag on one of the patches
|
|
Michal Suchanek |
24354f |
This should report a specific error so that this situation is not conflated with wrong Patch-mainline tag in out-of-tree section
|
|
Michal Suchanek |
24354f |
"""
|
|
Michal Suchanek |
24354f |
|
|
Michal Suchanek |
24354f |
name, series2 = self.prepare_found_indexed_upstream_good()
|
|
Michal Suchanek |
24354f |
subprocess.call(['sed', '-i', '-e', 's/commit/comit/', name])
|
|
Michal Suchanek |
24354f |
self.check_failure(
|
|
Michal Suchanek |
24354f |
'Error: There is a problem with patch "%s". The Patch-mainline tag "Queued in subsystem maintainer repository" requires Git-commit.\n' % (name))
|
|
Michal Suchanek |
24354f |
|
|
Michal Suchanek |
24354f |
|
|
Benjamin Poirier |
6a71e7 |
if __name__ == '__main__':
|
|
Benjamin Poirier |
6a71e7 |
# Run a single testcase
|
|
Benjamin Poirier |
535548 |
suite = unittest.TestLoader().loadTestsFromTestCase(TestFromPatch)
|
|
Benjamin Poirier |
6a71e7 |
unittest.TextTestRunner(verbosity=2).run(suite)
|