From 079cceaec68a67aac87936f8dd8f9dc881320db4 Mon Sep 17 00:00:00 2001 From: Petr Machata Date: Wed, 3 Oct 2007 16:42:49 +0000 Subject: [PATCH] - Clean up spec per merge review comments. - Fix testsuite. - Resolves: #225679 --- dejagnu-1.4.4-testsuite.patch | 93 +++++++++++++++++++++++++++++++++++ dejagnu.spec | 26 +++++----- 2 files changed, 108 insertions(+), 11 deletions(-) create mode 100644 dejagnu-1.4.4-testsuite.patch diff --git a/dejagnu-1.4.4-testsuite.patch b/dejagnu-1.4.4-testsuite.patch new file mode 100644 index 0000000..d9e07ea --- /dev/null +++ b/dejagnu-1.4.4-testsuite.patch @@ -0,0 +1,93 @@ +diff -Burp dejagnu-1.4.4/testsuite/libdejagnu/unit.cc dejagnu-1.4.4-pm/testsuite/libdejagnu/unit.cc +--- dejagnu-1.4.4/testsuite/libdejagnu/unit.cc 2003-08-17 03:33:06.000000000 +0200 ++++ dejagnu-1.4.4-pm/testsuite/libdejagnu/unit.cc 2007-10-03 18:31:03.000000000 +0200 +@@ -7,6 +7,7 @@ + #include + #include + #include ++#include + + using namespace std; + +@@ -49,12 +50,8 @@ main (int argc, char *argv[]) { + // Replace the output buffer for cout, so we can examine it to + // see what was displayed. Otherwise, there is no way we can test + // the logging functions completely. +- char bbuuff[5120]; +-#ifdef __STDC_HOSTED__ +- cout.rdbuf()->pubsetbuf(bbuuff, 5120); +-#else +- cout.rdbuf()->setbuf(bbuuff, 5120); +-#endif ++ stringstream stream; ++ streambuf * buf = cout.rdbuf(stream.rdbuf()); + + testClass1.tname = "testType1"; + testClass1.tnum = 1; +@@ -65,53 +62,59 @@ main (int argc, char *argv[]) { + + // Test the pass message + test.pass ("bogus pass message for testing"); ++ cout.flush(); + outstate = os2; +- if (strncmp(bbuuff, "\tPAS: bogus pass message", 22) == 0) { ++ if (strncmp(stream.str().c_str(), "\tPAS: bogus pass message", 22) == 0) { + runtest.pass ("Pass message"); + } else { + runtest.fail ("Pass message"); + } ++ stream.str(""); + + // Test the fail message + outstate = os1; + test.fail ("bogus fail message for testing"); + cout.flush(); + outstate = os2; +- if (strncmp(bbuuff, "\tFAI: bogus fail message", 22) == 0) { ++ if (strncmp(stream.str().c_str(), "\tFAI: bogus fail message", 22) == 0) { + runtest.pass ("Fail message"); + } else { + runtest.fail ("Fail message"); + } ++ stream.str(""); + + // Test the untested message + outstate = os1; + test.untested ("bogus untested message for testing"); + cout.flush(); + outstate = os2; +- if (strncmp(bbuuff, "\tUNT: bogus untested message", 21) == 0) { ++ if (strncmp(stream.str().c_str(), "\tUNT: bogus untested message", 21) == 0) { + runtest.pass ("Untested message"); + } else { + runtest.fail ("Untested message"); + } ++ stream.str(""); + + // Test the unresolved message + outstate = os1; + test.unresolved ("bogus unresolved message for testing"); + cout.flush(); + outstate = os2; +- if (strncmp(bbuuff, "\tUNR: bogus unresolved message", 21) == 0) { ++ if (strncmp(stream.str().c_str(), "\tUNR: bogus unresolved message", 21) == 0) { + runtest.pass ("Unresolved message"); + } else { + runtest.fail ("Unresolved message"); + } ++ stream.str(""); + + // Make sure we got everything in the totals + regcomp (®ex_pat, "\r\n\t#passed.*#failed.*#untested.*#unresolved", REG_NOSUB|REG_NEWLINE); +- if (regexec (®ex_pat, bbuuff, 0, (regmatch_t *)0, 0)) { ++ if (regexec (®ex_pat, stream.str().c_str(), 0, (regmatch_t *)0, 0)) { + runtest.pass ("Totals message"); + } else { + runtest.fail ("Totals message"); + } +-} +- ++ stream.str(""); + ++ cout.rdbuf(buf); ++} diff --git a/dejagnu.spec b/dejagnu.spec index c5dc516..39eed5a 100644 --- a/dejagnu.spec +++ b/dejagnu.spec @@ -1,18 +1,19 @@ Summary: A front end for testing other programs Name: dejagnu Version: 1.4.4 -Release: 8 +Release: 9 Epoch: 1 License: GPLv2+ -Source: ftp://ftp.gnu.org/gnu/dejagnu/dejagnu-1.4.4.tar.gz +Source: ftp://ftp.gnu.org/gnu/dejagnu/dejagnu-%{version}.tar.gz Group: Development/Tools URL: http://www.gnu.org/software/dejagnu/ -Requires: tcl >= 8.0, expect >= 5.21 +Requires: expect BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -BuildArchitectures: noarch -BuildRequires: jadetex docbook-utils-pdf tetex-dvips +BuildArch: noarch +BuildRequires: expect Patch1: dejagnu-1.4.4-smp-1.patch Patch2: dejagnu-1.4.4-no-info.patch +Patch3: dejagnu-1.4.4-testsuite.patch %description DejaGnu is an Expect/Tcl based framework for testing other programs. @@ -23,18 +24,17 @@ output format of all tests (making it easier to integrate the testing into software development). %prep -%setup -q -n dejagnu-%{version} +%setup -q %patch1 -p1 %patch2 -p1 +%patch3 -p1 %build %configure -v -make -mv doc/html doc/overview %check echo ============TESTING=============== -make -k check RUNTESTFLAGS="RUNTEST=`pwd`/runtest" || : +make check RUNTESTFLAGS="RUNTEST=`pwd`/runtest" echo ============END TESTING=========== %install @@ -44,7 +44,7 @@ chmod a-x $RPM_BUILD_ROOT/%{_datadir}/dejagnu/runtest.exp pushd doc make docs -make man1dir=%{buildroot}%{_mandir}/man1 install-man +make DESTDIR=$RPM_BUILD_ROOT install-man popd %clean @@ -58,8 +58,12 @@ rm -rf $RPM_BUILD_ROOT %{_includedir}/dejagnu.h %{_mandir}/*/* - %changelog +* Wed Oct 3 2007 Petr Machata - 1:1.4.4-9 +- Clean up spec per merge review comments. +- Fix testsuite. +- Resolves: #225679 + * Thu Aug 16 2007 Petr Machata - 1:1.4.4-8 - Fix licesing tag.