diff options
author | Mike Gerwitz <mike.gerwitz@rtspecialty.com> | 2018-03-05 15:53:26 -0500 |
---|---|---|
committer | Mike Gerwitz <mike.gerwitz@rtspecialty.com> | 2018-03-05 15:57:38 -0500 |
commit | 06435f9f178fc17c094c03df544b897d6ff55c72 (patch) | |
tree | de1a6a945b5e48ca157d5bdd591c17a3f00cbe4c | |
parent | abca20b02debff533708ad9c4cebd86c4f512e01 (diff) | |
download | tame-06435f9f178fc17c094c03df544b897d6ff55c72.tar.gz tame-06435f9f178fc17c094c03df544b897d6ff55c72.tar.bz2 tame-06435f9f178fc17c094c03df544b897d6ff55c72.zip |
progtest: Add runner script
* .gitignore: Ignore new generated files (Autoconf, Automake, output).
* Makefile: Rename to `Makefile.am', dynamically expand
`--harmony-destructuring'.
* autogen.sh: New script.
* bin/runner.in: New runner script.
* bin/runner.js: Resolve program path relative to CWD.
* configure.ac: New configure script.
-rw-r--r-- | progtest/.gitignore | 15 | ||||
-rw-r--r-- | progtest/Makefile.am (renamed from progtest/Makefile) | 2 | ||||
-rwxr-xr-x | progtest/autogen.sh | 27 | ||||
-rw-r--r-- | progtest/bin/runner.in | 37 | ||||
-rw-r--r-- | progtest/bin/runner.js | 2 | ||||
-rw-r--r-- | progtest/configure.ac | 49 |
6 files changed, 129 insertions, 3 deletions
diff --git a/progtest/.gitignore b/progtest/.gitignore index b387800..146e7e9 100644 --- a/progtest/.gitignore +++ b/progtest/.gitignore @@ -1,6 +1,19 @@ -/node_modules +# generated by autotools +/aclocal.m4 +/autom4te.cache +/build-aux +/configure +/Makefile.in + +# generated by configure +bin/runner +/config.* +/Makefile # output /tame-progtest.js index.js +# npm +/node_modules + diff --git a/progtest/Makefile b/progtest/Makefile.am index 2d50e91..4276795 100644 --- a/progtest/Makefile +++ b/progtest/Makefile.am @@ -35,7 +35,7 @@ modindex: $(nsindex) test: check check: PATH="$(PATH):$(CURDIR)/node_modules/mocha/bin" \ - mocha --harmony_destructuring --recursive test/ + mocha @NODE_DESTRUCTURE@ --recursive test/ browserify: tame-progtest.js tame-progtest.js: check modindex diff --git a/progtest/autogen.sh b/progtest/autogen.sh new file mode 100755 index 0000000..d9c18b7 --- /dev/null +++ b/progtest/autogen.sh @@ -0,0 +1,27 @@ +#!/bin/bash +# Autoreconf runner +# +# Copyright (C) 2018 R-T Specialty, LLC. +# +# This file is part of TAME. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +## + +which autoreconf &>/dev/null || { + echo "\`autoreconf' not found in PATH" + exit 1 +} + +exec autoreconf -fvi diff --git a/progtest/bin/runner.in b/progtest/bin/runner.in new file mode 100644 index 0000000..2b7593c --- /dev/null +++ b/progtest/bin/runner.in @@ -0,0 +1,37 @@ +#!/bin/bash +# Start runner using Node.js executable determined at configure-time +# +# Copyright (C) 2018 R-T Specialty, LLC. +# +# This file is part of TAME. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +# In addition to the configure-time NODE_FLAGS, the NODE_FLAGS environment +# variable can be used to add additional arguments to this script. +# WARNING: NODE_FLAGS arguments provided via environment varialbes are _not_ +# escaped, so be mindful of word expansion! +# +# @AUTOGENERATED@ +## + +declare -r mypath=$( dirname $( readlink -f "$0" ) ) + +declare -r program="${1?Missing program JS path}" +shift + +# this kluge just concatenates all test files together until we have +# multi-file support (consequently, no args will read from stdin, which is +# convenient) +"@NODE@" @NODE_FLAGS@ $NODE_FLAGS "$mypath/runner.js" "$program" <( cat "$@" ) diff --git a/progtest/bin/runner.js b/progtest/bin/runner.js index 8895992..c6c5deb 100644 --- a/progtest/bin/runner.js +++ b/progtest/bin/runner.js @@ -21,7 +21,7 @@ "use strict"; -const program = require( process.argv[ 2 ] ); +const program = require( process.cwd() + '/' + process.argv[ 2 ] ); const filename = process.argv[ 3 ]; const fs = require( 'fs' ); diff --git a/progtest/configure.ac b/progtest/configure.ac new file mode 100644 index 0000000..ea5863d --- /dev/null +++ b/progtest/configure.ac @@ -0,0 +1,49 @@ +## For use my automake and autoconf +# +# Copyright (C) 2018 R-T Specialty, LLC. +# +# This file is part of TAME. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +## + +AC_INIT([tame-progtest], [0.0.0]) +AC_CONFIG_AUX_DIR([build-aux]) +AM_INIT_AUTOMAKE([foreign]) + +AC_ARG_VAR([NODE], [The Node.js interpreter]) +AC_ARG_VAR([NODE_FLAGS], [Arguments to Node.js for test runner (bin/runner)]) +AC_CHECK_PROGS(NODE, [node nodejs]) + +test -n "$NODE" || AC_MSG_ERROR([missing Node.js]) + +# only needed for older versions of Node +AC_MSG_CHECKING([$NODE --harmony_destructuring]) +AS_IF(["$NODE" --harmony_destructuring >/dev/null 2>/dev/null], + [AC_MSG_RESULT(available) + AC_SUBST([NODE_DESTRUCTURE], [--harmony_destructuring])], + [AC_MSG_RESULT(no)]) + +NODE_FLAGS="$NODE_FLAGS $NODE_DESTRUCTURE" + +AC_SUBST([AUTOGENERATED], + ["THIS FILE IS AUTOGENERATED! DO NOT MODIFY! See *.in."]) + +AC_CONFIG_FILES([Makefile]) +AC_CONFIG_FILES([bin/runner], + [chmod +x bin/runner]) + +AC_OUTPUT + +AC_MSG_NOTICE([You may now invoke \`make' to build.]) |