[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master: mfcalc: extract and exercise
From: |
Akim Demaille |
Subject: |
master: mfcalc: extract and exercise |
Date: |
Thu, 16 Feb 2012 16:00:15 +0100 |
From this point, it will easier to document %printer.
In some other hacking session.
From c1192f8af3fff4bf860a9e1583f704dbe2b3c0ac Mon Sep 17 00:00:00 2001
From: Akim Demaille <address@hidden>
Date: Thu, 16 Feb 2012 15:44:43 +0100
Subject: [PATCH 5/5] mfcalc: extract and exercise.
* examples/mfcalc/local.mk, examples/mfcalc/test: New,
based on calc++'s ones.
* examples/local.mk: Include mfcalc/local.mk.
---
examples/local.mk | 1 +
examples/mfcalc/.gitignore | 11 +++++++
examples/mfcalc/local.mk | 57 +++++++++++++++++++++++++++++++++++
examples/mfcalc/test | 70 ++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 139 insertions(+), 0 deletions(-)
create mode 100644 examples/mfcalc/.gitignore
create mode 100644 examples/mfcalc/local.mk
create mode 100755 examples/mfcalc/test
diff --git a/examples/local.mk b/examples/local.mk
index e6d69d0..02e82bb 100644
--- a/examples/local.mk
+++ b/examples/local.mk
@@ -18,3 +18,4 @@ extexi = $(top_srcdir)/examples/extexi
dist_noinst_SCRIPTS = examples/extexi
include examples/calc++/local.mk
+include examples/mfcalc/local.mk
diff --git a/examples/mfcalc/.gitignore b/examples/mfcalc/.gitignore
new file mode 100644
index 0000000..901c355
--- /dev/null
+++ b/examples/mfcalc/.gitignore
@@ -0,0 +1,11 @@
+/*.o
+/*.tmp
+/.deps
+/calc.h
+/mfcalc
+/mfcalc.c
+/mfcalc.exe
+/mfcalc.h
+/mfcalc.stamp
+/mfcalc.y
+
diff --git a/examples/mfcalc/local.mk b/examples/mfcalc/local.mk
new file mode 100644
index 0000000..aae9e04
--- /dev/null
+++ b/examples/mfcalc/local.mk
@@ -0,0 +1,57 @@
+## Process this file with automake to produce Makefile.in -*-Makefile-*-
+
+## Copyright (C) 2005-2006, 2008-2012 Free Software Foundation, Inc.
+
+# 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/>.
+
+## ------------ ##
+## Extracting. ##
+## ------------ ##
+
+# Extract in src.
+$(top_srcdir)/examples/mfcalc/mfcalc.stamp: $(doc) $(extexi)
+ $(AM_V_GEN)rm -f $@ address@hidden
+ $(AM_V_at)touch address@hidden
+ $(AM_V_at)cd $(top_srcdir)/examples/mfcalc && \
+ $(AWK) -f ../extexi -v VERSION="$(VERSION)" \
+ ../../doc/bison.texinfo -- calc.h mfcalc.y
+ $(AM_V_at)mv address@hidden $@
+
+$(mfcalc_extracted): $(top_srcdir)/examples/mfcalc/mfcalc.stamp
+ $(AM_V_GEN)if test -f $@; then :; else \
+ rm -f $< && \
+ $(MAKE) $(AM_MAKEFLAGS) $<; \
+ fi
+
+## -------------------- ##
+## Building & testing. ##
+## -------------------- ##
+
+BUILT_SOURCES += $(mfcalc_sources)
+MAINTAINERCLEANFILES += $(top_srcdir)/examples/mfcalc/mfcalc.stamp
$(mfcalc_sources)
+EXTRA_DIST += examples/mfcalc/mfcalc.stamp
+
+mfcalc_extracted = \
+ examples/mfcalc/calc.h \
+ examples/mfcalc/mfcalc.y
+mfcalc_sources = \
+ $(mfcalc_extracted)
+
+check_PROGRAMS += examples/mfcalc/mfcalc
+examples_mfcalc_mfcalc_SOURCES = \
+ $(mfcalc_sources)
+
+examples_mfcalc_mfcalc_CPPFLAGS = -I$(top_srcdir)/examples/mfcalc
+TESTS += examples/mfcalc/test
+EXTRA_DIST += examples/mfcalc/test
diff --git a/examples/mfcalc/test b/examples/mfcalc/test
new file mode 100755
index 0000000..edcbc14
--- /dev/null
+++ b/examples/mfcalc/test
@@ -0,0 +1,70 @@
+#! /bin/sh
+
+# Copyright (C) 2005-2012 Free Software Foundation, Inc.
+#
+# 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/>.
+
+me=`basename $0`
+
+# Number of the current test.
+number=1
+
+# Exit status of this script.
+exit=true
+
+# The exercised program.
+prog=./examples/mfcalc/mfcalc
+
+# run EXPECTED-EXIT-STATUS EXPECTED-OUTPUT [PARSER-OPTIONS]
+# ---------------------------------------------------------
+run ()
+{
+ # Effective and expected exit status.
+ local sta_exp=$1
+ shift
+ local out_exp=$1
+ shift
+ $prog "$@" - < input >out_eff
+ local sta_eff=$?
+ local out_eff=`cat out_eff`
+ if test $sta_eff -eq $sta_exp; then
+ if test "$out_eff" = "$out_exp"; then
+ printf "$me: PASS: %2d\n" $number
+ else
+ printf "$me: FAIL: %2d (expected output: %s, effective: %s\n" \
+ $number "$out_exp" "$out_eff"
+ exit=false
+ fi
+ else
+ printf "$me: FAIL: %2d (expected status: %d, effective: %d\n" \
+ $number $sta_exp $sta_eff
+ exit=false
+ fi
+ number=`expr $number + 1`
+}
+
+cat >input <<EOF
+1+2*3
+EOF
+run 0 7
+run 0 7
+
+cat >input <<EOF
+(1+2) * 3
+EOF
+run 0 9
+
+
+rm input out_eff
+$exit
--
1.7.9
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master: mfcalc: extract and exercise,
Akim Demaille <=