From 2f5deed45628e4960fabfe28735d73a82eb59d98 Mon Sep 17 00:00:00 2001 From: Pham Huy Hoang Date: Tue, 10 Jan 2023 14:04:27 +0900 Subject: indents(c): Refactor indent queries --- tests/indent/c/if_else.c | 60 +++++++++++++++++++++++++++++++++++++++++++++ tests/indent/c/issue-4079.c | 7 ++++++ tests/indent/c/issue-4117.c | 6 +++++ tests/indent/c/no_braces.c | 1 + tests/indent/c_spec.lua | 32 +++++++++++++++++++++--- 5 files changed, 103 insertions(+), 3 deletions(-) create mode 100644 tests/indent/c/if_else.c create mode 100644 tests/indent/c/issue-4079.c create mode 100644 tests/indent/c/issue-4117.c (limited to 'tests') diff --git a/tests/indent/c/if_else.c b/tests/indent/c/if_else.c new file mode 100644 index 000000000..0a81b3594 --- /dev/null +++ b/tests/indent/c/if_else.c @@ -0,0 +1,60 @@ +int foo(int x){ + if (x > 10) + return 10; + + if (x > 10) + return 10; + else + return 10; + + if (x > 20) + return 20; + else if (x > 15) + return 15; + else + return 10; +} + +int bar(int x){ + if (x > 20) + return 10; + else { + return 10; + } + + if (x > 20) + return 10; + else if (x > 10) { + return 10; + } +} + +int baz(int x){ + if (x > 20) + return x; + else if(x > 10) { + if(x > 10) { + if(x > 10) + return 10; + if(x > 5) { + return 5; + } + } + } + + if (x > 20) + if (x > 19) + if(x > 18) + return x; + + if (x > 20) + return x; + else if (x > 19) { + if (x > 18) + return x; + else + x++; + } + else + return x; +} diff --git a/tests/indent/c/issue-4079.c b/tests/indent/c/issue-4079.c new file mode 100644 index 000000000..fd1490c8f --- /dev/null +++ b/tests/indent/c/issue-4079.c @@ -0,0 +1,7 @@ +int main(){ + for(;;) +} + +int foo(){ + while(1) +} diff --git a/tests/indent/c/issue-4117.c b/tests/indent/c/issue-4117.c new file mode 100644 index 000000000..12e05c63d --- /dev/null +++ b/tests/indent/c/issue-4117.c @@ -0,0 +1,6 @@ +int main(){ + if(1){ + } + else { + } +} diff --git a/tests/indent/c/no_braces.c b/tests/indent/c/no_braces.c index 544ac01d0..9cc63989d 100644 --- a/tests/indent/c/no_braces.c +++ b/tests/indent/c/no_braces.c @@ -10,3 +10,4 @@ int foo(int x) { for (int i = 0; i < 3; ++i) x--; } + diff --git a/tests/indent/c_spec.lua b/tests/indent/c_spec.lua index 040ca9a23..6d5db4aab 100644 --- a/tests/indent/c_spec.lua +++ b/tests/indent/c_spec.lua @@ -38,9 +38,35 @@ describe("indent C:", function() runner:new_line("ternary.c", { on_line = 4, text = ": (x == 0) : 0", indent = 8 }) runner:new_line("issue-1568.c", { on_line = 4, text = "x++;", indent = 8 }) runner:new_line("issue-2086.c", { on_line = 3, text = "}", indent = 0 }) + runner:new_line("issue-4079.c", { on_line = 2, text = "return;", indent = 8 }) + runner:new_line("issue-4079.c", { on_line = 2, text = "{", indent = 4 }) + runner:new_line("issue-4079.c", { on_line = 6, text = "{", indent = 4 }) -- the line after inserted one will be left with wrong indent but we only care about the inserted one - runner:new_line("no_braces.c", { on_line = 4, text = "x++;", indent = 8 }) - runner:new_line("no_braces.c", { on_line = 7, text = "x++;", indent = 8 }) - runner:new_line("no_braces.c", { on_line = 10, text = "x++;", indent = 8 }) + for _, line in ipairs { 2, 4, 7, 10 } do + runner:new_line("no_braces.c", { on_line = line, text = "x++;", indent = 8 }) + end + for _, line in ipairs { 2, 5, 7, 10, 12, 14, 20, 22, 25, 27, 28, 33 } do + runner:new_line("if_else.c", { on_line = line, text = "x++;", indent = 8 }) + end + for _, line in ipairs { 3, 6, 8, 13, 15, 20, 23 } do + runner:new_line("if_else.c", { on_line = line, text = "else", indent = 4 }) + end + for _, info in ipairs { + { 36, 12 }, + { 37, 16 }, + { 38, 12 }, + { 39, 16 }, + { 41, 12 }, + { 42, 8 }, + { 45, 8 }, + { 46, 12 }, + { 47, 16 }, + { 48, 4 }, + { 52, 8 }, + { 53, 12 }, + { 54, 12 }, + } do + runner:new_line("if_else.c", { on_line = info[1], text = "x++;", indent = info[2] }) + end end) end) -- cgit v1.2.3-70-g09d2