Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/autoconf/TestShellParser.java')
-rw-r--r--build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/autoconf/TestShellParser.java315
1 files changed, 98 insertions, 217 deletions
diff --git a/build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/autoconf/TestShellParser.java b/build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/autoconf/TestShellParser.java
index bdad6ee29ed..a91b09b0f2d 100644
--- a/build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/autoconf/TestShellParser.java
+++ b/build/org.eclipse.cdt.autotools.ui.tests/src/org/eclipse/cdt/autotools/ui/tests/autoconf/TestShellParser.java
@@ -32,249 +32,183 @@ public class TestShellParser extends BaseParserTest {
@Test
public void testHERE() {
- String HERE_TEXT =
- "\n"+
- "while true; do \n"+
- "AM_INIT_AUTOMAKE([confusion], [$2], EOF)\n"+
- "done\n";
- String text = "cat <<EOF"+
- HERE_TEXT +
- "EOF\n" +
- "blah";
+ String HERE_TEXT = "\n" + "while true; do \n" + "AM_INIT_AUTOMAKE([confusion], [$2], EOF)\n" + "done\n";
+ String text = "cat <<EOF" + HERE_TEXT + "EOF\n" + "blah";
AutoconfElement tree = parse(text);
-
+
// only see a macro call, not a loop
assertTreeStructure(tree, new String[] { "AM_INIT_AUTOMAKE", "confusion", "$2", "EOF", null });
}
+
@Test
public void testHERE2() {
- String HERE_TEXT =
- "\n"+
- "while true; do \n"+
- "AM_INIT_AUTOMAKE([confusion], [$2], EOF)\n"+
- "done\n";
- String text = "cat <<-EOF"+
- HERE_TEXT +
- "EOF\n" +
- "blah";
+ String HERE_TEXT = "\n" + "while true; do \n" + "AM_INIT_AUTOMAKE([confusion], [$2], EOF)\n" + "done\n";
+ String text = "cat <<-EOF" + HERE_TEXT + "EOF\n" + "blah";
AutoconfElement tree = parse(text);
// only see a macro call, not a loop
assertTreeStructure(tree, new String[] { "AM_INIT_AUTOMAKE", "confusion", "$2", "EOF", null });
}
-
+
@Test
public void testIf0() {
- String text = "# comment\n"+
- "\tif true; then\n" +
- "\t\tfoo;\n"+
- "\tfi\n";
+ String text = "# comment\n" + "\tif true; then\n" + "\t\tfoo;\n" + "\tfi\n";
AutoconfElement tree = parse(text);
assertTreeStructure(tree, new String[] { "if" });
}
+
@Test
public void testIf1() {
- String text = "# comment\n"+
- "\tif true; then\n" +
- "\t\tAC_SOMETHING();\n"+
- "\tfi\n";
+ String text = "# comment\n" + "\tif true; then\n" + "\t\tAC_SOMETHING();\n" + "\tfi\n";
AutoconfElement tree = parse(text);
assertTreeStructure(tree, new String[] { "if", "AC_SOMETHING", "", null, null });
}
-
+
@Test
public void testIfElse0() {
- String text = "# comment\n"+
- "\tif true; then\n" +
- "\t\tfoo;\n"+
- "\telse\n"+
- "\t\tbar;\n"+
- "\tfi\n";
+ String text = "# comment\n" + "\tif true; then\n" + "\t\tfoo;\n" + "\telse\n" + "\t\tbar;\n" + "\tfi\n";
AutoconfElement tree = parse(text);
assertTreeStructure(tree, new String[] { "if", "else", null });
}
+
@Test
public void testIfElse1() {
- String text = "# comment\n"+
- "\tif true; then\n" +
- "\t\tAC_ONE(...);\n"+
- "\telse\n"+
- "\t\tAC_TWO(AC_THREE());\n"+
- "\tfi\n";
+ String text = "# comment\n" + "\tif true; then\n" + "\t\tAC_ONE(...);\n" + "\telse\n"
+ + "\t\tAC_TWO(AC_THREE());\n" + "\tfi\n";
AutoconfElement tree = parse(text);
- assertTreeStructure(tree, new String[] {
- "if",
- "AC_ONE",
- "...",
- null,
- "else",
- "AC_TWO",
- "AC_THREE",
- "AC_THREE",
- "",
- null,
- null,
- null,
- null,
- null});
+ assertTreeStructure(tree, new String[] { "if", "AC_ONE", "...", null, "else", "AC_TWO", "AC_THREE", "AC_THREE",
+ "", null, null, null, null, null });
AutoconfElement[] kids = tree.getChildren();
assertEqualSource("AC_ONE(...)", kids[0].getChildren()[0]);
assertEqualSource("AC_TWO(AC_THREE())", kids[0].getChildren()[1].getChildren()[0]);
}
+
@Test
public void testIf2() {
- String text =
- "if blah\n" +
- "then fi\n";
+ String text = "if blah\n" + "then fi\n";
AutoconfElement tree = parse(text);
assertTreeStructure(tree, new String[] { "if" });
}
+
@Test
public void testIfElif() {
- String text = "# comment\n"+
- "\tif true; then\n" +
- "\t\tAC_ONE(...);\n"+
- "\telif false; then \n"+
- "\t\tAC_TWO(...);\n"+
- "\tfi\n";
+ String text = "# comment\n" + "\tif true; then\n" + "\t\tAC_ONE(...);\n" + "\telif false; then \n"
+ + "\t\tAC_TWO(...);\n" + "\tfi\n";
AutoconfElement tree = parse(text);
- assertTreeStructure(tree, new String[] {
- "if",
- "AC_ONE",
- "...",
- null,
- "elif",
- "AC_TWO",
- "...",
- null,
- null,
- null });
+ assertTreeStructure(tree,
+ new String[] { "if", "AC_ONE", "...", null, "elif", "AC_TWO", "...", null, null, null });
}
+
@Test
public void testIfErr1() {
- String text =
- "if then fi\n";
+ String text = "if then fi\n";
AutoconfElement tree = parse(text, true);
assertEquals(1, errors.size());
checkError(AutoconfEditorMessages.getFormattedString(AutoconfParser.INVALID_SPECIFIER, "then"));
assertTreeStructure(tree, new String[] { "if" });
}
+
@Test
public void testIfErr2() {
- String text =
- "if true; do fi\n";
+ String text = "if true; do fi\n";
AutoconfElement tree = parse(text, true);
assertEquals(1, errors.size());
checkError(AutoconfEditorMessages.getString(AutoconfParser.INVALID_DO));
assertTreeStructure(tree, new String[] { "if" });
}
+
@Test
public void testIfErr3() {
- String text =
- "if; else bar; fi\n";
+ String text = "if; else bar; fi\n";
AutoconfElement tree = parse(text, true);
assertEquals(1, errors.size());
checkError(AutoconfEditorMessages.getFormattedString(AutoconfParser.MISSING_SPECIFIER, "then"));
assertTreeStructure(tree, new String[] { "if", "else", null });
}
+
@Test
public void testIfErr4() {
- String text =
- "if true; then stmt fi\n";
+ String text = "if true; then stmt fi\n";
AutoconfElement tree = parse(text, true);
assertEquals(1, errors.size());
checkError(AutoconfEditorMessages.getFormattedString(AutoconfParser.INVALID_TERMINATION, "fi"));
assertTreeStructure(tree, new String[] { "if" });
}
+
@Test
public void testIfErr5() {
- String text =
- "if true; then\n";
+ String text = "if true; then\n";
AutoconfElement tree = parse(text, true);
assertEquals(1, errors.size());
checkError(AutoconfEditorMessages.getFormattedString(AutoconfParser.UNTERMINATED_CONSTRUCT, "if"));
assertTreeStructure(tree, new String[] { "if" });
}
+
@Test
public void testIfErr6() {
- String text =
- "if true; then foo; else\n";
+ String text = "if true; then foo; else\n";
AutoconfElement tree = parse(text, true);
assertEquals(2, errors.size());
checkError(AutoconfEditorMessages.getFormattedString(AutoconfParser.UNTERMINATED_CONSTRUCT, "if"));
checkError(AutoconfEditorMessages.getFormattedString(AutoconfParser.UNTERMINATED_CONSTRUCT, "else"));
assertTreeStructure(tree, new String[] { "if", "else", null });
}
+
@Test
public void testWhile() {
- String text =
- "while true; do foo; done\n";
+ String text = "while true; do foo; done\n";
AutoconfElement tree = parse(text);
assertTreeStructure(tree, new String[] { "while" });
}
+
@Test
public void testWhile2() {
- String text =
- "while true\n" +
- "do\n"+
- "AC_SOMETHING(...); done\n";
+ String text = "while true\n" + "do\n" + "AC_SOMETHING(...); done\n";
AutoconfElement tree = parse(text);
assertTreeStructure(tree, new String[] { "while", "AC_SOMETHING", "...", null, null });
}
+
@Test
public void testWhileErr() {
- String text =
- "while; AC_SOMETHING(...) done\n";
+ String text = "while; AC_SOMETHING(...) done\n";
AutoconfElement tree = parse(text, true);
assertEquals(2, errors.size());
checkError(AutoconfEditorMessages.getFormattedString(AutoconfParser.MISSING_SPECIFIER, "do"));
checkError(AutoconfEditorMessages.getFormattedString(AutoconfParser.INVALID_TERMINATION, "done"));
assertTreeStructure(tree, new String[] { "while", "AC_SOMETHING", "...", null, null });
}
+
@Test
public void testWhileErr2() {
- String text =
- "while true; do AC_SOMETHING(...)\n";
+ String text = "while true; do AC_SOMETHING(...)\n";
AutoconfElement tree = parse(text, true);
assertEquals(1, errors.size());
checkError(AutoconfEditorMessages.getFormattedString(AutoconfParser.UNTERMINATED_CONSTRUCT, "while"));
assertTreeStructure(tree, new String[] { "while", "AC_SOMETHING", "...", null, null });
}
+
@Test
public void testCase() {
- String text =
- "case $VAL in\n"+
- "linux-*-*) AC_FIRST($VAL) ; true ;;\n"+
- "bsd-* | macosx-*) : ;;\n"+
- "*) echo \"I dunno $VAL\";;\n"+
- "esac\n";
+ String text = "case $VAL in\n" + "linux-*-*) AC_FIRST($VAL) ; true ;;\n" + "bsd-* | macosx-*) : ;;\n"
+ + "*) echo \"I dunno $VAL\";;\n" + "esac\n";
AutoconfElement tree = parse(text, false);
- assertTreeStructure(tree, new String[] {
- "case",
- "linux-*-*",
- "AC_FIRST",
- "$VAL",
- null,
- null,
- "bsd-* | macosx-*",
- "*",
- null
- });
+ assertTreeStructure(tree,
+ new String[] { "case", "linux-*-*", "AC_FIRST", "$VAL", null, null, "bsd-* | macosx-*", "*", null });
AutoconfElement[] kids = tree.getChildren();
assertEquals(1, kids.length);
assertTrue(kids[0] instanceof AutoconfCaseElement);
-
+
AutoconfCaseElement caseEl = (AutoconfCaseElement) kids[0];
- assertEqualSource(text.substring(0, text.length()-1), caseEl);
-
+ assertEqualSource(text.substring(0, text.length() - 1), caseEl);
+
assertEquals(3, caseEl.getChildren().length);
-
+
assertTrue(caseEl.getChildren()[0] instanceof AutoconfCaseConditionElement);
assertTrue(caseEl.getChildren()[1] instanceof AutoconfCaseConditionElement);
assertTrue(caseEl.getChildren()[2] instanceof AutoconfCaseConditionElement);
-
+
AutoconfCaseConditionElement caseCond = (AutoconfCaseConditionElement) caseEl.getChildren()[0];
assertEquals("linux-*-*) AC_FIRST($VAL) ; true ;;", caseCond.getSource());
assertEquals(1, caseCond.getChildren().length);
@@ -287,19 +221,19 @@ public class TestShellParser extends BaseParserTest {
caseCond = (AutoconfCaseConditionElement) caseEl.getChildren()[2];
assertEquals("*) echo \"I dunno $VAL\";;", caseCond.getSource());
assertEquals(0, caseCond.getChildren().length);
-
+
}
+
@Test
public void testCaseErr() {
- String text =
- "case $VAL; linux-*-*) AC_FIRST($VAL) ; true esac\n";
+ String text = "case $VAL; linux-*-*) AC_FIRST($VAL) ; true esac\n";
AutoconfElement tree = parse(text, true);
assertEquals(2, errors.size());
checkError(AutoconfEditorMessages.getString(AutoconfParser.INVALID_IN));
checkError(AutoconfEditorMessages.getFormattedString(AutoconfParser.INVALID_TERMINATION, "esac"));
-
+
assertTreeStructure(tree, new String[] { "case", "linux-*-*", "AC_FIRST", "$VAL", null, null, null });
-
+
AutoconfElement[] kids = tree.getChildren();
AutoconfCaseElement caseEl = (AutoconfCaseElement) kids[0];
AutoconfCaseConditionElement caseCond = (AutoconfCaseConditionElement) caseEl.getChildren()[0];
@@ -308,148 +242,95 @@ public class TestShellParser extends BaseParserTest {
assertEqualSource("AC_FIRST($VAL)", caseCond.getChildren()[0]);
}
+
@Test
public void testCaseErr2() {
- String text =
- "case $VAL in\n";
+ String text = "case $VAL in\n";
AutoconfElement tree = parse(text, true);
assertEquals(1, errors.size());
checkError(AutoconfEditorMessages.getFormattedString(AutoconfParser.UNTERMINATED_CONSTRUCT, "case"));
-
+
assertTreeStructure(tree, new String[] { "case" });
}
+
@Test
public void testForIn() {
// don't get upset by 'in'
- String text =
- "for VAL in 1 2 3 4; do echo $VAL; done\n";
+ String text = "for VAL in 1 2 3 4; do echo $VAL; done\n";
AutoconfElement tree = parse(text, false);
-
+
assertTreeStructure(tree, new String[] { "for" });
AutoconfElement[] kids = tree.getChildren();
-
+
AutoconfElement forEl = kids[0];
- assertEqualSource(text.substring(0, text.length()-1), forEl);
-
+ assertEqualSource(text.substring(0, text.length() - 1), forEl);
+
}
+
@Test
public void testForDo() {
// don't get upset by parentheses
- String text =
- "for (( AC_1; AC_2(); AC_3(...) )); do echo $VAL; done\n";
+ String text = "for (( AC_1; AC_2(); AC_3(...) )); do echo $VAL; done\n";
AutoconfElement tree = parse(text, false);
-
+
assertTreeStructure(tree, new String[] { "for", "AC_1", "AC_2", "", null, "AC_3", "...", null, null });
-
+
}
+
@Test
public void testUntil() {
- String text =
- "until false; do AC_SOMETHING(...); done\n";
+ String text = "until false; do AC_SOMETHING(...); done\n";
AutoconfElement tree = parse(text, false);
assertTreeStructure(tree, new String[] { "until", "AC_SOMETHING", "...", null, null });
}
+
@Test
public void testSelect() {
- String text =
- "select VAR in 1 2 3; do AC_SOMETHING(...); done\n"+
- "select VAR; do AC_SOMETHING; done\n";
-
+ String text = "select VAR in 1 2 3; do AC_SOMETHING(...); done\n" + "select VAR; do AC_SOMETHING; done\n";
+
AutoconfElement tree = parse(text, false);
- assertTreeStructure(tree, new String[] {
- "select",
- "AC_SOMETHING",
- "...",
- null,
- null,
- "select",
- "AC_SOMETHING",
- null
- });
+ assertTreeStructure(tree,
+ new String[] { "select", "AC_SOMETHING", "...", null, null, "select", "AC_SOMETHING", null });
}
+
@Test
public void testComplex1() {
- String text =
- "AM_INIT_AUTOMAKE([foo1], 1.96)\n" +
- "while true; do \n" +
- " var=shift;\n" +
- " if [ test -f \"$var\"] ; then\n"+
- " AC_SOMETHING($var);\n"+
- " fi\n"+
- "done;\n"+
- "AM_GENERATE(Makefile)\n";
+ String text = "AM_INIT_AUTOMAKE([foo1], 1.96)\n" + "while true; do \n" + " var=shift;\n"
+ + " if [ test -f \"$var\"] ; then\n" + " AC_SOMETHING($var);\n" + " fi\n" + "done;\n"
+ + "AM_GENERATE(Makefile)\n";
AutoconfElement tree = parse(text, false);
- assertTreeStructure(tree, new String[] {
- "AM_INIT_AUTOMAKE",
- "foo1",
- "1.96",
- null,
- "while",
- "if",
- "AC_SOMETHING",
- "$var",
- null,
- null,
- null,
- "AM_GENERATE",
- "Makefile",
- null
- });
+ assertTreeStructure(tree, new String[] { "AM_INIT_AUTOMAKE", "foo1", "1.96", null, "while", "if",
+ "AC_SOMETHING", "$var", null, null, null, "AM_GENERATE", "Makefile", null });
}
+
@Test
public void testComplex2() {
- String text =
- "if true; then\n" +
- "AC_CANONICAL_HOST\n" +
- "else\n" +
- "case foo in \n" +
- " 3) 1 ;;\n" +
- "esac;\n" +
- "fi\n";
+ String text = "if true; then\n" + "AC_CANONICAL_HOST\n" + "else\n" + "case foo in \n" + " 3) 1 ;;\n"
+ + "esac;\n" + "fi\n";
AutoconfElement tree = parse(text, false);
- assertTreeStructure(tree, new String[] {
- "if",
- "AC_CANONICAL_HOST",
- "else",
- "case",
- "3",
- null,
- null,
- null
- });
+ assertTreeStructure(tree, new String[] { "if", "AC_CANONICAL_HOST", "else", "case", "3", null, null, null });
}
+
@Test
public void testEarlyClose() {
- String text =
- "if true; then foo ; fi\n"+
- "fi\n"+
- "while true; do done;\n";
+ String text = "if true; then foo ; fi\n" + "fi\n" + "while true; do done;\n";
AutoconfElement tree = parse(text, true);
- assertTreeStructure(tree, new String[] {
- "if",
- "while"
- });
+ assertTreeStructure(tree, new String[] { "if", "while" });
}
+
@Test
public void testOverlapping() {
- String text =
- "for foo\n"+
- "if bar\n";
+ String text = "for foo\n" + "if bar\n";
AutoconfElement tree = parse(text, true);
- assertTreeStructure(tree, new String[] {
- "for",
- "if"
- });
+ assertTreeStructure(tree, new String[] { "for", "if" });
}
+
@Test
public void testDollar() {
// dollars guard keywords
- String text =
- "if [ $if == 3 ] ; then $for; fi\n";
+ String text = "if [ $if == 3 ] ; then $for; fi\n";
AutoconfElement tree = parse(text);
- assertTreeStructure(tree, new String[] {
- "if"
- });
+ assertTreeStructure(tree, new String[] { "if" });
}
}

Back to the top