]> git.draconx.ca Git - dxcommon.git/blobdiff - tests/macros.at
Add "join" detection macro.
[dxcommon.git] / tests / macros.at
index f746e54522ae8e849d0fab932ff6b044dc1eddf5..3f39fbde9635612d1b5ebb9033cf20e6364d82e6 100644 (file)
@@ -1,4 +1,4 @@
-dnl Copyright © 2014-2015, 2018-2019, 2021 Nick Bowler
+dnl Copyright © 2014-2015, 2018-2019, 2021-2022 Nick Bowler
 dnl
 dnl License WTFPL2: Do What The Fuck You Want To Public License, version 2.
 dnl This is free software: you are free to do what the fuck you want to.
@@ -236,6 +236,56 @@ MOFILES = @&t@
 
 AT_CLEANUP
 
+AT_SETUP([DX_LINGUAS with broken "join" utility])
+AT_KEYWORDS([DX_LINGUAS macro])
+
+echo : >config.rpath
+chmod +x config.rpath
+
+mkdir bin
+cat >bin/join <<EOF
+#!/bin/sh
+:
+EOF
+chmod +x bin/join
+
+mkdir po
+AT_DATA([po/LINGUAS], [[en ja # a comment ko
+zh en_US
+]])
+
+AT_DATA([test.in], [[POFILES = @POFILES@
+MOFILES = @MOFILES@
+]])
+
+TEST_CONFIGURE_AC(
+[[m4@&t@_traceoff([AM_GNU_GETTEXT])
+AM_GNU_GETTEXT([external])
+DX_LINGUAS
+AC_CONFIG_FILES([test])
+]])
+TEST_AUTORECONF
+
+save_PATH=$PATH
+PATH=`pwd`/bin${PATH:+":$PATH"}
+LINGUAS='en_US'; export LINGUAS; TEST_CONFIGURE
+
+AT_CHECK([cat test], [0],
+[[POFILES = po/en.po po/en_US.po po/ja.po po/zh.po
+MOFILES = po/en.mo po/en_US.mo
+]])
+
+LINGUAS='en_US'; export LINGUAS; TEST_CONFIGURE([JOIN=false])
+
+AT_CHECK([cat test], [0],
+[[POFILES = po/en.po po/en_US.po po/ja.po po/zh.po
+MOFILES = po/en.mo po/en_US.mo
+]])
+
+PATH=$save_PATH
+
+AT_CLEANUP
+
 AT_SETUP([DX_BASENAME])
 AT_KEYWORDS([DX_BASENAME macro])
 
@@ -266,3 +316,26 @@ hello world
 ])
 
 AT_CLEANUP
+
+AT_SETUP([DX_PROG_JOIN distribution])
+AT_KEYWORDS([DX_PROG_JOIN macro])
+
+TEST_CONFIGURE_AC([[AM_INIT_AUTOMAKE([foreign])
+DX_PROG_JOIN
+AC_CONFIG_FILES([Makefile])
+]])
+
+AT_DATA([Makefile.am],
+[[foo: ; printf '%s\n' $(DX_BASEDIR) $(DISTFILES)
+]])
+TEST_AUTORECONF
+
+TEST_CONFIGURE
+AT_CHECK([make -s foo], [0], [stdout])
+AT_CHECK([exec 3<stdout
+read basedir <&3; while read f <&3; do
+  test x"$f" = x"$basedir/scripts/join.awk" && exit
+done
+exit 1])
+
+AT_CLEANUP