glib: Deprecate gtester and gtester-report

Add warnings about their deprecation everywhere. The tools will continue
to work until we break API, but will be less well maintained. You should
use TAP for communicating test results to the test harness provided by
your build system or CI system instead.

Signed-off-by: Philip Withnall <withnall@endlessm.com>

Fixes: #1441
This commit is contained in:
Philip Withnall 2019-05-14 11:57:11 +01:00
parent bd8658e16a
commit 662cddcb4b
7 changed files with 37 additions and 3 deletions

View File

@ -136,6 +136,10 @@
<chapter id="tools">
<title>GLib Tools</title>
<xi:include href="glib-gettextize.xml" />
</chapter>
<chapter id="deprecated-tools">
<title>Deprecated Tools</title>
<xi:include href="gtester.xml" />
<xi:include href="gtester-report.xml" />
</chapter>

View File

@ -35,6 +35,9 @@
<para><command>gtester-report</command> is a script which converts
the XML output generated by gtester into HTML.
</para>
<para>Since GLib 2.62, <command>gtester-report</command> is deprecated. Use
TAP for reporting test results instead, and feed it to the test harness provided
by your build system.</para>
</refsect1>
<refsect1><title>Options</title>

View File

@ -40,6 +40,9 @@
<para><command>gtester</command> is a utility to run unit tests that have
been written using the GLib test framework.
</para>
<para>Since GLib 2.62, <command>gtester-report</command> is deprecated. Use
TAP for reporting test results instead, and feed it to the test harness provided
by your build system.</para>
<para>
When called with the <option>-o</option> option, <command>gtester</command>
writes an XML report of the test results, which can be converted

View File

@ -15,6 +15,10 @@
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, see <http://www.gnu.org/licenses/>.
# Deprecated: Since GLib 2.62, gtester and gtester-report have been deprecated
# in favour of TAP.
import datetime
import optparse
import sys, re, xml.dom.minidom
@ -343,6 +347,9 @@ class HTMLReportWriter(ReportWriter):
self.oprint ('<body>\n')
self.oprint ('<h2>GTester Unit Test Report</h2>\n')
self.handle_info ()
self.oprint ('<p style="color:red;font-weight:bold"><blink>'
'Deprecated: Since GLib 2.62, gtester and gtester-report are '
'deprecated. Port to TAP.</blink></p>\n');
self.oprint ('<table id="ResultTable" width="100%" border="1">\n<tr>\n')
self.oprint ('<th>Program / Testcase </th>\n')
self.oprint ('<th style="width:8em">Duration (sec)</th>\n')
@ -474,6 +481,10 @@ def main():
options, files = parse_opts()
if options is None:
return 0
print("Deprecated: Since GLib 2.62, gtester and gtester-report are "
"deprecated. Port to TAP.", file=sys.stderr)
xd = xml.dom.minidom.parse (files[0])
rr = ReportReader()
rr.trampoline (xd)

View File

@ -43,6 +43,7 @@ static gboolean gtester_quiet = FALSE;
static gboolean gtester_verbose = FALSE;
static gboolean gtester_list_tests = FALSE;
static gboolean gtester_selftest = FALSE;
static gboolean gtester_ignore_deprecation = FALSE;
static gboolean subtest_running = FALSE;
static gint subtest_exitstatus = 0;
static gboolean subtest_io_pending = FALSE;
@ -660,6 +661,11 @@ parse_args (gint *argc_p,
}
argv[i] = NULL;
}
else if (strcmp ("--i-know-this-is-deprecated", argv[i]) == 0)
{
gtester_ignore_deprecation = TRUE;
argv[i] = NULL;
}
}
/* collapse argv */
e = 1;
@ -690,6 +696,10 @@ main (int argc,
return 1;
}
if (!gtester_ignore_deprecation)
g_warning ("Deprecated: Since GLib 2.62, gtester and gtester-report are "
"deprecated. Port to TAP.");
if (output_filename)
{
int errsv;
@ -700,6 +710,8 @@ main (int argc,
}
test_log_printfe ("<?xml version=\"1.0\"?>\n");
test_log_printfe ("<!-- Deprecated: Since GLib 2.62, gtester and "
"gtester-report are deprecated. Port to TAP. -->\n");
test_log_printfe ("%s<gtester>\n", sindent (log_indent));
log_indent += 2;
for (ui = 1; ui < argc; ui++)

View File

@ -60,7 +60,6 @@
* SECTION:testing
* @title: Testing
* @short_description: a test framework
* @see_also: [gtester][gtester], [gtester-report][gtester-report]
*
* GLib provides a framework for writing and maintaining unit tests
* in parallel to the code they are testing. The API is designed according
@ -235,7 +234,9 @@
* If you don't have access to the Autotools TAP harness, you can use the
* [gtester][gtester] and [gtester-report][gtester-report] tools, and use
* the [glib.mk](https://gitlab.gnome.org/GNOME/glib/blob/glib-2-58/glib.mk)
* Automake template provided by GLib.
* Automake template provided by GLib. Note, however, that since GLib 2.62,
* [gtester][gtester] and [gtester-report][gtester-report] have been deprecated
* in favour of using TAP.
*/
/**

View File

@ -229,7 +229,7 @@ if not meson.is_cross_build() and host_system != 'windows'
if xmllint.found()
tmpsample_xml = custom_target('tmpsample.xml',
output : 'tmpsample.xml',
command : [ gtester, '-k', '--quiet', '-o', '@OUTPUT@',
command : [ gtester, '-k', '--quiet', '--i-know-this-is-deprecated', '-o', '@OUTPUT@',
'--test-arg=--gtester-selftest', gtester])
test('gtester-xmllint-check', xmllint,