aboutsummaryrefslogtreecommitdiff
path: root/tests/build/parser
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2014-12-15 10:43:16 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2014-12-15 10:43:16 +0200
commit835ed5f7080a98e9ee80ac08d5585ccdbb63fe0e (patch)
tree23eda92dd9df59e698f6d4a1eb24658fb3fcf323 /tests/build/parser
parent257ad3c2c5e633d2fd3f2228021ac3ae8d6d07cb (diff)
Parse directory scopes
Diffstat (limited to 'tests/build/parser')
-rw-r--r--tests/build/parser/driver.cxx18
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/build/parser/driver.cxx b/tests/build/parser/driver.cxx
index 4ba589d..0b83cb0 100644
--- a/tests/build/parser/driver.cxx
+++ b/tests/build/parser/driver.cxx
@@ -45,6 +45,23 @@ main ()
assert (!parse ("{foo{:"));
assert (!parse ("foo: bar:"));
assert (!parse ("exe{foo:"));
+
+ // Directory scope.
+ //
+ assert (parse ("test/:\n{\n}"));
+ assert (parse ("test/:\n{\n}\n"));
+ assert (parse ("test/:\n{\nfoo:bar\n}"));
+ assert (parse ("test/:\n{\nfoo:bar\n}"));
+ assert (parse ("test/:\n{\nmore/:\n{\n}\n}"));
+ assert (parse ("test/:\n{\nmore/:\n{\nfoo:{bar baz}\n}\n}"));
+
+ assert (!parse ("test/:\n{"));
+ assert (!parse ("test/:\n{\n"));
+ assert (!parse ("test/:\n{\n:"));
+ assert (!parse ("test/:\n{\n} foo: bar\n"));
+ assert (!parse ("test/ foo:\n{\n}"));
+ assert (!parse ("test foo/:\n{\n}"));
+ assert (!parse ("test/ foo/:\n{\n}"));
}
ostream cnull (nullptr);
@@ -56,6 +73,7 @@ parse (const char* s)
is.exceptions (istream::failbit | istream::badbit);
parser p (cnull);
+ //parser p (cerr);
try
{