From de259965f46cd74c8f182305858006e2740caa88 Mon Sep 17 00:00:00 2001 From: Sumit Bose Date: Fri, 2 Aug 2019 13:42:07 +0200 Subject: [PATCH] Remove gtester support, use autosetup Resolves: rhbz#1736578 --- ...upport-for-deprecated-gtester-format.patch | 252 ++++++++++++++++++ realmd.spec | 26 +- 2 files changed, 261 insertions(+), 17 deletions(-) create mode 100644 0001-Remove-support-for-deprecated-gtester-format.patch diff --git a/0001-Remove-support-for-deprecated-gtester-format.patch b/0001-Remove-support-for-deprecated-gtester-format.patch new file mode 100644 index 0000000..bdd59dd --- /dev/null +++ b/0001-Remove-support-for-deprecated-gtester-format.patch @@ -0,0 +1,252 @@ +From 5ae42c176e7bb550fc6cf10f29e75f58c733ae4f Mon Sep 17 00:00:00 2001 +From: Sumit Bose +Date: Fri, 2 Aug 2019 12:10:43 +0200 +Subject: [PATCH] Remove support for deprecated gtester format + +Support for the already deprecated gtester format was remove from recent +versions of glib2 but the test still call the tab-gtester conversion +tool. + +This patch removes tab-gtester and the tab format is used directly. + +Related to https://gitlab.freedesktop.org/realmd/realmd/issues/21 +--- + Makefile.am | 3 +- + build/tap-gtester | 204 ---------------------------------------------- + 2 files changed, 1 insertion(+), 206 deletions(-) + delete mode 100755 build/tap-gtester + +diff --git a/Makefile.am b/Makefile.am +index 27e3494..4ffd5b4 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -161,7 +161,7 @@ endif + # + + LOG_DRIVER = $(top_srcdir)/build/tap-driver +-LOG_COMPILER = $(top_srcdir)/build/tap-gtester ++LOG_COMPILER = sh -c '"$$0" "$$@" --tap' + + VALGRIND_ARGS = --trace-children=no --quiet --error-exitcode=33 \ + --suppressions=valgrind-suppressions --gen-suppressions=all \ +@@ -183,7 +183,6 @@ recheck-memory: valgrind-suppressions + + EXTRA_DIST += \ + $(LOG_DRIVER) \ +- $(LOG_COMPILER) \ + $(VALGRIND_SUPPRESSIONS) \ + $(NULL) + +diff --git a/build/tap-gtester b/build/tap-gtester +deleted file mode 100755 +index bbda266..0000000 +--- a/build/tap-gtester ++++ /dev/null +@@ -1,204 +0,0 @@ +-#!/usr/bin/python3 +-# This can also be run with Python 2. +- +-# Copyright (C) 2014 Red Hat, Inc. +-# +-# Cockpit is free software; you can redistribute it and/or modify it +-# under the terms of the GNU Lesser General Public License as published by +-# the Free Software Foundation; either version 2.1 of the License, or +-# (at your option) any later version. +-# +-# Cockpit 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 +-# Lesser General Public License for more details. +-# +-# You should have received a copy of the GNU Lesser General Public License +-# along with Cockpit; If not, see . +- +-# +-# This is a test output compiler which produces TAP from GTest output +-# if GTest output is detected. +-# +-# Versions of glib later than 2.38.x output TAP natively when tests are +-# run with the --tap option. However we can't depend on such a recent +-# version of glib for our purposes. +-# +-# This implements the Test Anything Protocol (ie: TAP) +-# https://metacpan.org/pod/release/PETDANCE/Test-Harness-2.64/lib/Test/Harness/TAP.pod +-# +- +-import argparse +-import os +-import select +-import signal +-import subprocess +-import sys +- +-# Yes, it's dumb, but strsignal is not exposed in python +-# In addition signal numbers varify heavily from arch to arch +-def strsignal(sig): +- for name in dir(signal): +- if name.startswith("SIG") and sig == getattr(signal, name): +- return name +- return str(sig) +- +- +-class NullCompiler: +- def __init__(self, command): +- self.command = command +- +- def input(self, line): +- sys.stdout.write(line) +- +- def process(self, proc): +- while True: +- line = proc.stdout.readline() +- if not line: +- break +- self.input(line) +- proc.wait() +- return proc.returncode +- +- def run(self, proc, line=None): +- if line: +- self.input(line) +- return self.process(proc) +- +- +-class GTestCompiler(NullCompiler): +- def __init__(self, filename): +- NullCompiler.__init__(self, filename) +- self.test_num = 0 +- self.test_name = None +- self.test_remaining = [] +- +- def input(self, line): +- line = line.strip() +- if line.startswith("GTest: "): +- (cmd, unused, data) = line[7:].partition(": ") +- cmd = cmd.strip() +- data = data.strip() +- if cmd == "run": +- self.test_name = data +- assert self.test_name in self.test_remaining, "%s %s" % (self.test_name, repr(self.test_remaining)) +- self.test_remaining.remove(self.test_name) +- self.test_num += 1 +- elif cmd == "result": +- if self.test_name: +- if data == "OK": +- print("ok %d %s" % (self.test_num, self.test_name)) +- if data == "FAIL": +- print("not ok %d %s" % (self.test_num, self.test_name)) +- self.test_name = None +- elif cmd == "skipping": +- if "/subprocess" not in data: +- print("ok %d # skip -- %s" % (self.test_num, data)) +- self.test_name = None +- elif data: +- print("# %s: %s" % (cmd, data)) +- else: +- print("# %s" % cmd) +- elif line.startswith("(MSG: "): +- print("# %s" % line[6:-1]) +- elif line: +- print("# %s" % line) +- sys.stdout.flush() +- +- def run(self, proc, output=""): +- # Complete retrieval of the list of tests +- output += proc.stdout.read() +- proc.wait() +- if proc.returncode: +- sys.stderr.write("tap-gtester: listing GTest tests failed: %d\n" % proc.returncode) +- return proc.returncode +- self.test_remaining = [] +- for line in output.split("\n"): +- if line.startswith("/"): +- self.test_remaining.append(line.strip()) +- if not self.test_remaining: +- print("Bail out! No tests found in GTest: %s" % self.command[0]) +- return 0 +- +- print("1..%d" % len(self.test_remaining)) +- +- # First try to run all the tests in a batch +- proc = subprocess.Popen(self.command + ["--verbose" ], close_fds=True, +- stdout=subprocess.PIPE, universal_newlines=True) +- result = self.process(proc) +- if result == 0: +- return 0 +- +- if result < 0: +- sys.stderr.write("%s terminated with %s\n" % (self.command[0], strsignal(-result))) +- +- # Now pick up any stragglers due to failures +- while True: +- # Assume that the last test failed +- if self.test_name: +- print("not ok %d %s" % (self.test_num, self.test_name)) +- self.test_name = None +- +- # Run any tests which didn't get run +- if not self.test_remaining: +- break +- +- proc = subprocess.Popen(self.command + ["--verbose", "-p", self.test_remaining[0]], +- close_fds=True, stdout=subprocess.PIPE, +- universal_newlines=True) +- result = self.process(proc) +- +- # The various exit codes and signals we continue for +- if result not in [ 0, 1, -4, -5, -6, -7, -8, -11, 33 ]: +- break +- +- return result +- +-def main(argv): +- parser = argparse.ArgumentParser(description='Automake TAP compiler', +- usage="tap-gtester [--format FORMAT] command ...") +- parser.add_argument('--format', metavar='FORMAT', choices=[ "auto", "gtest", "tap" ], +- default="auto", help='The input format to compile') +- parser.add_argument('--verbose', action='store_true', +- default=True, help='Verbose mode (ignored)') +- parser.add_argument('command', nargs=argparse.REMAINDER, help="A test command to run") +- args = parser.parse_args(argv[1:]) +- +- output = None +- format = args.format +- cmd = args.command +- if not cmd: +- sys.stderr.write("tap-gtester: specify a command to run\n") +- return 2 +- if cmd[0] == '--': +- cmd.pop(0) +- +- proc = None +- +- os.environ['HARNESS_ACTIVE'] = '1' +- +- if format in ["auto", "gtest"]: +- list_cmd = cmd + ["-l", "--verbose"] +- proc = subprocess.Popen(list_cmd, close_fds=True, stdout=subprocess.PIPE, +- universal_newlines=True) +- output = proc.stdout.readline() +- # Smell whether we're dealing with GTest list output from first line +- if "random seed" in output or "GTest" in output or output.startswith("/"): +- format = "gtest" +- else: +- format = "tap" +- else: +- proc = subprocess.Popen(cmd, close_fds=True, stdout=subprocess.PIPE, +- universal_newlines=True) +- +- if format == "gtest": +- compiler = GTestCompiler(cmd) +- elif format == "tap": +- compiler = NullCompiler(cmd) +- else: +- assert False, "not reached" +- +- return compiler.run(proc, output) +- +-if __name__ == "__main__": +- sys.exit(main(sys.argv)) +-- +2.21.0 + diff --git a/realmd.spec b/realmd.spec index 9dca5a0..e385b25 100644 --- a/realmd.spec +++ b/realmd.spec @@ -1,6 +1,6 @@ Name: realmd Version: 0.16.3 -Release: 20%{?dist} +Release: 21%{?dist} Summary: Kerberos realm enrollment service License: LGPLv2+ URL: http://cgit.freedesktop.org/realmd/realmd/ @@ -27,6 +27,9 @@ Patch14: 0001-Set-NEWEST-flag-when-resolving-packages-with-Package.patch # Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1675879 Patch15: 0001-tests-ignore-order-in-test_update_domain.patch +# Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1736578 +Patch16: 0001-Remove-support-for-deprecated-gtester-format.patch + BuildRequires: gcc BuildRequires: automake BuildRequires: autoconf @@ -59,22 +62,7 @@ applications that use %{name}. %define _hardened_build 1 %prep -%setup -q -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 -%patch5 -p1 -%patch6 -p1 -%patch7 -p1 -%patch8 -p1 -%patch9 -p1 -%patch10 -p1 -%patch11 -p1 -%patch12 -p1 -%patch13 -p1 -%patch14 -p1 -%patch15 -p1 +%autosetup -p1 %build autoreconf -fi @@ -109,6 +97,10 @@ make install DESTDIR=%{buildroot} %doc ChangeLog %changelog +* Fri Aug 02 2019 Sumit Bose - 0.16.3-21 +- Remove gtester support, use autosetup + Resolves: rhbz#1736578 + * Fri Jul 26 2019 Fedora Release Engineering - 0.16.3-20 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild