Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[config] Enable YANG validation for override #3152

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

[config] Enable YANG validation for override

0c39c4f
Select commit
Loading
Failed to load commit list.
Draft

[config] Enable YANG validation for override #3152

[config] Enable YANG validation for override
0c39c4f
Select commit
Loading
Failed to load commit list.
Azure Pipelines / Azure.sonic-utilities failed Feb 7, 2024 in 17m 52s

Build #20240207.2 had test failures

Details

Tests

  • Failed: 23 (0.82%)
  • Passed: 2,775 (99.07%)
  • Other: 3 (0.11%)
  • Total: 2,801

Annotations

Check failure on line 5098 in Build log

See this annotation in the file changed.

@azure-pipelines azure-pipelines / Azure.sonic-utilities

Build log #L5098

Bash exited with code '1'.

Check failure on line 21 in Build log

See this annotation in the file changed.

@azure-pipelines azure-pipelines / Azure.sonic-utilities

Build log #L21

There are one or more test failures detected in result files. Detailed summary of published test results can be viewed in the Tests tab.

Check failure on line 1 in test_show_buffer_configuration

See this annotation in the file changed.

@azure-pipelines azure-pipelines / Azure.sonic-utilities

test_show_buffer_configuration

AssertionError: assert ('Lossless traffic pattern:\n'\n '--------------------  -\n'\n 'default_dynamic_th    0\n'\n 'over_subscribe_ratio  2\n'\n '--------------------  -\n'\n '\n'\n 'Pool: egress_lossless_pool\n'\n '----  --------\n'\n 'mode  dynamic\n'\n 'size  13945824\n'\n 'type  egress\n'\n '----  --------\n'\n '\n'\n 'Pool: egress_lossy_pool\n'\n '----  -------\n'\n 'mode  dynamic\n'\n 'type  egress\n'\n '----  -------\n'\n '\n'\n 'Pool: ingress_lossless_pool\n'\n '----  -------\n'\n 'mode  dynamic\n'\n 'type  ingress\n'\n '----  -------\n'\n '\n'\n 'Pool: ingress_lossy_pool\n'\n '----  -------\n'\n 'mode  dynamic\n'\n 'type  ingress\n'\n '----  -------\n'\n '\n'\n 'Pool: ingress_lossless_pool_hbm\n'\n '----  ---------\n'\n 'mode  static\n'\n 'size  139458240\n'\n 'type  ingress\n'\n '----  ---------\n'\n '\n'\n 'Profile: ingress_lossy_profile\n'\n '----------  ------------------\n'\n 'dynamic_th  3\n'\n 'pool        ingress_lossy_pool\n'\n 'size        0\n'\n '----------  ------------------\n'\n '\n'\n 'Profile: ingress_lossless_profile_hbm\n'\n '---------  -------------------------\n'\n 'static_th  12121212\n'\n 'pool       ingress_lossless_pool_hbm\n'\n 'size       0\n'\n '---------  -------------------------\n'\n '\n'\n 'Profile: headroom_profile\n'\n '----------  ---------------------\n'\n 'dynamic_th  0\n'\n 'pool        ingress_lossless_pool\n'\n 'xon         18432\n'\n 'xoff        32768\n'\n 'size        51200\n'\n '----------  ---------------------\n'\n '\n'\n 'Profile: alpha_profile\n'\n '-------------  ---------------------\n'\n 'dynamic_th     0\n'\n 'pool           ingress_lossless_pool\n'\n 'headroom_type  dynamic\n'\n 'size           0\n'\n '-------------  ---------------------\n'\n '\n'\n 'Profile: egress_lossless_profile\n'\n '----------  --------------------\n'\n 'dynamic_th  0\n'\n 'pool        egress_lossless_pool\n'\n 'size        0\n'\n '----------  --------------------\n'\n '\n'\n 'Profile: egress_lossy_profile\n'\n '----------  -----------------\n'\n 'dynamic_th  0\n'\n 'pool        egress_lossy_pool\n'\n 'size        0\n'\n '----------  -----------------\n'\n '\n') == ('Lossless traffic pattern:\n'\n '--------------------  -\n'\n 'default_dynamic_th    0\n'\n 'over_subscribe_ratio  2\n'\n '--------------------  -\n'\n '\n'\n 'Pool: egress_lossless_pool\n'\n '----  --------\n'\n 'mode  dynamic\n'\n 'size  13945824\n'\n 'type  egress\n'\n '----  --------\n'\n '\n'\n 'Pool: egress_lossy_pool\n'\n '----  -------\n'\n 'mode  dynamic\n'\n 'type  egress\n'\n '----  -------\n'\n '\n'\n 'Pool: ingress_lossless_pool\n'\n '----  -------\n'\n 'mode  dynamic\n'\n 'type  ingress\n'\n '----  -------\n'\n '\n'\n 'Pool: ingress_lossy_pool\n'\n '----  -------\n'\n 'mode  dynamic\n'\n 'type  ingress\n'\n '----  -------\n'\n '\n'\n 'Pool: ingress_lossless_pool_hbm\n'\n '----  ---------\n'\n 'mode  static\n'\n 'size  139458240\n'\n 'type  ingress\n'\n '----  ---------\n'\n '\n'\n 'Profile: ingress_lossy_profile\n'\n '----------  ------------------\n'\n 'dynamic_th  3\n'\n 'pool        ingress_lossy_pool\n'\n 'size        0\n'\n '----------  ------------------\n'\n '\n'\n 'Profile: ingress_lossless_profile_hbm\n'\n '---------  -------------------------\n'\n 'static_th  12121212\n'\n 'pool       ingress_lossless_pool_hbm\n'\n 'size       0\n'\n '---------  -------------------------\n'\n '\n'\n 'Profile: headroom_profile\n'\n '----------  ---------------------\n'\n 'dynamic_th  0\n'\n 'pool        ingress_lossless_pool\n'\n 'xon         18432\n'\n 'xoff        32768\n'\n 'size        51200\n'\n '----------  ---------------------\n'\n '\n'\n 'Profile: alpha_profile\n'\n '-------------  ---------------------\n'\n 'dynamic_th     0\n'\n 'pool           ingress_lossless_pool\n'\n 'headroom_type  dynamic\n'\n '-------------  ---------------------\n'\n '\n'\n 'Profile: egress_lossless_profile\n'\n '----------  --------------------\n'\n 'dynamic_th  0\n'\n 'pool        egress_lossless_pool\n'\n 'size        0\n'\n '----------
Raw output
self = <tests.buffer_test.TestBuffer object at 0x7f01207c43a0>

    def test_show_buffer_configuration(self):
>       self.executor(testData['show_buffer_configuration'])

tests/buffer_test.py:272: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <tests.buffer_test.TestBuffer object at 0x7f01207c43a0>
testcase = [{'cmd': ['buffer', 'configuration'], 'rc_output': 'Lossless traffic pattern:\n--------------------  -\ndefault_dynami...-  -----------------\ndynamic_th  0\npool        egress_lossy_pool\nsize        0\n----------  -----------------\n\n'}]

    def executor(self, testcase):
        runner = CliRunner()
    
        for input in testcase:
            exec_cmd = show.cli.commands[input['cmd'][0]].commands[input['cmd'][1]]
    
            result = runner.invoke(exec_cmd, [], catch_exceptions=True)
    
            print(result.exit_code)
            print(result.output)
            if result.exception:
                print(result.exception)
    
            assert result.exit_code == 0
>           assert result.output == input['rc_output']
E           AssertionError: assert ('Lossless traffic pattern:\n'\n '--------------------  -\n'\n 'default_dynamic_th    0\n'\n 'over_subscribe_ratio  2\n'\n '--------------------  -\n'\n '\n'\n 'Pool: egress_lossless_pool\n'\n '----  --------\n'\n 'mode  dynamic\n'\n 'size  13945824\n'\n 'type  egress\n'\n '----  --------\n'\n '\n'\n 'Pool: egress_lossy_pool\n'\n '----  -------\n'\n 'mode  dynamic\n'\n 'type  egress\n'\n '----  -------\n'\n '\n'\n 'Pool: ingress_lossless_pool\n'\n '----  -------\n'\n 'mode  dynamic\n'\n 'type  ingress\n'\n '----  -------\n'\n '\n'\n 'Pool: ingress_lossy_pool\n'\n '----  -------\n'\n 'mode  dynamic\n'\n 'type  ingress\n'\n '----  -------\n'\n '\n'\n 'Pool: ingress_lossless_pool_hbm\n'\n '----  ---------\n'\n 'mode  static\n'\n 'size  139458240\n'\n 'type  ingress\n'\n '----  ---------\n'\n '\n'\n 'Profile: ingress_lossy_profile\n'\n '----------  ------------------\n'\n 'dynamic_th  3\n'\n 'pool        ingress_lossy_pool\n'\n 'size        0\n'\n '----------  ------------------\n'\n '\n'\n 'Profile: ingress_lossless_profile_hbm\n'\n '---------  -------------------------\n'\n 'static_th  12121212\n'\n 'pool       ingress_lossless_pool_hbm\n'\n 'size       0\n'\n '---------  -------------------------\n'\n '\n'\n 'Profile: headroom_profile\n'\n '----------  ---------------------\n'\n 'dynamic_th  0\n'\n 'pool        ingress_lossless_pool\n'\n 'xon         18432\n'\n 'xoff        32768\n'\n 'size        51200\n'\n '----------  ---------------------\n'\n '\n'\n 'Profile: alpha_profile\n'\n '-------------  ---------------------\n'\n 'dynamic_th     0\n'\n 'pool           ingress_lossless_pool\n'\n 'headroom_type  dynamic\n'\n 'size           0\n'\n '-------------  ---------------------\n'\n '\n'\n 'Profile: egress_lossless_profile\n'\n '----------  --------------------\n'\n 'dynamic_th  0\n'\n 'pool        egress_lossless_pool\n'\n 'size        0\n'\n '----------  --------------------\n'\n '\n'\n 'Profile: egress_lossy_profile\n'\n '----------  -----------------\n'\n 'dynamic_th  0\n'\n 'pool        egress_lossy_pool\n'\n 'size        0\n'\n '----------  -----------------\n'\n '\n') == ('Lossless traffic pattern:\n'\n '--------------------  -\n'\n 'default_dynamic_th    0\n'\n 'over_subscribe_ratio  2\n'\n '--------------------  -\n'\n '\n'\n 'Pool: egress_lossless_pool\n'\n '----  --------\n'\n 'mode  dynamic\n'\n 'size  13945824\n'\n 'type  egress\n'\n '----  --------\n'\n '\n'\n 'Pool: egress_lossy_pool\n'\n '----  -------\n'\n 'mode  dynamic\n'\n 'type  egress\n'\n '----  -------\n'\n '\n'\n 'Pool: ingress_lossless_pool\n'\n '----  -------\n'\n 'mode  dynamic\n'\n 'type  ingress\n'\n '----  -------\n'\n '\n'\n 'Pool: ingress_lossy_pool\n'\n '----  -------\n'\n 'mode  dynamic\n'\n 'type  ingress\n'\n '----  -------\n'\n '\n'\n 'Pool: ingress_lossless_pool_hbm\n'\n '----  ---------\n'\n 'mode  static\n'\n 'size  139

Check failure on line 1 in test_mmu_show_config

See this annotation in the file changed.

@azure-pipelines azure-pipelines / Azure.sonic-utilities

test_mmu_show_config

AssertionError: assert ('Lossless traffic pattern:\n'\n '--------------------  -\n'\n 'default_dynamic_th    0\n'\n 'over_subscribe_ratio  2\n'\n '--------------------  -\n'\n '\n'\n 'Pool: egress_lossless_pool\n'\n '----  --------\n'\n 'mode  dynamic\n'\n 'size  13945824\n'\n 'type  egress\n'\n '----  --------\n'\n '\n'\n 'Pool: egress_lossy_pool\n'\n '----  -------\n'\n 'mode  dynamic\n'\n 'type  egress\n'\n '----  -------\n'\n '\n'\n 'Pool: ingress_lossless_pool\n'\n '----  -------\n'\n 'mode  dynamic\n'\n 'type  ingress\n'\n '----  -------\n'\n '\n'\n 'Pool: ingress_lossy_pool\n'\n '----  -------\n'\n 'mode  dynamic\n'\n 'type  ingress\n'\n '----  -------\n'\n '\n'\n 'Pool: ingress_lossless_pool_hbm\n'\n '----  ---------\n'\n 'mode  static\n'\n 'size  139458240\n'\n 'type  ingress\n'\n '----  ---------\n'\n '\n'\n 'Profile: ingress_lossy_profile\n'\n '----------  ------------------\n'\n 'dynamic_th  3\n'\n 'pool        ingress_lossy_pool\n'\n 'size        0\n'\n '----------  ------------------\n'\n '\n'\n 'Profile: ingress_lossless_profile_hbm\n'\n '---------  -------------------------\n'\n 'static_th  12121212\n'\n 'pool       ingress_lossless_pool_hbm\n'\n 'size       0\n'\n '---------  -------------------------\n'\n '\n'\n 'Profile: headroom_profile\n'\n '----------  ---------------------\n'\n 'dynamic_th  0\n'\n 'pool        ingress_lossless_pool\n'\n 'xon         18432\n'\n 'xoff        32768\n'\n 'size        51200\n'\n '----------  ---------------------\n'\n '\n'\n 'Profile: alpha_profile\n'\n '-------------  ---------------------\n'\n 'dynamic_th     0\n'\n 'pool           ingress_lossless_pool\n'\n 'headroom_type  dynamic\n'\n 'size           0\n'\n '-------------  ---------------------\n'\n '\n'\n 'Profile: egress_lossless_profile\n'\n '----------  --------------------\n'\n 'dynamic_th  0\n'\n 'pool        egress_lossless_pool\n'\n 'size        0\n'\n '----------  --------------------\n'\n '\n'\n 'Profile: egress_lossy_profile\n'\n '----------  -----------------\n'\n 'dynamic_th  0\n'\n 'pool        egress_lossy_pool\n'\n 'size        0\n'\n '----------  -----------------\n'\n '\n') == ('Lossless traffic pattern:\n'\n '--------------------  -\n'\n 'default_dynamic_th    0\n'\n 'over_subscribe_ratio  2\n'\n '--------------------  -\n'\n '\n'\n 'Pool: egress_lossless_pool\n'\n '----  --------\n'\n 'mode  dynamic\n'\n 'size  13945824\n'\n 'type  egress\n'\n '----  --------\n'\n '\n'\n 'Pool: egress_lossy_pool\n'\n '----  -------\n'\n 'mode  dynamic\n'\n 'type  egress\n'\n '----  -------\n'\n '\n'\n 'Pool: ingress_lossless_pool\n'\n '----  -------\n'\n 'mode  dynamic\n'\n 'type  ingress\n'\n '----  -------\n'\n '\n'\n 'Pool: ingress_lossy_pool\n'\n '----  -------\n'\n 'mode  dynamic\n'\n 'type  ingress\n'\n '----  -------\n'\n '\n'\n 'Pool: ingress_lossless_pool_hbm\n'\n '----  ---------\n'\n 'mode  static\n'\n 'size  139458240\n'\n 'type  ingress\n'\n '----  ---------\n'\n '\n'\n 'Profile: ingress_lossy_profile\n'\n '----------  ------------------\n'\n 'dynamic_th  3\n'\n 'pool        ingress_lossy_pool\n'\n 'size        0\n'\n '----------  ------------------\n'\n '\n'\n 'Profile: ingress_lossless_profile_hbm\n'\n '---------  -------------------------\n'\n 'static_th  12121212\n'\n 'pool       ingress_lossless_pool_hbm\n'\n 'size       0\n'\n '---------  -------------------------\n'\n '\n'\n 'Profile: headroom_profile\n'\n '----------  ---------------------\n'\n 'dynamic_th  0\n'\n 'pool        ingress_lossless_pool\n'\n 'xon         18432\n'\n 'xoff        32768\n'\n 'size        51200\n'\n '----------  ---------------------\n'\n '\n'\n 'Profile: alpha_profile\n'\n '-------------  ---------------------\n'\n 'dynamic_th     0\n'\n 'pool           ingress_lossless_pool\n'\n 'headroom_type  dynamic\n'\n '-------------  ---------------------\n'\n '\n'\n 'Profile: egress_lossless_profile\n'\n '----------  --------------------\n'\n 'dynamic_th  0\n'\n 'pool        egress_lossless_pool\n'\n 'size        0\n'\n '----------
Raw output
self = <tests.mmuconfig_test.Testmmuconfig object at 0x7f011e6867f0>

    def test_mmu_show_config(self):
>       self.executor(testData['mmuconfig_list'])

tests/mmuconfig_test.py:27: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <tests.mmuconfig_test.Testmmuconfig object at 0x7f011e6867f0>
input = {'args': [], 'cmd': ['show'], 'rc': 0, 'rc_output': 'Lossless traffic pattern:\n--------------------  -\ndefault_dynam...--  -----------------\ndynamic_th  0\npool        egress_lossy_pool\nsize        0\n----------  -----------------\n\n'}

    def executor(self, input):
        runner = CliRunner()
    
        if 'db_table' in input:
            db = Db()
            data_list = list(db.cfgdb.get_table(input['db_table']))
            input['rc_msg'] = input['rc_msg'].format(",".join(data_list))
    
        if 'show' in input['cmd']:
            exec_cmd = show.cli.commands["mmu"]
            result = runner.invoke(exec_cmd, input['args'])
            exit_code = result.exit_code
            output = result.output
        elif 'config' in input['cmd']:
            exec_cmd = config.config.commands["mmu"]
            result = runner.invoke(exec_cmd, input['args'], catch_exceptions=False)
            exit_code = result.exit_code
            output = result.output
    
        print(exit_code)
        print(output)
    
        if input['rc'] == 0:
            assert exit_code == 0
        else:
            assert exit_code != 0
    
        if 'cmp_args' in input:
            fd = open('/tmp/mmuconfig', 'r')
            cmp_data = json.load(fd)
            for args in input['cmp_args']:
                profile, name, value = args.split(',')
                assert(cmp_data[profile][name] == value)
            fd.close()
    
        if 'rc_msg' in input:
            assert input['rc_msg'] in output
    
        if 'rc_output' in input:
>           assert output == input['rc_output']
E           AssertionError: assert ('Lossless traffic pattern:\n'\n '--------------------  -\n'\n 'default_dynamic_th    0\n'\n 'over_subscribe_ratio  2\n'\n '--------------------  -\n'\n '\n'\n 'Pool: egress_lossless_pool\n'\n '----  --------\n'\n 'mode  dynamic\n'\n 'size  13945824\n'\n 'type  egress\n'\n '----  --------\n'\n '\n'\n 'Pool: egress_lossy_pool\n'\n '----  -------\n'\n 'mode  dynamic\n'\n 'type  egress\n'\n '----  -------\n'\n '\n'\n 'Pool: ingress_lossless_pool\n'\n '----  -------\n'\n 'mode  dynamic\n'\n 'type  ingress\n'\n '----  -------\n'\n '\n'\n 'Pool: ingress_lossy_pool\n'\n '----  -------\n'\n 'mode  dynamic\n'\n 'type  ingress\n'\n '----  -------\n'\n '\n'\n 'Pool: ingress_lossless_pool_hbm\n'\n '----  ---------\n'\n 'mode  static\n'\n 'size  139458240\n'\n 'type  ingress\n'\n '----  ---------\n'\n '\n'\n 'Profile: ingress_lossy_profile\n'\n '----------  ------------------\n'\n 'dynamic_th  3\n'\n 'pool        ingress_lossy_pool\n'\n 'size        0\n'\n '----------  ------------------\n'\n '\n'\n 'Profile: ingress_lossless_profile_hbm\n'\n '---------  -------------------------\n'\n 'static_th  12121212\n'\n 'pool       ingress_lossless_pool_hbm\n'\n 'size       0\n'\n '---------  -------------------------\n'\n '\n'\n 'Profile: headroom_profile\n'\n '----------  ---------------------\n'\n 'dynamic_th  0\n'\n 'pool        ingress_lossless_pool\n'\n 'xon         18432\n'\n 'xoff        32768\n'\n 'size        51200\n'\n '----------  ---------------------\n'\n '\n'\n 'Profile: alpha_profile\n'\n '-------------  ---------------------\n'\n 'dynamic_th     0\n'\n 'pool           ingress_lossless_pool\n'\n 'headroom_type  dynamic\n'\n 'size           0\n'\n '-------------  ---------------------\n'\n '\n'\n 'Profile: egress_lossless_profile\n'\n '----------  --------------------\n'\n 'dynamic_th  0\n'\n 'pool        egress_lossless_pool\n'\n 'size        0\n'\n '----------  --------------------\n'\n '\n'\n 'Profile: egress_lossy_profile\n'\n '----------  -----------------\n'\n 'dynamic_th  0\n'

Check failure on line 1 in test_muxcable_status_config

See this annotation in the file changed.

@azure-pipelines azure-pipelines / Azure.sonic-utilities

test_muxcable_status_config

AssertionError: assert ('SWITCH_NAME    PEER_TOR\n'\n '-------------  ----------\n'\n 'sonic-switch   10.2.2.2\n'\n 'port        state    ipv4         ipv6          cable_type      soc_ipv4     '\n 'soc_ipv6\n'\n '----------  -------  -----------  ------------  --------------  -----------  '\n '------------\n'\n 'Ethernet0   active   10.2.1.1/32  e800::46/128\n'\n 'Ethernet4   auto     10.3.1.1/32  e801::46/128                               '\n 'e801::47/128\n'\n 'Ethernet8   active   10.4.1.1/32  e802::46/128\n'\n 'Ethernet12  active   10.4.1.1/32  e802::46/128\n'\n 'Ethernet16  standby  10.1.1.1/32  fc00::75/128  active-standby\n'\n 'Ethernet28  manual   10.1.1.1/32  fc00::75/128\n'\n 'Ethernet32  auto     10.1.1.1/32  fc00::75/128  active-active   10.1.1.2/32  '\n 'fc00::76/128\n') == ('SWITCH_NAME    PEER_TOR\n'\n '-------------  ----------\n'\n 'sonic-switch   10.2.2.2\n'\n 'port        state    ipv4      ipv6      cable_type      soc_ipv4    '\n 'soc_ipv6\n'\n '----------  -------  --------  --------  --------------  ----------  '\n '----------\n'\n 'Ethernet0   active   10.2.1.1  e800::46\n'\n 'Ethernet4   auto     10.3.1.1  e801::46                              '\n 'e801::47\n'\n 'Ethernet8   active   10.4.1.1  e802::46\n'\n 'Ethernet12  active   10.4.1.1  e802::46\n'\n 'Ethernet16  standby  10.1.1.1  fc00::75  active-standby\n'\n 'Ethernet28  manual   10.1.1.1  fc00::75\n'\n 'Ethernet32  auto     10.1.1.1  fc00::75  active-active   10.1.1.2    '\n 'fc00::76\n')     SWITCH_NAME    PEER_TOR     -------------  ----------     sonic-switch   10.2.2.2   - port        state    ipv4      ipv6      cable_type      soc_ipv4    soc_ipv6   + port        state    ipv4         ipv6          cable_type      soc_ipv4     soc_ipv6   ?                                +++    ++++                              +   - ----------  -------  --------  --------  --------------  ----------  ----------   ?                                                                    ^^   + ----------  -------  -----------  ------------  --------------  -----------  ------------   ?                              +++          ++++                            ^^^^^   - Ethernet0   active   10.2.1.1  e800::46   + Ethernet0   active   10.2.1.1/32  e800::46/128   ?                              +++          ++++   - Ethernet4   auto     10.3.1.1  e801::46                              e801::47   + Ethernet4   auto     10.3.1.1/32  e801::46/128                               e801::47/128   ?                              +++          +++++                                      ++++   - Ethernet8   active   10.4.1.1  e802::46   + Ethernet8   active   10.4.1.1/32  e802::46/128   ?                              +++          ++++   - Ethernet12  active   10.4.1.1  e802::46   + Ethernet12  active   10.4.1.1/32  e802::46/128   ?                              +++          ++++   - Ethernet16  standby  10.1.1.1  fc00::75  active-standby   + Ethernet16  standby  10.1.1.1/32  fc00::75/128  active-standby   ?                              +++          ++++   - Ethernet28  manual   10.1.1.1  fc00::75   + Ethernet28  manual   10.1.1.1/32  fc00::75/128   ?                              +++          ++++   - Ethernet32  auto     10.1.1.1  fc00::75  active-active   10.1.1.2    fc00::76   ?                                                                  ^^   + Ethernet32  auto     10.1.1.1/32  fc00::75/128  active-active   10.1.1.2/32  fc00::76/128   ?                              +++          ++++                          ^^^          ++++
Raw output
self = <tests.muxcable_test.TestMuxcable object at 0x7f011ddb2ca0>

    def test_muxcable_status_config(self):
        runner = CliRunner()
        db = Db()
    
        result = runner.invoke(show.cli.commands["muxcable"].commands["config"], obj=db)
    
        assert result.exit_code == 0
>       assert result.output == tabular_data_config_output_expected
E       AssertionError: assert ('SWITCH_NAME    PEER_TOR\n'\n '-------------  ----------\n'\n 'sonic-switch   10.2.2.2\n'\n 'port        state    ipv4         ipv6          cable_type      soc_ipv4     '\n 'soc_ipv6\n'\n '----------  -------  -----------  ------------  --------------  -----------  '\n '------------\n'\n 'Ethernet0   active   10.2.1.1/32  e800::46/128\n'\n 'Ethernet4   auto     10.3.1.1/32  e801::46/128                               '\n 'e801::47/128\n'\n 'Ethernet8   active   10.4.1.1/32  e802::46/128\n'\n 'Ethernet12  active   10.4.1.1/32  e802::46/128\n'\n 'Ethernet16  standby  10.1.1.1/32  fc00::75/128  active-standby\n'\n 'Ethernet28  manual   10.1.1.1/32  fc00::75/128\n'\n 'Ethernet32  auto     10.1.1.1/32  fc00::75/128  active-active   10.1.1.2/32  '\n 'fc00::76/128\n') == ('SWITCH_NAME    PEER_TOR\n'\n '-------------  ----------\n'\n 'sonic-switch   10.2.2.2\n'\n 'port        state    ipv4      ipv6      cable_type      soc_ipv4    '\n 'soc_ipv6\n'\n '----------  -------  --------  --------  --------------  ----------  '\n '----------\n'\n 'Ethernet0   active   10.2.1.1  e800::46\n'\n 'Ethernet4   auto     10.3.1.1  e801::46                              '\n 'e801::47\n'\n 'Ethernet8   active   10.4.1.1  e802::46\n'\n 'Ethernet12  active   10.4.1.1  e802::46\n'\n 'Ethernet16  standby  10.1.1.1  fc00::75  active-standby\n'\n 'Ethernet28  manual   10.1.1.1  fc00::75\n'\n 'Ethernet32  auto     10.1.1.1  fc00::75  active-active   10.1.1.2    '\n 'fc00::76\n')
E           SWITCH_NAME    PEER_TOR
E           -------------  ----------
E           sonic-switch   10.2.2.2
E         - port        state    ipv4      ipv6      cable_type      soc_ipv4    soc_ipv6
E         + port        state    ipv4         ipv6          cable_type      soc_ipv4     soc_ipv6
E         ?                                +++    ++++                              +
E         - ----------  -------  --------  --------  --------------  ----------  ----------
E         ?                                                                    ^^
E         + ----------  -------  -----------  ------------  --------------  -----------  ------------
E         ?                              +++          ++++                            ^^^^^
E         - Ethernet0   active   10.2.1.1  e800::46
E         + Ethernet0   active   10.2.1.1/32  e800::46/128
E         ?                              +++          ++++
E         - Ethernet4   auto     10.3.1.1  e801::46                              e801::47
E         + Ethernet4   auto     10.3.1.1/32  e801::46/128                               e801::47/128
E         ?                              +++          +++++                                      ++++
E         - Ethernet8   active   10.4.1.1  e802::46
E         + Ethernet8   active   10.4.1.1/32  e802::46/128
E         ?                              +++          ++++
E         - Ethernet12  active   10.4.1.1  e802::46
E         + Ethernet12  active   10.4.1.1/32  e802::46/128
E         ?                              +++          ++++
E         - Ethernet16  standby  10.1.1.1  fc00::75  active-standby
E         + Ethernet16  standby  10.1.1.1/32  fc00::75/128  active-standby
E         ?                              +++          ++++
E         - Ethernet28  manual   10.1.1.1  fc00::75
E         + Ethernet28  manual   10.1.1.1/32  fc00::75/128
E         ?                              +++          ++++
E         - Ethernet32  auto     10.1.1.1  fc00::75  active-active   10.1.1.2    fc00::76
E         ?                                                                  ^^
E         + Ethernet32  auto     10.1

Check failure on line 1 in test_muxcable_status_config_alias

See this annotation in the file changed.

@azure-pipelines azure-pipelines / Azure.sonic-utilities

test_muxcable_status_config_alias

AssertionError: assert ('SWITCH_NAME    PEER_TOR\n'\n '-------------  ----------\n'\n 'sonic-switch   10.2.2.2\n'\n 'port    state    ipv4         ipv6          cable_type      soc_ipv4     '\n 'soc_ipv6\n'\n '------  -------  -----------  ------------  --------------  -----------  '\n '------------\n'\n 'etp1    active   10.2.1.1/32  e800::46/128\n'\n 'etp2    auto     10.3.1.1/32  e801::46/128                               '\n 'e801::47/128\n'\n 'etp3    active   10.4.1.1/32  e802::46/128\n'\n 'etp4    active   10.4.1.1/32  e802::46/128\n'\n 'etp5    standby  10.1.1.1/32  fc00::75/128  active-standby\n'\n 'etp8    manual   10.1.1.1/32  fc00::75/128\n'\n 'etp9    auto     10.1.1.1/32  fc00::75/128  active-active   10.1.1.2/32  '\n 'fc00::76/128\n') == ('SWITCH_NAME    PEER_TOR\n'\n '-------------  ----------\n'\n 'sonic-switch   10.2.2.2\n'\n 'port    state    ipv4      ipv6      cable_type      soc_ipv4    soc_ipv6\n'\n '------  -------  --------  --------  --------------  ----------  ----------\n'\n 'etp1    active   10.2.1.1  e800::46\n'\n 'etp2    auto     10.3.1.1  e801::46                              e801::47\n'\n 'etp3    active   10.4.1.1  e802::46\n'\n 'etp4    active   10.4.1.1  e802::46\n'\n 'etp5    standby  10.1.1.1  fc00::75  active-standby\n'\n 'etp8    manual   10.1.1.1  fc00::75\n'\n 'etp9    auto     10.1.1.1  fc00::75  active-active   10.1.1.2    fc00::76\n')     SWITCH_NAME    PEER_TOR     -------------  ----------     sonic-switch   10.2.2.2   - port    state    ipv4      ipv6      cable_type      soc_ipv4    soc_ipv6   + port    state    ipv4         ipv6          cable_type      soc_ipv4     soc_ipv6   ?                            +++    ++++                              +   - ------  -------  --------  --------  --------------  ----------  ----------   ?                                                                ^^   + ------  -------  -----------  ------------  --------------  -----------  ------------   ?                          +++          ++++                            ^^^^^   - etp1    active   10.2.1.1  e800::46   + etp1    active   10.2.1.1/32  e800::46/128   ?                          +++          ++++   - etp2    auto     10.3.1.1  e801::46                              e801::47   + etp2    auto     10.3.1.1/32  e801::46/128                               e801::47/128   ?                          +++          +++++                                      ++++   - etp3    active   10.4.1.1  e802::46   + etp3    active   10.4.1.1/32  e802::46/128   ?                          +++          ++++   - etp4    active   10.4.1.1  e802::46   + etp4    active   10.4.1.1/32  e802::46/128   ?                          +++          ++++   - etp5    standby  10.1.1.1  fc00::75  active-standby   + etp5    standby  10.1.1.1/32  fc00::75/128  active-standby   ?                          +++          ++++   - etp8    manual   10.1.1.1  fc00::75   + etp8    manual   10.1.1.1/32  fc00::75/128   ?                          +++          ++++   - etp9    auto     10.1.1.1  fc00::75  active-active   10.1.1.2    fc00::76   ?                                                              ^^   + etp9    auto     10.1.1.1/32  fc00::75/128  active-active   10.1.1.2/32  fc00::76/128   ?                          +++          ++++                          ^^^          ++++
Raw output
self = <tests.muxcable_test.TestMuxcable object at 0x7f0121d5e730>

    def test_muxcable_status_config_alias(self):
        runner = CliRunner()
        db = Db()
    
        os.environ['SONIC_CLI_IFACE_MODE'] = "alias"
        result = runner.invoke(show.cli.commands["muxcable"].commands["config"], obj=db)
        os.environ['SONIC_CLI_IFACE_MODE'] = "default"
    
        assert result.exit_code == 0
>       assert result.output == tabular_data_config_output_expected_alias
E       AssertionError: assert ('SWITCH_NAME    PEER_TOR\n'\n '-------------  ----------\n'\n 'sonic-switch   10.2.2.2\n'\n 'port    state    ipv4         ipv6          cable_type      soc_ipv4     '\n 'soc_ipv6\n'\n '------  -------  -----------  ------------  --------------  -----------  '\n '------------\n'\n 'etp1    active   10.2.1.1/32  e800::46/128\n'\n 'etp2    auto     10.3.1.1/32  e801::46/128                               '\n 'e801::47/128\n'\n 'etp3    active   10.4.1.1/32  e802::46/128\n'\n 'etp4    active   10.4.1.1/32  e802::46/128\n'\n 'etp5    standby  10.1.1.1/32  fc00::75/128  active-standby\n'\n 'etp8    manual   10.1.1.1/32  fc00::75/128\n'\n 'etp9    auto     10.1.1.1/32  fc00::75/128  active-active   10.1.1.2/32  '\n 'fc00::76/128\n') == ('SWITCH_NAME    PEER_TOR\n'\n '-------------  ----------\n'\n 'sonic-switch   10.2.2.2\n'\n 'port    state    ipv4      ipv6      cable_type      soc_ipv4    soc_ipv6\n'\n '------  -------  --------  --------  --------------  ----------  ----------\n'\n 'etp1    active   10.2.1.1  e800::46\n'\n 'etp2    auto     10.3.1.1  e801::46                              e801::47\n'\n 'etp3    active   10.4.1.1  e802::46\n'\n 'etp4    active   10.4.1.1  e802::46\n'\n 'etp5    standby  10.1.1.1  fc00::75  active-standby\n'\n 'etp8    manual   10.1.1.1  fc00::75\n'\n 'etp9    auto     10.1.1.1  fc00::75  active-active   10.1.1.2    fc00::76\n')
E           SWITCH_NAME    PEER_TOR
E           -------------  ----------
E           sonic-switch   10.2.2.2
E         - port    state    ipv4      ipv6      cable_type      soc_ipv4    soc_ipv6
E         + port    state    ipv4         ipv6          cable_type      soc_ipv4     soc_ipv6
E         ?                            +++    ++++                              +
E         - ------  -------  --------  --------  --------------  ----------  ----------
E         ?                                                                ^^
E         + ------  -------  -----------  ------------  --------------  -----------  ------------
E         ?                          +++          ++++                            ^^^^^
E         - etp1    active   10.2.1.1  e800::46
E         + etp1    active   10.2.1.1/32  e800::46/128
E         ?                          +++          ++++
E         - etp2    auto     10.3.1.1  e801::46                              e801::47
E         + etp2    auto     10.3.1.1/32  e801::46/128                               e801::47/128
E         ?                          +++          +++++                                      ++++
E         - etp3    active   10.4.1.1  e802::46
E         + etp3    active   10.4.1.1/32  e802::46/128
E         ?                          +++          ++++
E         - etp4    active   10.4.1.1  e802::46
E         + etp4    active   10.4.1.1/32  e802::46/128
E         ?                          +++          ++++
E         - etp5    standby  10.1.1.1  fc00::75  active-standby
E         + etp5    standby  10.1.1.1/32  fc00::75/128  active-standby
E         ?                          +++          ++++
E         - etp8    manual   10.1.1.1  fc00::75
E         + etp8    manual   10.1.1.1/32  fc00::75/128
E         ?                          +++          ++++
E         - etp9    auto     10.1.1.1  fc00::75  active-active   10.1.1.2    fc00::76
E         ?                                                              ^^
E         + etp9    auto     10.1.1.1/32  fc00::75/128  active-active   10.1.1.2/32  fc00::76/128
E         ?