summaryrefslogtreecommitdiff
path: root/tests/file
diff options
context:
space:
mode:
Diffstat (limited to 'tests/file')
-rw-r--r--tests/file/base.ops2
-rw-r--r--tests/file/buildfile13
-rw-r--r--tests/file/driver.cxx2
-rw-r--r--tests/file/empty.ops3
-rw-r--r--tests/file/makefile99
-rw-r--r--tests/file/test-000.ops6
-rw-r--r--tests/file/test-000.std18
-rw-r--r--tests/file/test-001.ops3
-rw-r--r--tests/file/test-001.std6
-rw-r--r--tests/file/test-002.ops7
-rw-r--r--tests/file/test-002.std17
-rw-r--r--tests/file/test-003.std7
-rw-r--r--tests/file/test-004.ops17
-rw-r--r--tests/file/test-004.std32
-rw-r--r--tests/file/test-005.ops1
-rw-r--r--tests/file/test-005.std1
-rw-r--r--tests/file/test-006.ops1
-rw-r--r--tests/file/test-006.std1
-rw-r--r--tests/file/test-007.ops1
-rw-r--r--tests/file/test-007.std1
-rw-r--r--tests/file/test-008.ops1
-rw-r--r--tests/file/test-008.std1
-rw-r--r--tests/file/test-009.ops1
-rw-r--r--tests/file/test-009.std1
-rw-r--r--tests/file/test-010.ops1
-rw-r--r--tests/file/test-010.std1
-rw-r--r--tests/file/test-011.ops1
-rw-r--r--tests/file/test-011.std1
-rw-r--r--tests/file/test-012.ops1
-rw-r--r--tests/file/test-012.std1
-rw-r--r--tests/file/testscript241
31 files changed, 255 insertions, 234 deletions
diff --git a/tests/file/base.ops b/tests/file/base.ops
deleted file mode 100644
index 45d7696..0000000
--- a/tests/file/base.ops
+++ /dev/null
@@ -1,2 +0,0 @@
--a 21
--b 21
diff --git a/tests/file/buildfile b/tests/file/buildfile
new file mode 100644
index 0000000..08e1017
--- /dev/null
+++ b/tests/file/buildfile
@@ -0,0 +1,13 @@
+# file : tests/file/buildfile
+# copyright : Copyright (c) 2009-2013 Code Synthesis Tools CC
+# license : MIT; see accompanying LICENSE file
+
+exe{driver}: cxx{driver} {hxx ixx cxx}{test} test{testscript}
+
+cxx.poptions =+ -I$out_base
+
+# Generated options parser.
+#
+{hxx ixx cxx}{test}: cli{test}
+
+cli.options = --generate-file-scanner
diff --git a/tests/file/driver.cxx b/tests/file/driver.cxx
index d0b5774..16609ec 100644
--- a/tests/file/driver.cxx
+++ b/tests/file/driver.cxx
@@ -24,6 +24,6 @@ main (int argc, char* argv[])
}
catch (const cli::exception& e)
{
- cout << e << endl;
+ cerr << e << endl;
}
}
diff --git a/tests/file/empty.ops b/tests/file/empty.ops
deleted file mode 100644
index ed080fb..0000000
--- a/tests/file/empty.ops
+++ /dev/null
@@ -1,3 +0,0 @@
-# Empty options file.
-#
-
diff --git a/tests/file/makefile b/tests/file/makefile
deleted file mode 100644
index 7e4df6a..0000000
--- a/tests/file/makefile
+++ /dev/null
@@ -1,99 +0,0 @@
-# file : tests/file/makefile
-# author : Boris Kolpackov <boris@codesynthesis.com>
-# copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC
-# license : MIT; see accompanying LICENSE file
-
-include $(dir $(lastword $(MAKEFILE_LIST)))../../build/bootstrap.make
-
-cxx_tun := driver.cxx
-cli_tun := test.cli
-
-tests := 000 001 002 003 004 005 006 007 008 009 010 011 012
-
-#
-#
-cxx_obj := $(addprefix $(out_base)/,$(cxx_tun:.cxx=.o) $(cli_tun:.cli=.o))
-cxx_od := $(cxx_obj:.o=.o.d)
-
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
-
-# Build.
-#
-$(driver): $(cxx_obj)
-$(cxx_obj) $(cxx_od): cpp_options := -I$(out_base)
-
-genf := $(cli_tun:.cli=.hxx) $(cli_tun:.cli=.ixx) $(cli_tun:.cli=.cxx)
-gen := $(addprefix $(out_base)/,$(genf))
-
-$(gen): $(out_root)/cli/cli
-$(gen): cli := $(out_root)/cli/cli
-$(gen): cli_options += --generate-file-scanner
-
-$(call include-dep,$(cxx_od),$(cxx_obj),$(gen))
-
-# Alias for default target.
-#
-$(out_base)/: $(driver)
-
-# Test.
-#
-test_targets := $(addprefix $(out_base)/.test-,$(tests))
-
-$(test): $(test_targets)
-$(test_targets): driver := $(driver)
-
-.PHONY: $(out_base)/.test-%
-
-$(out_base)/.test-000: $(driver) $(src_base)/test-000.ops
- $(call message,test $(out_base)/000,$(driver) -a 1 \
---file $(src_base)/empty.ops -b 1 --file $(src_base)/base.ops \
---file $(src_base)/test-000.ops b | diff -u $(src_base)/test-000.std -)
-
-$(out_base)/.test-001: $(driver) $(src_base)/test-001.ops
- $(call message,test $(out_base)/001,$(driver) -a 1 -- --file \
-test-001.ops b | diff -u $(src_base)/test-001.std -)
-
-$(out_base)/.test-002: $(driver) $(src_base)/test-002.ops
- $(call message,test $(out_base)/002,$(driver) -a 1 --file \
-$(src_base)/test-002.ops --file empty.ops b | diff -u $(src_base)/test-002.std -)
-
-$(out_base)/.test-003: $(driver)
- $(call message,test $(out_base)/003,$(driver) -a 1 --file \
-$(src_base)/base.ops --file test-003.ops b | diff -u $(src_base)/test-003.std -)
-
-$(out_base)/.test-%: $(driver) $(src_base)/test-%.ops $(src_base)/test-%.std
- $(call message,test $(out_base)/$*,$(driver) --file \
-$(src_base)/test-$*.ops | diff -u $(src_base)/test-$*.std -)
-
-# Clean.
-#
-$(clean): \
- $(driver).o.clean \
- $(addsuffix .cxx.clean,$(cxx_obj)) \
- $(addsuffix .cxx.clean,$(cxx_od)) \
- $(addprefix $(out_base)/,$(cli_tun:.cli=.cxx.cli.clean))
-
-# Generated .gitignore.
-#
-ifeq ($(out_base),$(src_base))
-$(driver): | $(out_base)/.gitignore
-
-$(out_base)/.gitignore: files := driver $(genf)
-$(clean): $(out_base)/.gitignore.clean
-
-$(call include,$(bld_root)/git/gitignore.make)
-endif
-
-# How to.
-#
-$(call include,$(bld_root)/cxx/o-e.make)
-$(call include,$(bld_root)/cxx/cxx-o.make)
-$(call include,$(bld_root)/cxx/cxx-d.make)
-$(call include,$(scf_root)/cli/cli-cxx.make)
-
-# Dependencies.
-#
-$(call import,$(src_root)/cli/makefile)
-
diff --git a/tests/file/test-000.ops b/tests/file/test-000.ops
deleted file mode 100644
index c0462e2..0000000
--- a/tests/file/test-000.ops
+++ /dev/null
@@ -1,6 +0,0 @@
--a 11
--b 11
- -a 12
-
- -b 12
-a
diff --git a/tests/file/test-000.std b/tests/file/test-000.std
deleted file mode 100644
index 392b83d..0000000
--- a/tests/file/test-000.std
+++ /dev/null
@@ -1,18 +0,0 @@
--a
-1
--b
-1
--a
-21
--b
-21
--a
-11
--b
-11
--a
-12
--b
-12
-a
-b
diff --git a/tests/file/test-001.ops b/tests/file/test-001.ops
deleted file mode 100644
index ed080fb..0000000
--- a/tests/file/test-001.ops
+++ /dev/null
@@ -1,3 +0,0 @@
-# Empty options file.
-#
-
diff --git a/tests/file/test-001.std b/tests/file/test-001.std
deleted file mode 100644
index 8dec5e4..0000000
--- a/tests/file/test-001.std
+++ /dev/null
@@ -1,6 +0,0 @@
--a
-1
---
---file
-test-001.ops
-b
diff --git a/tests/file/test-002.ops b/tests/file/test-002.ops
deleted file mode 100644
index 5c728a0..0000000
--- a/tests/file/test-002.ops
+++ /dev/null
@@ -1,7 +0,0 @@
--a 11
--b 11
---
---file base.ops
--a 12
--b 12
-a
diff --git a/tests/file/test-002.std b/tests/file/test-002.std
deleted file mode 100644
index cd99b20..0000000
--- a/tests/file/test-002.std
+++ /dev/null
@@ -1,17 +0,0 @@
--a
-1
--a
-11
--b
-11
---
---file
-base.ops
--a
-12
--b
-12
-a
---file
-empty.ops
-b
diff --git a/tests/file/test-003.std b/tests/file/test-003.std
deleted file mode 100644
index 6e9a6ae..0000000
--- a/tests/file/test-003.std
+++ /dev/null
@@ -1,7 +0,0 @@
--a
-1
--a
-21
--b
-21
-unable to open file 'test-003.ops' or read failure
diff --git a/tests/file/test-004.ops b/tests/file/test-004.ops
deleted file mode 100644
index dee1b30..0000000
--- a/tests/file/test-004.ops
+++ /dev/null
@@ -1,17 +0,0 @@
--a a"b"c
--a "abc"
--a "a"b"
--a ""
--a " abc "
--a " "
--a """
--a "'"
-
--a a'b'c
--a 'abc'
--a 'a'b'
--a ''
--a ' abc '
--a ' '
--a '''
--a '"'
diff --git a/tests/file/test-004.std b/tests/file/test-004.std
deleted file mode 100644
index b06e8b9..0000000
--- a/tests/file/test-004.std
+++ /dev/null
@@ -1,32 +0,0 @@
--a
-a"b"c
--a
-abc
--a
-a"b
--a
-
--a
- abc
--a
-
--a
-"
--a
-'
--a
-a'b'c
--a
-abc
--a
-a'b
--a
-
--a
- abc
--a
-
--a
-'
--a
-"
diff --git a/tests/file/test-005.ops b/tests/file/test-005.ops
deleted file mode 100644
index c9acf33..0000000
--- a/tests/file/test-005.ops
+++ /dev/null
@@ -1 +0,0 @@
--a "
diff --git a/tests/file/test-005.std b/tests/file/test-005.std
deleted file mode 100644
index 52b6e89..0000000
--- a/tests/file/test-005.std
+++ /dev/null
@@ -1 +0,0 @@
-unmatched quote in argument '"'
diff --git a/tests/file/test-006.ops b/tests/file/test-006.ops
deleted file mode 100644
index 454366d..0000000
--- a/tests/file/test-006.ops
+++ /dev/null
@@ -1 +0,0 @@
--a "abc
diff --git a/tests/file/test-006.std b/tests/file/test-006.std
deleted file mode 100644
index 903f7a7..0000000
--- a/tests/file/test-006.std
+++ /dev/null
@@ -1 +0,0 @@
-unmatched quote in argument '"abc'
diff --git a/tests/file/test-007.ops b/tests/file/test-007.ops
deleted file mode 100644
index 8012af9..0000000
--- a/tests/file/test-007.ops
+++ /dev/null
@@ -1 +0,0 @@
--a abc"
diff --git a/tests/file/test-007.std b/tests/file/test-007.std
deleted file mode 100644
index fff8f85..0000000
--- a/tests/file/test-007.std
+++ /dev/null
@@ -1 +0,0 @@
-unmatched quote in argument 'abc"'
diff --git a/tests/file/test-008.ops b/tests/file/test-008.ops
deleted file mode 100644
index 773a366..0000000
--- a/tests/file/test-008.ops
+++ /dev/null
@@ -1 +0,0 @@
--a '
diff --git a/tests/file/test-008.std b/tests/file/test-008.std
deleted file mode 100644
index 5d74dc3..0000000
--- a/tests/file/test-008.std
+++ /dev/null
@@ -1 +0,0 @@
-unmatched quote in argument '''
diff --git a/tests/file/test-009.ops b/tests/file/test-009.ops
deleted file mode 100644
index 6c3d5c9..0000000
--- a/tests/file/test-009.ops
+++ /dev/null
@@ -1 +0,0 @@
--a 'abc
diff --git a/tests/file/test-009.std b/tests/file/test-009.std
deleted file mode 100644
index b212446..0000000
--- a/tests/file/test-009.std
+++ /dev/null
@@ -1 +0,0 @@
-unmatched quote in argument ''abc'
diff --git a/tests/file/test-010.ops b/tests/file/test-010.ops
deleted file mode 100644
index eb33825..0000000
--- a/tests/file/test-010.ops
+++ /dev/null
@@ -1 +0,0 @@
--a abc'
diff --git a/tests/file/test-010.std b/tests/file/test-010.std
deleted file mode 100644
index 868ee9d..0000000
--- a/tests/file/test-010.std
+++ /dev/null
@@ -1 +0,0 @@
-unmatched quote in argument 'abc''
diff --git a/tests/file/test-011.ops b/tests/file/test-011.ops
deleted file mode 100644
index 2330c9c..0000000
--- a/tests/file/test-011.ops
+++ /dev/null
@@ -1 +0,0 @@
--a "abc'
diff --git a/tests/file/test-011.std b/tests/file/test-011.std
deleted file mode 100644
index 2133ddf..0000000
--- a/tests/file/test-011.std
+++ /dev/null
@@ -1 +0,0 @@
-unmatched quote in argument '"abc''
diff --git a/tests/file/test-012.ops b/tests/file/test-012.ops
deleted file mode 100644
index d5efe67..0000000
--- a/tests/file/test-012.ops
+++ /dev/null
@@ -1 +0,0 @@
--a 'abc"
diff --git a/tests/file/test-012.std b/tests/file/test-012.std
deleted file mode 100644
index 2e85d39..0000000
--- a/tests/file/test-012.std
+++ /dev/null
@@ -1 +0,0 @@
-unmatched quote in argument ''abc"'
diff --git a/tests/file/testscript b/tests/file/testscript
new file mode 100644
index 0000000..3e7c18c
--- /dev/null
+++ b/tests/file/testscript
@@ -0,0 +1,241 @@
+# file : tests/file/testscript
+# copyright : Copyright (c) 2009-2013 Code Synthesis Tools CC
+# license : MIT; see accompanying LICENSE file
+
+# End-of-line marker. Place its expansion in here-documents after the trailing
+# spaces to prevent them from being stripped by editors and to improve
+# readability.
+#
+eol = ""
+
++cat <<EOI >>>empty.cli
+# Empty options file.
+#
+
+EOI
++cat <<EOI >>>base.cli
+-a 21
+-b 21
+EOI
+
+# @@ Give tests some meaningfull descriptions.
+#
+
+: 000
+:
+cat <<EOI >>>test.cli;
+-a 11
+-b 11
+ -a 12
+
+ -b 12
+a
+EOI
+$* -a 1 --file ../empty.cli -b 1 --file ../base.cli --file test.cli b >>EOO
+-a
+1
+-b
+1
+-a
+21
+-b
+21
+-a
+11
+-b
+11
+-a
+12
+-b
+12
+a
+b
+EOO
+
+: 001
+:
+cat <<EOI >>>test.cli;
+# Empty options file.
+#
+
+EOI
+$* -a 1 -- --file test.cli b >>EOO
+-a
+1
+--
+--file
+test.cli
+b
+EOO
+
+: 002
+:
+cat <<EOI >>>test.cli;
+-a 11
+-b 11
+--
+--file ../base.cli
+-a 12
+-b 12
+a
+EOI
+$* -a 1 --file test.cli --file ../empty.cli b >>EOO
+-a
+1
+-a
+11
+-b
+11
+--
+--file
+../base.cli
+-a
+12
+-b
+12
+a
+--file
+../empty.cli
+b
+EOO
+
+: 003
+:
+$* -a 1 --file ../base.cli --file test.cli b >>EOO 2>>EOE
+-a
+1
+-a
+21
+-b
+21
+EOO
+unable to open file 'test.cli' or read failure
+EOE
+
+: 004
+:
+cat <<EOI >>>test.cli;
+-a a"b"c
+-a "abc"
+-a "a"b"
+-a ""
+-a " abc "
+-a " "
+-a """
+-a "'"
+
+-a a'b'c
+-a 'abc'
+-a 'a'b'
+-a ''
+-a ' abc '
+-a ' '
+-a '''
+-a '"'
+EOI
+$* --file test.cli >>EOO
+-a
+a"b"c
+-a
+abc
+-a
+a"b
+-a
+
+-a
+ abc $eol
+-a
+ $eol
+-a
+"
+-a
+'
+-a
+a'b'c
+-a
+abc
+-a
+a'b
+-a
+
+-a
+ abc $eol
+-a
+ $eol
+-a
+'
+-a
+"
+EOO
+
+: 005
+:
+cat <<EOI >>>test.cli;
+-a "
+EOI
+$* --file test.cli 2>>EOE
+unmatched quote in argument '"'
+EOE
+
+: 006
+:
+cat <<EOI >>>test.cli;
+-a "abc
+EOI
+$* --file test.cli 2>>EOE
+unmatched quote in argument '"abc'
+EOE
+
+: 007
+:
+cat <<EOI >>>test.cli;
+-a abc"
+EOI
+$* --file test.cli 2>>EOE
+unmatched quote in argument 'abc"'
+EOE
+
+: 008
+:
+cat <<EOI >>>test.cli;
+-a '
+EOI
+$* --file test.cli 2>>EOE
+unmatched quote in argument '''
+EOE
+
+: 009
+:
+cat <<EOI >>>test.cli;
+-a 'abc
+EOI
+$* --file test.cli 2>>EOE
+unmatched quote in argument ''abc'
+EOE
+
+: 010
+:
+cat <<EOI >>>test.cli;
+-a abc'
+EOI
+$* --file test.cli 2>>EOE
+unmatched quote in argument 'abc''
+EOE
+
+: 011
+:
+cat <<EOI >>>test.cli;
+-a "abc'
+EOI
+$* --file test.cli 2>>EOE
+unmatched quote in argument '"abc''
+EOE
+
+: 012
+:
+cat <<EOI >>>test.cli;
+-a 'abc"
+EOI
+$* --file test.cli 2>>EOE
+unmatched quote in argument ''abc"'
+EOE