textproc/source-highlight: fix "make test" or -DWITH_TESTING build

The normal build works for me, but "make test",
or poudriere-devel builds on FreeBSD 14.0-RELEASE amd64 under
WITH_TESTING=yes, fail for me in the test phase.

Fix two compiler bugs that LLVM/clang asserts:
* lib/tests/stdboosterror.h poses a most vexing parse,
  resolve by switching to C++11 uniform initialization
  (GCC 12 or 13 disambiguates by resolving to variable init.)
* lib/tests/test_wordtokenizer_main.cpp sees LLVM/clang complain
  about unresolved operator<< (needs to be defined earlier,
  so move the declaration up) (couldn't test with GCC)

Serialize tests/Makefile:
* tests/Makefile* causes "No such file or directory" errors when
  running with MAKE_JOBS, so patch a .NOTPARALLEL into the Makefile.

Approved by:	portmgr@ (blanket just-fix-it approval for failing build)
main
Matthias Andree 2024-04-23 19:31:41 +02:00
parent e2fd86e090
commit 160df1b4d1
3 changed files with 44 additions and 2 deletions

View File

@ -0,0 +1,11 @@
--- lib/tests/stdboosterror.h.orig 2019-06-02 15:22:17 UTC
+++ lib/tests/stdboosterror.h
@@ -4,7 +4,7 @@ static boost::regex_error
#include <boost/regex/pattern_except.hpp>
static boost::regex_error
- std_boost_exception(boost::regex_error(boost::regex_constants::error_bad_pattern));
+ std_boost_exception{boost::regex_error(boost::regex_constants::error_bad_pattern)};
/**
* returns the string representing a standard exception (which

View File

@ -0,0 +1,22 @@
--- lib/tests/test_wordtokenizer_main.cpp.orig 2018-10-09 17:21:21 UTC
+++ lib/tests/test_wordtokenizer_main.cpp
@@ -3,15 +3,16 @@
#endif
#include <iostream>
-
-#include "asserttestexit.h"
#include "srchilite/wordtokenizer.h"
-#include "srchilite/tostringcollection.h"
using namespace std;
using namespace srchilite;
static ostream &operator <<(ostream &os, const WordTokenizer::WordTokenizerResults::value_type &);
+
+#include "asserttestexit.h"
+#include "srchilite/tostringcollection.h"
+
ostream &operator <<(ostream &os, const WordTokenizer::WordTokenizerResults::value_type &token) {
if (token.first.size()) {

View File

@ -1,6 +1,15 @@
--- tests/Makefile.in.orig 2016-08-25 16:54:10 UTC
--- tests/Makefile.in.orig 2024-04-23 17:29:34 UTC
+++ tests/Makefile.in
@@ -2108,7 +2108,7 @@ check_defaults:
@@ -14,6 +14,8 @@
@SET_MAKE@
+.NOTPARALLEL: # some of the java-related tests can't run in parallel
+
# Copyright (C) 1999-2008 Lorenzo Bettini <http://www.lorenzobettini.it>
#
# This file is free software; as a special exception the author gives
@@ -2240,7 +2242,7 @@ check_defaults:
@NO_CTAGS_FALSE@ sed -itesttmp -e 's/\_tmp\.h/\.h/g' test_refs_tmp.h.html test_refs_tmp.cpp.html
@NO_CTAGS_FALSE@ sed -itesttmp -e 's/\_tmp\.cpp/\.cpp/g' test_refs_tmp.h.html test_refs_tmp.cpp.html
@NO_CTAGS_FALSE@ $(CPP2LATEX_WREFS) -i $(srcdir)/test.h -o test_ref.out.tex $(CTAGS_COMMAND_TMP)