Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 55 additions & 0 deletions docs/case_generate_alternative_rules.rst
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,61 @@ This rule checks for a single space before the **=>** operator.

when 3 =>

case_generate_alternative_200
#############################

|phase_3| |error| |blank_line|

This rule checks for a blank line below the **=>** keyword.

|configuring_blank_lines_link|

**Violation**

.. code-block:: vhdl

when 0 =>
a <= b;

**Fix**

.. code-block:: vhdl

when 0 =>

a <= b;

case_generate_alternative_201
#############################

|phase_3| |error| |blank_line|

This rule checks for blank lines or comments above the **when** keyword.

|configuring_previous_line_rules_link|

The default style is :code:`allow_comment`.

**Violation**

.. code-block:: vhdl

case data is
when 3 =>
-- Comment
when 4 =>

**Fix**

.. code-block:: vhdl

case data is

when 3 =>

-- Comment
when 4 =>

case_generate_alternative_300
#############################

Expand Down
26 changes: 26 additions & 0 deletions docs/case_generate_statement_rules.rst
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,32 @@ This rule checks for a single space before the **generate** keyword.

case data generate

case_generate_statement_200
###########################

|phase_3| |error| |blank_line|

This rule checks for blank lines or comments above the **end** keyword.

|configuring_blank_lines_link|

**Violation**

.. code-block:: vhdl

when others =>
null;
end generate;

**Fix**

.. code-block:: vhdl

when others =>
null;

end generate;

case_generate_statement_400
###########################

Expand Down
2 changes: 2 additions & 0 deletions docs/configuring_blank_lines.rst
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,8 @@ Rules Enforcing Blank Lines
* `case_009 <case_rules.html#case-009>`_
* `case_010 <case_rules.html#case-010>`_
* `case_200 <case_rules.html#case-200>`_
* `case_generate_alternative_200 <case_generate_alternative_rules.html#case-generate-alternative-200>`_
* `case_generate_statement_200 <case_generate_statement_rules.html#case-generate-statement-200>`_
* `component_016 <component_rules.html#component-016>`_
* `component_018 <component_rules.html#component-018>`_
* `constant_200 <constant_rules.html#constant-200>`_
Expand Down
1 change: 1 addition & 0 deletions docs/configuring_previous_line_rules.rst
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,7 @@ Rules Enforcing Previous Lines
* `block_200 <block_rules.html#block-200>`_
* `case_007 <case_rules.html#case-007>`_
* `case_201 <case_rules.html#case-201>`_
* `case_generate_alternative_201 <case_generate_alternative_rules.html#case-generate-alternative-201>`_
* `component_003 <component_rules.html#component-003>`_
* `context_003 <context_rules.html#context-003>`_
* `entity_003 <entity_rules.html#entity-003>`_
Expand Down
3 changes: 3 additions & 0 deletions docs/rule_groups/blank_line_rule_group.rst
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@ Rules Enforcing Blank Line Rule Group
* `case_010 <../case_rules.html#case-010>`_
* `case_200 <../case_rules.html#case-200>`_
* `case_201 <../case_rules.html#case-201>`_
* `case_generate_alternative_200 <../case_generate_alternative_rules.html#case-generate-alternative-200>`_
* `case_generate_alternative_201 <../case_generate_alternative_rules.html#case-generate-alternative-201>`_
* `case_generate_statement_200 <../case_generate_statement_rules.html#case-generate-statement-200>`_
* `component_003 <../component_rules.html#component-003>`_
* `component_016 <../component_rules.html#component-016>`_
* `component_018 <../component_rules.html#component-018>`_
Expand Down
26 changes: 26 additions & 0 deletions tests/case_generate_alternative/rule_200_test_input.fixed.vhd
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@

architecture ARCH of ENTITY is

begin

gen_label : case boolean_1 generate

when STATE_1 =>

a <= b;
b <= c;
c <= d;

end generate;

gen_label : case boolean_1 generate

when STATE_1 =>

a <= b;
b <= c;
c <= d;

end generate;

end architecture ARCH;
25 changes: 25 additions & 0 deletions tests/case_generate_alternative/rule_200_test_input.vhd
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@

architecture ARCH of ENTITY is

begin

gen_label : case boolean_1 generate

when STATE_1 =>

a <= b;
b <= c;
c <= d;

end generate;

gen_label : case boolean_1 generate

when STATE_1 =>
a <= b;
b <= c;
c <= d;

end generate;

end architecture ARCH;
32 changes: 32 additions & 0 deletions tests/case_generate_alternative/rule_201_test_input.fixed.vhd
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@

architecture ARCH of ENTITY is

begin

gen_label : case boolean_1 generate

when STATE_1 =>

-- Comment
when STATE_2 =>

end generate;

-- Violations below

gen_label : case boolean_1 generate

when STATE_1 =>

-- Comment
when STATE_2 =>

end generate;

gen_label : case boolean_2 generate

-- Comment
when STATE_1 =>
end generate;

end architecture ARCH;
29 changes: 29 additions & 0 deletions tests/case_generate_alternative/rule_201_test_input.vhd
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@

architecture ARCH of ENTITY is

begin

gen_label : case boolean_1 generate

when STATE_1 =>

-- Comment
when STATE_2 =>

end generate;

-- Violations below

gen_label : case boolean_1 generate
when STATE_1 =>
-- Comment
when STATE_2 =>

end generate;

gen_label : case boolean_2 generate
-- Comment
when STATE_1 =>
end generate;

end architecture ARCH;
45 changes: 45 additions & 0 deletions tests/case_generate_alternative/test_rule_200.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# -*- coding: utf-8 -*-

import os
import unittest

from tests import utils
from vsg import vhdlFile
from vsg.rules import case_generate_alternative

sTestDir = os.path.dirname(__file__)

lFile, eError = vhdlFile.utils.read_vhdlfile(os.path.join(sTestDir, "rule_200_test_input.vhd"))

lExpected = []
lExpected.append("")
utils.read_file(os.path.join(sTestDir, "rule_200_test_input.fixed.vhd"), lExpected)


class test_rule(unittest.TestCase):
def setUp(self):
self.oFile = vhdlFile.vhdlFile(lFile)
self.assertIsNone(eError)

def test_rule_200(self):
oRule = case_generate_alternative.rule_200()
self.assertTrue(oRule)
self.assertEqual(oRule.name, "case_generate_alternative")
self.assertEqual(oRule.identifier, "200")

lExpected = [18]

oRule.analyze(self.oFile)
self.assertEqual(lExpected, utils.extract_violation_lines_from_violation_object(oRule.violations))

def test_fix_rule_200(self):
oRule = case_generate_alternative.rule_200()

oRule.fix(self.oFile)

lActual = self.oFile.get_lines()

self.assertEqual(lExpected, lActual)

oRule.analyze(self.oFile)
self.assertEqual(oRule.violations, [])
45 changes: 45 additions & 0 deletions tests/case_generate_alternative/test_rule_201.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# -*- coding: utf-8 -*-

import os
import unittest

from tests import utils
from vsg import vhdlFile
from vsg.rules import case_generate_alternative

sTestDir = os.path.dirname(__file__)

lFile, eError = vhdlFile.utils.read_vhdlfile(os.path.join(sTestDir, "rule_201_test_input.vhd"))

lExpected = []
lExpected.append("")
utils.read_file(os.path.join(sTestDir, "rule_201_test_input.fixed.vhd"), lExpected)


class test_rule(unittest.TestCase):
def setUp(self):
self.oFile = vhdlFile.vhdlFile(lFile)
self.assertIsNone(eError)

def test_rule_201(self):
oRule = case_generate_alternative.rule_201()
self.assertTrue(oRule)
self.assertEqual(oRule.name, "case_generate_alternative")
self.assertEqual(oRule.identifier, "201")

lExpected = [18, 19, 25]

oRule.analyze(self.oFile)
self.assertEqual(lExpected, utils.extract_violation_lines_from_violation_object(oRule.violations))

def test_fix_rule_201(self):
oRule = case_generate_alternative.rule_201()

oRule.fix(self.oFile)

lActual = self.oFile.get_lines()

self.assertEqual(lExpected, lActual)

oRule.analyze(self.oFile)
self.assertEqual(oRule.violations, [])
27 changes: 27 additions & 0 deletions tests/case_generate_statement/rule_200_test_input.fixed.vhd
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@

architecture ARCH of ENTITY is

begin

gen_label : case boolean_1 generate

when STATE_1 =>

a <= b;
b <= c;
c <= d;

end generate;


gen_label : case boolean_1 generate

when STATE_1=>

a <= b;
b <= c;
c <= d;

end generate;

end architecture ARCH;
26 changes: 26 additions & 0 deletions tests/case_generate_statement/rule_200_test_input.vhd
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@

architecture ARCH of ENTITY is

begin

gen_label : case boolean_1 generate

when STATE_1 =>

a <= b;
b <= c;
c <= d;

end generate;


gen_label : case boolean_1 generate

when STATE_1=>

a <= b;
b <= c;
c <= d;
end generate;

end architecture ARCH;
Loading
Loading