From 82ad80de9a967f253026c4874b47486c69402288 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Thu, 18 Jun 2015 17:40:06 +0200 Subject: Add headers to buildfiles, move tests/build/ to tests/ --- tests/build/buildfile | 3 - tests/build/lexer/buildfile | 1 - tests/build/lexer/driver.cxx | 120 ------------------------- tests/build/parser/buildfile | 2 - tests/build/parser/driver.cxx | 102 --------------------- tests/build/semantics/include/buildfile | 1 - tests/build/semantics/include/includee1 | 1 - tests/build/semantics/include/includee2 | 1 - tests/build/semantics/include/includee4 | 1 - tests/build/semantics/include/includer | 10 --- tests/build/semantics/include/nested/includee3 | 2 - tests/build/semantics/include/nested/includee5 | 1 - tests/build/semantics/include/test.std | 5 -- tests/build/semantics/source/buildfile | 1 - tests/build/semantics/source/nested/sourcee3 | 1 - tests/build/semantics/source/sourcee1 | 1 - tests/build/semantics/source/sourcee2 | 1 - tests/build/semantics/source/sourcer | 9 -- tests/build/semantics/source/test.std | 5 -- tests/buildfile | 7 ++ tests/lexer/buildfile | 5 ++ tests/lexer/driver.cxx | 120 +++++++++++++++++++++++++ tests/parser/buildfile | 6 ++ tests/parser/driver.cxx | 102 +++++++++++++++++++++ tests/semantics/include/buildfile | 1 + tests/semantics/include/includee1 | 1 + tests/semantics/include/includee2 | 1 + tests/semantics/include/includee4 | 1 + tests/semantics/include/includer | 10 +++ tests/semantics/include/nested/includee3 | 2 + tests/semantics/include/nested/includee5 | 1 + tests/semantics/include/test.std | 5 ++ tests/semantics/source/buildfile | 1 + tests/semantics/source/nested/sourcee3 | 1 + tests/semantics/source/sourcee1 | 1 + tests/semantics/source/sourcee2 | 1 + tests/semantics/source/sourcer | 9 ++ tests/semantics/source/test.std | 5 ++ 38 files changed, 280 insertions(+), 268 deletions(-) delete mode 100644 tests/build/buildfile delete mode 100644 tests/build/lexer/buildfile delete mode 100644 tests/build/lexer/driver.cxx delete mode 100644 tests/build/parser/buildfile delete mode 100644 tests/build/parser/driver.cxx delete mode 120000 tests/build/semantics/include/buildfile delete mode 100644 tests/build/semantics/include/includee1 delete mode 100644 tests/build/semantics/include/includee2 delete mode 100644 tests/build/semantics/include/includee4 delete mode 100644 tests/build/semantics/include/includer delete mode 100644 tests/build/semantics/include/nested/includee3 delete mode 100644 tests/build/semantics/include/nested/includee5 delete mode 100644 tests/build/semantics/include/test.std delete mode 120000 tests/build/semantics/source/buildfile delete mode 100644 tests/build/semantics/source/nested/sourcee3 delete mode 100644 tests/build/semantics/source/sourcee1 delete mode 100644 tests/build/semantics/source/sourcee2 delete mode 100644 tests/build/semantics/source/sourcer delete mode 100644 tests/build/semantics/source/test.std create mode 100644 tests/buildfile create mode 100644 tests/lexer/buildfile create mode 100644 tests/lexer/driver.cxx create mode 100644 tests/parser/buildfile create mode 100644 tests/parser/driver.cxx create mode 120000 tests/semantics/include/buildfile create mode 100644 tests/semantics/include/includee1 create mode 100644 tests/semantics/include/includee2 create mode 100644 tests/semantics/include/includee4 create mode 100644 tests/semantics/include/includer create mode 100644 tests/semantics/include/nested/includee3 create mode 100644 tests/semantics/include/nested/includee5 create mode 100644 tests/semantics/include/test.std create mode 120000 tests/semantics/source/buildfile create mode 100644 tests/semantics/source/nested/sourcee3 create mode 100644 tests/semantics/source/sourcee1 create mode 100644 tests/semantics/source/sourcee2 create mode 100644 tests/semantics/source/sourcer create mode 100644 tests/semantics/source/test.std (limited to 'tests') diff --git a/tests/build/buildfile b/tests/build/buildfile deleted file mode 100644 index 8d7e692..0000000 --- a/tests/build/buildfile +++ /dev/null @@ -1,3 +0,0 @@ -d= -.: $d -include $d diff --git a/tests/build/lexer/buildfile b/tests/build/lexer/buildfile deleted file mode 100644 index 415c64c..0000000 --- a/tests/build/lexer/buildfile +++ /dev/null @@ -1 +0,0 @@ -exe{driver}: cxx{driver ../../../build/{lexer diagnostics utility}} diff --git a/tests/build/lexer/driver.cxx b/tests/build/lexer/driver.cxx deleted file mode 100644 index f77656d..0000000 --- a/tests/build/lexer/driver.cxx +++ /dev/null @@ -1,120 +0,0 @@ -// file : tests/build/lexer/driver.cxx -*- C++ -*- -// copyright : Copyright (c) 2014-2015 Code Synthesis Ltd -// license : MIT; see accompanying LICENSE file - -#include -#include -#include -#include -#include - -#include -#include - -using namespace std; -using namespace build; - -typedef vector tokens; - -static tokens -lex (const char*); - -int -main () -{ - ostream cnull (nullptr); - diag_stream = &cnull; - - // Whitespaces. - // - assert (lex ("") == tokens ({""})); - assert (lex ("\n") == tokens ({""})); - assert (lex ("\n\n") == tokens ({""})); - assert (lex (" \t \n") == tokens ({""})); - assert (lex ("#comment") == tokens ({""})); - assert (lex (" #comment") == tokens ({""})); - assert (lex ("#comment\n") == tokens ({""})); - assert (lex ("#comment\\\n") == tokens ({""})); - assert (lex ("#comment 1\n#comment2") == tokens ({""})); - - // Punctuation. - // - assert (lex (": \n { }") == tokens ({":", "\n", "{", "}", ""})); - - // Names. - // - assert (lex ("foo") == tokens ({"foo", ""})); - assert (lex ("foo.bar") == tokens ({"foo.bar", ""})); - - // Escaping. - // - assert (lex (" \\\n") == tokens ({""})); - assert (lex ("\\\nfoo") == tokens ({"foo", ""})); - assert (lex (" \\ foo") == tokens ({" foo", ""})); - assert (lex ("fo\\ o\\:") == tokens ({"fo o:", ""})); - assert (lex ("foo\\\nbar") == tokens ({"foo\nbar", ""})); - assert (lex ("foo \\\nbar") == tokens ({"foo", "bar", ""})); - - assert (lex (" \\") == tokens ({""})); - assert (lex (" foo\\") == tokens ({""})); - - // Combinations. - // - assert (lex ("foo: bar") == tokens ({"foo", ":", "bar", ""})); - assert (lex ("\n \nfoo: bar") == tokens ({"foo", ":", "bar", ""})); - assert (lex ("foo: bar\n") == tokens ({"foo", ":", "bar", "\n", ""})); - assert (lex ("foo: bar#comment") == tokens ({"foo", ":", "bar", ""})); - assert (lex ("exe{foo}: obj{bar}") == - tokens ({"exe", "{", "foo", "}", ":", "obj", "{", "bar", "}", ""})); - assert (lex ("foo: bar\nbaz: biz") == - tokens ({"foo", ":", "bar", "\n", "baz", ":", "biz", ""})); - assert (lex ("foo: bar#comment\nbaz: biz") == - tokens ({"foo", ":", "bar", "\n", "baz", ":", "biz", ""})); - assert (lex ("foo:#comment \\\nbar") == - tokens ({"foo", ":", "\n", "bar", ""})); -} - -static tokens -lex (const char* s) -{ - tokens r; - istringstream is (s); - - is.exceptions (istream::failbit | istream::badbit); - lexer l (is, ""); - - try - { - for (token t (l.next ());; t = l.next ()) - { - const char* v (nullptr); - - switch (t.type ()) - { - case token_type::eos: v= ""; break; - case token_type::newline: v = "\n"; break; - case token_type::colon: v = ":"; break; - case token_type::lcbrace: v = "{"; break; - case token_type::rcbrace: v = "}"; break; - case token_type::name: v = t.name ().c_str (); break; - } - - // cerr << t.line () << ':' << t.column () << ':' << v << endl; - - r.push_back (v); - - if (t.type () == token_type::eos) - break; - } - } - catch (const failed&) - { - r.push_back (""); - } - catch (const std::ios_base::failure&) - { - r.push_back (""); - } - - return r; -} diff --git a/tests/build/parser/buildfile b/tests/build/parser/buildfile deleted file mode 100644 index c924dcb..0000000 --- a/tests/build/parser/buildfile +++ /dev/null @@ -1,2 +0,0 @@ -exe{driver}: cxx{driver ../../../build/{lexer parser scope target native \ - prerequisite context diagnostics utility path timestamp}} diff --git a/tests/build/parser/driver.cxx b/tests/build/parser/driver.cxx deleted file mode 100644 index fef2f41..0000000 --- a/tests/build/parser/driver.cxx +++ /dev/null @@ -1,102 +0,0 @@ -// file : tests/build/parser/driver.cxx -*- C++ -*- -// copyright : Copyright (c) 2014-2015 Code Synthesis Ltd -// license : MIT; see accompanying LICENSE file - -#include -#include -#include - -#include -#include -#include -#include - -#include -#include - -using namespace std; -using namespace build; - -static bool -parse (const char*); - -int -main () -{ - ostream cnull (nullptr); - diag_stream = &cnull; - - target_types.insert (file::static_type); - target_types.insert (exe::static_type); - target_types.insert (obj::static_type); - - assert (parse ("")); - assert (parse ("foo:")); - assert (parse ("foo bar:")); - assert (parse ("foo:\nbar:")); - assert (parse ("foo: bar")); - assert (parse ("foo: bar baz")); - assert (parse ("foo bar: baz biz")); - - assert (parse ("{foo}:")); - assert (parse ("{foo bar}:")); - assert (parse ("{{foo bar}}:")); - assert (parse ("{{foo bar} {baz} {biz fox} fix}:")); - - assert (parse ("exe{foo}:")); - assert (parse ("exe{foo bar}:")); - assert (parse ("{exe{foo bar}}:")); - assert (parse ("exe{{foo bar} fox}:")); - assert (parse ("exe{foo}: obj{bar baz} biz.o file{fox}")); - - assert (!parse (":")); - assert (!parse ("foo")); - assert (!parse ("{")); - assert (!parse ("{foo:")); - assert (!parse ("{foo{:")); - assert (!parse ("foo: bar:")); - assert (!parse ("exe{foo:")); - - // Directory prefix. - // - assert (parse ("../{foo}: ../{bar}")); - assert (parse ("../exe{foo}: ../obj{bar}")); - assert (!parse ("../exe{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}")); -} - -static bool -parse (const char* s) -{ - istringstream is (s); - - is.exceptions (istream::failbit | istream::badbit); - parser p; - - try - { - p.parse (is, path (), scopes[path::current ()]); - } - catch (const failed&) - { - return false; - } - - return true; -} diff --git a/tests/build/semantics/include/buildfile b/tests/build/semantics/include/buildfile deleted file mode 120000 index 361dcf4..0000000 --- a/tests/build/semantics/include/buildfile +++ /dev/null @@ -1 +0,0 @@ -includer \ No newline at end of file diff --git a/tests/build/semantics/include/includee1 b/tests/build/semantics/include/includee1 deleted file mode 100644 index 70ed3fc..0000000 --- a/tests/build/semantics/include/includee1 +++ /dev/null @@ -1 +0,0 @@ -print includee1 \ No newline at end of file diff --git a/tests/build/semantics/include/includee2 b/tests/build/semantics/include/includee2 deleted file mode 100644 index 762825b..0000000 --- a/tests/build/semantics/include/includee2 +++ /dev/null @@ -1 +0,0 @@ -print includee2 diff --git a/tests/build/semantics/include/includee4 b/tests/build/semantics/include/includee4 deleted file mode 100644 index 4964d81..0000000 --- a/tests/build/semantics/include/includee4 +++ /dev/null @@ -1 +0,0 @@ -print includee4 diff --git a/tests/build/semantics/include/includer b/tests/build/semantics/include/includer deleted file mode 100644 index 70527a5..0000000 --- a/tests/build/semantics/include/includer +++ /dev/null @@ -1,10 +0,0 @@ -include -include includee1 -include includee1 ../include/includee2 # includee1 is skipped -include nested/includee3 -nested/: -{ - include includee5 - include ../includee2 # skipped -} -: diff --git a/tests/build/semantics/include/nested/includee3 b/tests/build/semantics/include/nested/includee3 deleted file mode 100644 index 7196e82..0000000 --- a/tests/build/semantics/include/nested/includee3 +++ /dev/null @@ -1,2 +0,0 @@ -print nested/includee3 -include ../includee4 diff --git a/tests/build/semantics/include/nested/includee5 b/tests/build/semantics/include/nested/includee5 deleted file mode 100644 index b4c9c74..0000000 --- a/tests/build/semantics/include/nested/includee5 +++ /dev/null @@ -1 +0,0 @@ -print nested/includee5 diff --git a/tests/build/semantics/include/test.std b/tests/build/semantics/include/test.std deleted file mode 100644 index 559584c..0000000 --- a/tests/build/semantics/include/test.std +++ /dev/null @@ -1,5 +0,0 @@ -includee1 -includee2 -nested/includee3 -includee4 -nested/includee5 diff --git a/tests/build/semantics/source/buildfile b/tests/build/semantics/source/buildfile deleted file mode 120000 index b6d1987..0000000 --- a/tests/build/semantics/source/buildfile +++ /dev/null @@ -1 +0,0 @@ -sourcer \ No newline at end of file diff --git a/tests/build/semantics/source/nested/sourcee3 b/tests/build/semantics/source/nested/sourcee3 deleted file mode 100644 index cdf51fb..0000000 --- a/tests/build/semantics/source/nested/sourcee3 +++ /dev/null @@ -1 +0,0 @@ -print nested/sourcee3 \ No newline at end of file diff --git a/tests/build/semantics/source/sourcee1 b/tests/build/semantics/source/sourcee1 deleted file mode 100644 index 683cd1f..0000000 --- a/tests/build/semantics/source/sourcee1 +++ /dev/null @@ -1 +0,0 @@ -print sourcee1 \ No newline at end of file diff --git a/tests/build/semantics/source/sourcee2 b/tests/build/semantics/source/sourcee2 deleted file mode 100644 index c989838..0000000 --- a/tests/build/semantics/source/sourcee2 +++ /dev/null @@ -1 +0,0 @@ -print sourcee2 diff --git a/tests/build/semantics/source/sourcer b/tests/build/semantics/source/sourcer deleted file mode 100644 index eb1310e..0000000 --- a/tests/build/semantics/source/sourcer +++ /dev/null @@ -1,9 +0,0 @@ -source -source sourcee1 -source sourcee1 ../source/sourcee2 -nested/: -{ - source sourcee3 - source ../sourcee1 -} -: diff --git a/tests/build/semantics/source/test.std b/tests/build/semantics/source/test.std deleted file mode 100644 index 84d94b7..0000000 --- a/tests/build/semantics/source/test.std +++ /dev/null @@ -1,5 +0,0 @@ -sourcee1 -sourcee1 -sourcee2 -nested/sourcee3 -sourcee1 diff --git a/tests/buildfile b/tests/buildfile new file mode 100644 index 0000000..d53e326 --- /dev/null +++ b/tests/buildfile @@ -0,0 +1,7 @@ +# file : tests/buildfile +# copyright : Copyright (c) 2014-2015 Code Synthesis Ltd +# license : MIT; see accompanying LICENSE file + +d= +.: $d +include $d diff --git a/tests/lexer/buildfile b/tests/lexer/buildfile new file mode 100644 index 0000000..3aca207 --- /dev/null +++ b/tests/lexer/buildfile @@ -0,0 +1,5 @@ +# file : tests/lexer/buildfile +# copyright : Copyright (c) 2014-2015 Code Synthesis Ltd +# license : MIT; see accompanying LICENSE file + +exe{driver}: cxx{driver ../../../build/{lexer diagnostics utility}} diff --git a/tests/lexer/driver.cxx b/tests/lexer/driver.cxx new file mode 100644 index 0000000..f77656d --- /dev/null +++ b/tests/lexer/driver.cxx @@ -0,0 +1,120 @@ +// file : tests/build/lexer/driver.cxx -*- C++ -*- +// copyright : Copyright (c) 2014-2015 Code Synthesis Ltd +// license : MIT; see accompanying LICENSE file + +#include +#include +#include +#include +#include + +#include +#include + +using namespace std; +using namespace build; + +typedef vector tokens; + +static tokens +lex (const char*); + +int +main () +{ + ostream cnull (nullptr); + diag_stream = &cnull; + + // Whitespaces. + // + assert (lex ("") == tokens ({""})); + assert (lex ("\n") == tokens ({""})); + assert (lex ("\n\n") == tokens ({""})); + assert (lex (" \t \n") == tokens ({""})); + assert (lex ("#comment") == tokens ({""})); + assert (lex (" #comment") == tokens ({""})); + assert (lex ("#comment\n") == tokens ({""})); + assert (lex ("#comment\\\n") == tokens ({""})); + assert (lex ("#comment 1\n#comment2") == tokens ({""})); + + // Punctuation. + // + assert (lex (": \n { }") == tokens ({":", "\n", "{", "}", ""})); + + // Names. + // + assert (lex ("foo") == tokens ({"foo", ""})); + assert (lex ("foo.bar") == tokens ({"foo.bar", ""})); + + // Escaping. + // + assert (lex (" \\\n") == tokens ({""})); + assert (lex ("\\\nfoo") == tokens ({"foo", ""})); + assert (lex (" \\ foo") == tokens ({" foo", ""})); + assert (lex ("fo\\ o\\:") == tokens ({"fo o:", ""})); + assert (lex ("foo\\\nbar") == tokens ({"foo\nbar", ""})); + assert (lex ("foo \\\nbar") == tokens ({"foo", "bar", ""})); + + assert (lex (" \\") == tokens ({""})); + assert (lex (" foo\\") == tokens ({""})); + + // Combinations. + // + assert (lex ("foo: bar") == tokens ({"foo", ":", "bar", ""})); + assert (lex ("\n \nfoo: bar") == tokens ({"foo", ":", "bar", ""})); + assert (lex ("foo: bar\n") == tokens ({"foo", ":", "bar", "\n", ""})); + assert (lex ("foo: bar#comment") == tokens ({"foo", ":", "bar", ""})); + assert (lex ("exe{foo}: obj{bar}") == + tokens ({"exe", "{", "foo", "}", ":", "obj", "{", "bar", "}", ""})); + assert (lex ("foo: bar\nbaz: biz") == + tokens ({"foo", ":", "bar", "\n", "baz", ":", "biz", ""})); + assert (lex ("foo: bar#comment\nbaz: biz") == + tokens ({"foo", ":", "bar", "\n", "baz", ":", "biz", ""})); + assert (lex ("foo:#comment \\\nbar") == + tokens ({"foo", ":", "\n", "bar", ""})); +} + +static tokens +lex (const char* s) +{ + tokens r; + istringstream is (s); + + is.exceptions (istream::failbit | istream::badbit); + lexer l (is, ""); + + try + { + for (token t (l.next ());; t = l.next ()) + { + const char* v (nullptr); + + switch (t.type ()) + { + case token_type::eos: v= ""; break; + case token_type::newline: v = "\n"; break; + case token_type::colon: v = ":"; break; + case token_type::lcbrace: v = "{"; break; + case token_type::rcbrace: v = "}"; break; + case token_type::name: v = t.name ().c_str (); break; + } + + // cerr << t.line () << ':' << t.column () << ':' << v << endl; + + r.push_back (v); + + if (t.type () == token_type::eos) + break; + } + } + catch (const failed&) + { + r.push_back (""); + } + catch (const std::ios_base::failure&) + { + r.push_back (""); + } + + return r; +} diff --git a/tests/parser/buildfile b/tests/parser/buildfile new file mode 100644 index 0000000..5cbcaca --- /dev/null +++ b/tests/parser/buildfile @@ -0,0 +1,6 @@ +# file : tests/parser/buildfile +# copyright : Copyright (c) 2014-2015 Code Synthesis Ltd +# license : MIT; see accompanying LICENSE file + +exe{driver}: cxx{driver ../../../build/{lexer parser scope target native \ + prerequisite context diagnostics utility path timestamp}} diff --git a/tests/parser/driver.cxx b/tests/parser/driver.cxx new file mode 100644 index 0000000..fef2f41 --- /dev/null +++ b/tests/parser/driver.cxx @@ -0,0 +1,102 @@ +// file : tests/build/parser/driver.cxx -*- C++ -*- +// copyright : Copyright (c) 2014-2015 Code Synthesis Ltd +// license : MIT; see accompanying LICENSE file + +#include +#include +#include + +#include +#include +#include +#include + +#include +#include + +using namespace std; +using namespace build; + +static bool +parse (const char*); + +int +main () +{ + ostream cnull (nullptr); + diag_stream = &cnull; + + target_types.insert (file::static_type); + target_types.insert (exe::static_type); + target_types.insert (obj::static_type); + + assert (parse ("")); + assert (parse ("foo:")); + assert (parse ("foo bar:")); + assert (parse ("foo:\nbar:")); + assert (parse ("foo: bar")); + assert (parse ("foo: bar baz")); + assert (parse ("foo bar: baz biz")); + + assert (parse ("{foo}:")); + assert (parse ("{foo bar}:")); + assert (parse ("{{foo bar}}:")); + assert (parse ("{{foo bar} {baz} {biz fox} fix}:")); + + assert (parse ("exe{foo}:")); + assert (parse ("exe{foo bar}:")); + assert (parse ("{exe{foo bar}}:")); + assert (parse ("exe{{foo bar} fox}:")); + assert (parse ("exe{foo}: obj{bar baz} biz.o file{fox}")); + + assert (!parse (":")); + assert (!parse ("foo")); + assert (!parse ("{")); + assert (!parse ("{foo:")); + assert (!parse ("{foo{:")); + assert (!parse ("foo: bar:")); + assert (!parse ("exe{foo:")); + + // Directory prefix. + // + assert (parse ("../{foo}: ../{bar}")); + assert (parse ("../exe{foo}: ../obj{bar}")); + assert (!parse ("../exe{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}")); +} + +static bool +parse (const char* s) +{ + istringstream is (s); + + is.exceptions (istream::failbit | istream::badbit); + parser p; + + try + { + p.parse (is, path (), scopes[path::current ()]); + } + catch (const failed&) + { + return false; + } + + return true; +} diff --git a/tests/semantics/include/buildfile b/tests/semantics/include/buildfile new file mode 120000 index 0000000..361dcf4 --- /dev/null +++ b/tests/semantics/include/buildfile @@ -0,0 +1 @@ +includer \ No newline at end of file diff --git a/tests/semantics/include/includee1 b/tests/semantics/include/includee1 new file mode 100644 index 0000000..70ed3fc --- /dev/null +++ b/tests/semantics/include/includee1 @@ -0,0 +1 @@ +print includee1 \ No newline at end of file diff --git a/tests/semantics/include/includee2 b/tests/semantics/include/includee2 new file mode 100644 index 0000000..762825b --- /dev/null +++ b/tests/semantics/include/includee2 @@ -0,0 +1 @@ +print includee2 diff --git a/tests/semantics/include/includee4 b/tests/semantics/include/includee4 new file mode 100644 index 0000000..4964d81 --- /dev/null +++ b/tests/semantics/include/includee4 @@ -0,0 +1 @@ +print includee4 diff --git a/tests/semantics/include/includer b/tests/semantics/include/includer new file mode 100644 index 0000000..70527a5 --- /dev/null +++ b/tests/semantics/include/includer @@ -0,0 +1,10 @@ +include +include includee1 +include includee1 ../include/includee2 # includee1 is skipped +include nested/includee3 +nested/: +{ + include includee5 + include ../includee2 # skipped +} +: diff --git a/tests/semantics/include/nested/includee3 b/tests/semantics/include/nested/includee3 new file mode 100644 index 0000000..7196e82 --- /dev/null +++ b/tests/semantics/include/nested/includee3 @@ -0,0 +1,2 @@ +print nested/includee3 +include ../includee4 diff --git a/tests/semantics/include/nested/includee5 b/tests/semantics/include/nested/includee5 new file mode 100644 index 0000000..b4c9c74 --- /dev/null +++ b/tests/semantics/include/nested/includee5 @@ -0,0 +1 @@ +print nested/includee5 diff --git a/tests/semantics/include/test.std b/tests/semantics/include/test.std new file mode 100644 index 0000000..559584c --- /dev/null +++ b/tests/semantics/include/test.std @@ -0,0 +1,5 @@ +includee1 +includee2 +nested/includee3 +includee4 +nested/includee5 diff --git a/tests/semantics/source/buildfile b/tests/semantics/source/buildfile new file mode 120000 index 0000000..b6d1987 --- /dev/null +++ b/tests/semantics/source/buildfile @@ -0,0 +1 @@ +sourcer \ No newline at end of file diff --git a/tests/semantics/source/nested/sourcee3 b/tests/semantics/source/nested/sourcee3 new file mode 100644 index 0000000..cdf51fb --- /dev/null +++ b/tests/semantics/source/nested/sourcee3 @@ -0,0 +1 @@ +print nested/sourcee3 \ No newline at end of file diff --git a/tests/semantics/source/sourcee1 b/tests/semantics/source/sourcee1 new file mode 100644 index 0000000..683cd1f --- /dev/null +++ b/tests/semantics/source/sourcee1 @@ -0,0 +1 @@ +print sourcee1 \ No newline at end of file diff --git a/tests/semantics/source/sourcee2 b/tests/semantics/source/sourcee2 new file mode 100644 index 0000000..c989838 --- /dev/null +++ b/tests/semantics/source/sourcee2 @@ -0,0 +1 @@ +print sourcee2 diff --git a/tests/semantics/source/sourcer b/tests/semantics/source/sourcer new file mode 100644 index 0000000..eb1310e --- /dev/null +++ b/tests/semantics/source/sourcer @@ -0,0 +1,9 @@ +source +source sourcee1 +source sourcee1 ../source/sourcee2 +nested/: +{ + source sourcee3 + source ../sourcee1 +} +: diff --git a/tests/semantics/source/test.std b/tests/semantics/source/test.std new file mode 100644 index 0000000..84d94b7 --- /dev/null +++ b/tests/semantics/source/test.std @@ -0,0 +1,5 @@ +sourcee1 +sourcee1 +sourcee2 +nested/sourcee3 +sourcee1 -- cgit v1.1