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.master
parent
abca20b02d
commit
06435f9f17
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
|
@ -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
|
|
@ -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 "$@" )
|
|
@ -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' );
|
||||
|
|
|
@ -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.])
|
Loading…
Reference in New Issue