git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH/RFC] t9500-*.sh: Fix highlight test hang on Linux Mint

From
Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Date
Sep 6, 2013, 22:05 UTC
Message-ID
<522A51A5.9090905@ramsay1.demon.co.uk>

Linux Mint has an implementation of the highlight command (unrelated to the one from http://www.andre-simon.de) that works as a simple filter. The script uses 'sed' to add terminal colour escape codes around text matching a regular expression. When t9500-*.sh attempts to run "highlight --version", the script simply hangs waiting for input. (See https://bugs.launchpad.net/linuxmint/+bug/815005).

The tool required by gitweb can be installed from the 'highlight' package. Unfortunately, given the default $PATH, this leads to the tool having lower precedence than the script.

In order to allow the user to specify the correct tool, introduce the GIT_TEST_HIGHLIGHT_BIN variable. Also, add '</dev/null' to the command line of the highlight invocation; this avoids hanging the test if the filter script is used nonetheless.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
---
Hi Junio,

I recently upgraded my Ubuntu installation to Linux Mint 15 Cinnamon. (Unity makes me want to throw my laptop at the wall!)

Having tickled this bug, I solved the problem by building highlight v3.15 from source and installing in $HOME.

This patch is marked RFC because this bug does not seem to have affected too many people (given that Heiko reported the problem back in 2011) ... :-D

[Also, note that I didn't fix up the form of the conditional.]

ATB, Ramsay Jones

 t/t9500-gitweb-standalone-no-errors.sh | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/t/t9500-gitweb-standalone-no-errors.sh b/t/t9500-gitweb-standalone-no-errors.sh
index 6fca193..0208c8e 100755
--- a/t/t9500-gitweb-standalone-no-errors.sh
+++ b/t/t9500-gitweb-standalone-no-errors.sh
@@ -683,14 +683,18 @@ test_expect_success \
 # syntax highlighting
 
 
-highlight --version >/dev/null 2>&1
+GIT_TEST_HIGHLIGHT_BIN=${GIT_TEST_HIGHLIGHT_BIN:-highlight}
+highlight_version=$($GIT_TEST_HIGHLIGHT_BIN --version </dev/null 2>/dev/null)
 if [ $? -eq 127 ]; then
-	say "Skipping syntax highlighting test, because 'highlight' was not found"
+	say "Skipping syntax highlighting tests: 'highlight' not found"
+elif test -z "$highlight_version"; then
+	say "Skipping syntax highlighting tests: incorrect 'highlight' found"
+	say "set GIT_TEST_HIGHLIGHT_BIN to full path of highlight program"
 else
 	test_set_prereq HIGHLIGHT
-	cat >>gitweb_config.perl <<-\EOF
-	our $highlight_bin = "highlight";
-	$feature{'highlight'}{'override'} = 1;
+	cat >>gitweb_config.perl <<-EOF
+	our \$highlight_bin = "$GIT_TEST_HIGHLIGHT_BIN";
+	\$feature{'highlight'}{'override'} = 1;
 	EOF
 fi
 
-- 
1.8.4
Next: Junio C Hamano
Message 1 of 2 in “t9500-*.sh: Fix highlight test hang on Linux Mint”
  1. t9500-*.sh: Fix highlight test hang on Linux MintRamsay Jones, Sep 6, 2013
  2. Junio C HamanoSep 7, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.