Andrew Johnson has proposed merging ~anj/epics-base/+git/base-3.15:epics-prove into epics-base:3.15.
Requested reviews:
mdavidsaver (mdavidsaver)
For more details, see:
https://code.launchpad.net/~anj/epics-base/+git/base-3.15/+merge/374321
Hi Michael,
This branch contains my preferred solution for the problems you were having with prove.bat and 'make test-results' on Windows. It's against 3.15, which may complicate merging your fixes slightly, but I would rather that we fix this there than only on the 7.0 branch.
I'll merge if/once you approve.
- Andrew
--
Your team EPICS Core Developers is subscribed to branch epics-base:3.15.
diff --git a/configure/CONFIG_BASE b/configure/CONFIG_BASE
index 2f099be..c979d6d 100644
--- a/configure/CONFIG_BASE
+++ b/configure/CONFIG_BASE
@@ -69,6 +69,7 @@ REGISTERRECORDDEVICEDRIVER = $(PERL) $(TOOLS)/registerRecordDeviceDriver.pl
CONVERTRELEASE = $(PERL) $(call FIND_TOOL,convertRelease.pl)
FULLPATHNAME = $(PERL) $(TOOLS)/fullPathName.pl
TAPTOJUNIT = $(PERL) $(TOOLS)/tap-to-junit-xml.pl
+PROVE = $(PERL) $(TOOLS)/epicsProve.pl
#-------------------------------------------------------
# tools for installing libraries and products
diff --git a/configure/RULES_BUILD b/configure/RULES_BUILD
index 7061c56..ca05f19 100644
--- a/configure/RULES_BUILD
+++ b/configure/RULES_BUILD
@@ -351,7 +351,7 @@ testspec: $(TESTSCRIPTS)
test-results: tapfiles
ifneq ($(TAPFILES),)
ifdef RUNTESTS_ENABLED
- prove --failures --ext .tap --exec "$(CAT)" --color $(TAPFILES)
+ $(PROVE) --failures --ext .tap --exec "$(CAT)" --color $(TAPFILES)
endif
CURRENT_TAPFILES := $(wildcard $(TAPFILES))
diff --git a/documentation/RELEASE_NOTES.md b/documentation/RELEASE_NOTES.md
index 7580b3a..451b237 100644
--- a/documentation/RELEASE_NOTES.md
+++ b/documentation/RELEASE_NOTES.md
@@ -6,6 +6,14 @@ This version of EPICS Base has not been released yet.
<!-- Insert new items immediately below here ... -->
+### `make test-results` for Windows
+
+The make target `test-results` should now work properly on Windows. Some Perl
+installations used versions of `prove.bat` that would only display the results of
+up to 3 tests or didn't return an error status in the event of tests failing. The
+build system now calls its own perl script to summarize the results instead of
+passing a list of TAP filenames to `prove`.
+
### Add option to avoid CALLBACK conflict
If a macro `EPICS_NO_CALLBACK` is defined, then callback.h will no longer (re)define CALLBACK.
@@ -235,23 +243,23 @@ built-in self-test programs and viewing the results. Since these targets are
intended for limited use they can have requirements for the build host which
go beyond the standard minimum set needed to build and run Base.
-#### `test-results` — Summarize test results
+#### `test-results` - Summarize test results
The new make target `test-results` will run the self-tests if
necessary to generate a TAP file for each test, then summarizes the TAP output
files in each test directory in turn, displaying the details of any failures.
-This step uses the program “prove” which comes with Perl, but also needs
-“cat” to be provided in the default search path so will not work on most
+This step uses the program `prove` which comes with Perl, but also needs
+`cat` to be provided in the default search path so will not work on most
Windows systems.
-#### `junitfiles` — Convert test results to JUnit XML Format
+#### `junitfiles` - Convert test results to JUnit XML Format
The new make target `junitfiles` will run the self-tests if necessary
and then convert the TAP output files into the more commonly-supported JUnit
XML format. The program that performs this conversion needs the Perl module
-“`XML::Generator`” to have been installed.
+`XML::Generator` to have been installed.
-#### `clean-tests` — Delete test result files
+#### `clean-tests` - Delete test result files
The new make target `clean-tests` removes any test result files from
previous test runs. It cleans both TAP and JUnit XML files.
@@ -1103,11 +1111,11 @@ configured to have a lower severity or even no alarm when undefined. Be careful
when changing this on applications where the IVOA field of output records is
used, IVOA still requires an INVALID severity to trigger value replacement.
-### New build target “tapfiles”
+### New build target `tapfiles`
-This new make target runs the same tests as the “runtests” target, but
+This new make target runs the same tests as the `runtests` target, but
instead of summarizing or displaying the output for each test script it creates
-a “.tap” file inside the architecture build directory which contains the
+a `.tap` file inside the architecture build directory which contains the
detailed test output. The output file can be parsed by continuous integration
packages such as [Jenkins](http://www.jenkins-ci.org/) to show the
test results.
diff --git a/src/tools/Makefile b/src/tools/Makefile
index c1606c8..636717d 100644
--- a/src/tools/Makefile
+++ b/src/tools/Makefile
@@ -39,6 +39,7 @@ PERL_SCRIPTS += assembleSnippets.pl
PERL_SCRIPTS += convertRelease.pl
PERL_SCRIPTS += cvsclean.pl
PERL_SCRIPTS += dos2unix.pl
+PERL_SCRIPTS += epicsProve.pl
PERL_SCRIPTS += expandVars.pl
PERL_SCRIPTS += fullPathName.pl
PERL_SCRIPTS += installEpics.pl
diff --git a/src/tools/epicsProve.pl b/src/tools/epicsProve.pl
new file mode 100644
index 0000000..a1b0c14
--- /dev/null
+++ b/src/tools/epicsProve.pl
@@ -0,0 +1,10 @@
+#!/usr/bin/env perl
+
+# Some Windows Perl installations provide a prove.bat file which
+# doesn't work properly.
+
+use App::Prove;
+
+my $app = App::Prove->new;
+$app->process_args(@ARGV);
+exit( $app->run ? 0 : 1 );
- Replies:
- Re: [Merge] ~anj/epics-base/+git/base-3.15:epics-prove into epics-base:3.15 mdavidsaver via Core-talk
- [Merge] ~anj/epics-base/+git/base-3.15:epics-prove into epics-base:3.15 noreply--- via Core-talk
- Navigate by Date:
- Prev:
[Bug 1815908] Re: casExpandRecvBuffer modifies the contents of the buffer mdavidsaver via Core-talk
- Next:
Re: [Merge] ~anj/epics-base/+git/base-3.15:epics-prove into epics-base:3.15 mdavidsaver via Core-talk
- Index:
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
<2019>
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
[Bug 541239] Re: explicitly unloading Com.dll causes crash Andrew Johnson via Core-talk
- Next:
Re: [Merge] ~anj/epics-base/+git/base-3.15:epics-prove into epics-base:3.15 mdavidsaver via Core-talk
- Index:
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
<2019>
2020
2021
2022
2023
2024
|